资讯详情

kafka安装和常用命令

消息队列概念: 消息是两台计算机之间传输的数据单元。它可以是一个简单的字符串或一个复杂的嵌入对象。消息队列是在消息传输过程中保存消息的容器,在从源头到目标时扮演中间人的角色。

消息队列的作用: 1.解耦: A 向系统发送数据 BCD 通过接口调用发送三个系统。如果 E 系统还需要这个数据?那如果 C 现在不需要系统了?A 系统负责人几乎崩溃了…A 系统与各种其他乱七八糟的系统严重耦合,A 系统 许多系统需要生成更关键的数据 A 该系统发送数据。如果使用 MQ,A 系统产生一 条数据,发送到 MQ 在里面,哪个系统需要自己数据 MQ 里面消费。如果新系统需要数据,直接从 MQ 在里面消费;如果系统不需要此数据,则取消正确的数据 MQ 消费新闻。这样下来,A 系统 根本不需要考虑向谁发送数据,不需要维护代码,也不需要考虑人们是否成功呼叫,失败超级 时等情况。 它是一个系统或模块,调用多个系统或模块,相互调用非常复杂,维护非常麻烦。但 事实上,如果使用此调用,则无需直接同步调用接口 MQ 异步解耦。

2.异步: A 系统需要在个要求,需要在自己的本地写库,也需要在 BCD 三个系统写图书馆,本地写图书馆 要 3ms,BCD 三个系统分别写库要 300ms、450ms、200ms。总延迟的最终请求是 3 300 450 200 = 953ms,接近 1s,用户觉得自己做了什么,慢死。用户通过浏览器发起请求。如果使用 MQ,那么 A 连续发送系统 3 条消息到 MQ 队列中,假如耗时 5ms,A 系统从接受请求到返回响应 总时间是给用户的 3 5 = 8ms。

3.削峰: 在高峰时段降低服务器压力。 上游系统性能好,压力突然增加,下游系统性能稍差,无法承受突然增加的压力。此时,新闻中间件起到了削峰的作用。

使用场景:当系统中的生产和消费速度和稳定性不一致时,使用消息队列作为中间层来弥合双方的差异。

两种消息队列模式: 1.点对点模式:(一对一,消费者主动拉取数据,消息收到后消息清除) 新闻制作人的生产消息发送到Queue然后消息消费者从Queue取出并消费消息。消息消费后,queue没有存储,消费者不可能消费已经消费的消息。Queue支持多个消费者,但对于一个消息,只有一个消费者可以消费。 在这里插入图片描述

  1. 发布/订阅模式(一对多,消费者消费数据后不会删除消息)

消息制作人(发布)将消息发布topic同时,消费者(订阅)也有多个消息消费这个消息。不同于点对点,发布到topic所有订阅者都会消费消息。 基本术语: 1 topic(话题):kafka将新闻分类,每种新闻称为主题,是一个逻辑概念,如果它真的在磁盘上,映射是一个partition目录。 2 生产者(producer): 发布消息的对象称为生产者,只负责数据的生产和生产来源kafka来自其他业务系统的集群。 3 消费者(consumer):订阅和处理发布消息的对象称为消费者。 4 消费者组(consumerGroup):多个消费者可以构成消费群体,同一消费群体的消费者只能消费一个topic数据,不能重复消费。 5 broker : kafka它本身可以是一个集群,集群中的每个服务器都是一个代理,这个代理被称为broker。无论生产者和消费者如何,只负责新闻的存储与他们无关。集群中的每个人broker有唯一个ID,不能重复。

安装

解压缩: tar -xzvf /root/software/kafka_2.12-2.7.0.tgz -C /usr/

修改名称: mv /usr/kafka_2.12-2.7.0/ /usr/kafka

环境变量的配置:vim /etc/profile 复制下面内容: export KAFKA_HOME=/usr/kafka export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: Z K H O M E / b i n : / u s r / a p a c h e ? t o m c a t ? 9.0.52 / b i n : ZK_HOME/bin:/usr/apache-tomcat-9.0.52/bin: ZKHOME/bin:/usr/apache−tomcat−9.0.52/bin:KAFKA_HOME/bin

让配置文件生效: source /etc/profile

进入kafka目录: cd /usr/kafka 创建目录(存放消息),为后面配置做准备 mkdir logs 修改配置server.properties文件: vim /usr/kafka/config/server.properties 修改下面内容:

修改producer.properties: vim /usr/kafka/config/producer.properties 修改21行为: bootstrap.servers=cluster1:9092,cluster2:9092,cluster3:9092 修改consumer.properties: vim /usr/kafka/config/consumer.properties 修改19行为: bootstrap.servers=cluster1:9092,cluster2:9092,cluster3:9092

修改broker.id(切记) 在cluster2和cluster3上修改broker.id vim /usr/kafka/config/server.properties 修改21行为 broker.id=1 broker.id=2

发送环境变量配置文件: scp -r /etc/profile cluster2:/etc/ scp -r /etc/profile cluster3:/etc/ 在all session执行: source /etc/profile echo $KAFKA_HOME发送hosts配置文件: scp -r /etc/hosts cluster2:/etc/ scp -r /etc/hosts cluster3:/etc/ 测试是否成功: 在all session执行: cat /etc/hosts

启动zk: /root/shelldir/zk-start-stop.sh

启动kafka: //在all session执行 kafka-server-start.sh -daemon /usr/kafka/config/server.properties

常用命令

查看当前服务器中的所有topic主题: kafka-topics.sh --zookeeper cluster1:2181 --list

如果是zk集群可以使用这样的命令: kafka-topics.sh --zookeeper cluster1:2181,cluster2:2181,cluster3:2181 --list

创建topic: list kafka-topics.sh --zookeeper cluster2:2181 --create --replication-factor 2 --partitions 2 --topic goodstopic

参数说明: –zookeeper 链接zk –replication-factor 指定副本数目(副本数目不能大于总的brokers数目) --partitions 指定分区数 –topic 指定topic名称

删除topic: kafka-topics.sh --zookeeper cluster1:2181 --delete --topic tp3

生产消息: kafka-console-producer.sh --broker-list cluster2:9092 --topic goodstopic 消费消息: kafka-console-consumer.sh --bootstrap-server cluster2:9092 --from-beginning --topic goodstopic 查看一个topic详情: kafka-topics.sh --zookeeper cluster2:2181,cluster1:2181 --describe --topic tp1

partitioncount 分区总数量 replicationfactor 副本数量 partition 分区 leader 每个分区有3个副本,每个副本都有leader replicas 所有副本节点,不管leader follower isr: 正在服务中的节点

标签: 37zkh矩形电连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台