本来jps看了下,kafka和zookeeper都起来了,手痒,非要换宝塔的进程守护管理器,选目录为/home/kafka,命令为/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties就在日志里看到kafka/bin/kafka-run-class.sh:line342:exec:java:notfound网上搜了大量的资料,有的说原因:java环境变量的问题,kafka默认引用的java路径:/user/bin/java,但是我们实际路径不是这个。看有的博主说改环境变量,或者设置软连接
写在开始:本文合计2万多字,500多行,阅读可能需要花费一点时间;主要包括消息队列和常用MQ(比如RabbitMQ,RocketMQ和Kafka)的部分高频面题,可供复习参考使用导读一.RabbitMQ如何保证消息不丢失日常应用场景:异步发送(验证码、短信、邮件==),MySQL和Redis、ES之间的数据同步、分布式事务、削峰填谷等等生产者确认机制消息持久化消费者确认小结开启生产者确认机制,确保生产者的消息能到达队列开启持久化功能,确保消息被消费前在队列不会丢失开启消费者确认机制为auto,由spring确认消息处理成功后完成ack开启消费者失败重试机制,多次重试失败后将消息投递到异常交换机
kELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana;Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能;它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。Kibana也是一个开源和免费的工具,Kibana
kELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana;Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能;它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。Kibana也是一个开源和免费的工具,Kibana
前言我负责的其中一个项目,接口的交互量在千万级/d,所以要存储大量的日志,为了防止日志的存储影响到系统的性能,所以在技术选型就决定了使用Kafka中间件和一个日志存储系统来负责日志的存储。使用Kafka的优点:1.Kafka是一种高吞吐量的分布式消息系统,可以支持水平扩展,非常适合存储大量的日志数据。2.Kafka使用数据增量的方式存储日志,并使用了Zig-Zag编码方式对数据进行压缩,从而极大地减少其占用的磁盘空间大小。3.Kafka的消息存储格式使用了batch方式,将一些公共信息进行提取,保证只需要存储一份,从而减少了每条消息的存储空间。4.Kafka的消息格式中包含了属性字段和head
文章目录概述几种MQ的对比综合以上对比后,有如下建议:概述MQ(MessageQueue),即消息队列。早已成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的MQ,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。几种MQ的对比下面我们先看下主流的几种MQ的对比,如下表格:比较项ActiveMQRabbitMQRocketMQKafka所属社区/公司ApacheMozillaPublicLicense阿里巴巴Apache成熟度及授权成熟/开源
1首先要了解kafka是什么Kafka是一个分布式的消息订阅系统1.1 kafka存储消息的过程消息被持久化到一个topic中,topic是按照“主题名-分区”存储的,一个topic可以分为多个partition,在parition(分区)内的每条消息都有一个有序的id号,这个id号被称为偏移(offset),记录消息的消息位置**1.2 partition不能不了解的知识Partition是Kafka中数据分布的基本单位,里面的数据是储存在硬盘中的,追加式的,通过将数据分散到多个Partition上,多个partition可以并行处理数据,所以可以处理相当量的数据,可以实现数据的并行处理和负
生产者通过producerRecord对象封装消息主题、消息的value(内容)、timestamp(时间戳)等生产者通过send()方法发送消息,send()方法会经过如下几步1.首先将消息交给拦截器(Interceptor)处理,拦截器对生产者而言,对所有消息都是生效的,拦截器也支持链式编程(责任器链)的效果,拦截器一般将一些通用的功能加进来,通常在消息发送前,producer回调逻辑前对消息做一些定制化需求,消息头部添加消息的属性等2.接下来交给序列化器(Serializer),Key的序列化器和value的序列化器,对消息的key和value进行序列化,序列化为字节数组,3.然后将序列
SpringCloudStream集成Kafka项目创建项目依赖集成配置集成生产者集成消费者集成验证生产者验证消费者验证SpringCloudStream是一个构建消息驱动微服务的框架,抽象了MQ的使用方式,提供统一的API操作。SpringCloudStream通过Binder(绑定器)、inputs/outputsChannel完成应用程序和MQ的解耦。Binder负责绑定应用程序和MQ中间件,即指定应用程序是和KafKa交互还是和RabbitMQ交互或者和其他的MQ中间件交互inputs/outputsChannelinputs/outputsChannel抽象发布订阅消息的方式,即无论
1.Kafka架构深入了解 1.1Kafka工作流程及文件存储机制 Kafka中消息是以topic进行分类的,生产者生产消息,消费者消费消息,都是面向topic的。topic是逻辑上的概念,而partition是物理上的概念,每个partition对应于一个log文件,该log文件中存储的就是producer生产的数据。Producer生产的数据会被不断追加到该log文件末端,且每条数据都有自己的offset。消费者组中的每个消费者,都会实时记录自己消费到了哪个offset,以便出错恢复时,从上次的位置继续消费。由于生产者生产的消息会不断追加到log文件末尾,为防止log文件过大导致数据定位