Kafka 入门到精通

⼀、为什么使⽤消息队列

1.使⽤同步的通信⽅式来解决多个服务之间的通信

Kafka 入门到精通_第1张图片

 同步的通信方式会存在性能和稳定性的问题。

2. 使用异步的通信方式

Kafka 入门到精通_第2张图片

 异步的通信方式,可以让上游快速成功,极大提高了系统的吞吐量。而且在分布式系统中,通过下游多个服务的分布式事务,也能保障业务执行后的最终一致性。

消息队列解决具体的是什么问题——通信问题。

二、消息队列的流派


目前消息队列的中间件选型有很多种:

  • rabbitMQ:内部的可玩性(功能性)是非常强的
  • rocketMQ:阿里内部一个大神,根据Kafka的内部执行原理,手写的一个消息队列中间件。性能与Kafka并肩,除此之外,封装了更多的功能(顺序消费、延迟消息 …)
  • kakfa:全球消息处理性能最快的一款MQ
  • zeroMQ

那这些消息队列中间件有什么区别?

  1. 有broker

  • 重topic: Kafka、RocketMQ、JMS(ActiveMQ),整个broker,依据topic来进行消息的中转,在重topic的消息队列里必然需要topic的存在

    Kafka 入门到精通_第3张图片
     
  • 轻topic: RabbitMQ(AMQP), topic只是一种中转模式
  • 无broker: zeroMQ, 在生产者和消费者之间没有使用broker,例如zeroMQ,直接使用socket进行通信。

三、Kafka的基本知识 

Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的、多副本的、基于zookeeper协调的分布式消息系统。

它的最大特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延时的实时系统、storm/spark流式处理引擎、web/nginx日志、访问日志、消息服务等。

用scala语言编写,Linkedin于2010年贡献给了Apache基金会,并成为顶级开源项目。

1. Kafka的使用场景
日志收集
消息系统
用户活动跟踪
运营指标
2. Kafka的安装(linux)
部署一台zookeeper服务器
安装jdk
下载Kafka安装包:https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz
上传到Kafka服务器上:/home/xxx/kafka
解压缩安装包
进入到config目录,修改server.properties文件中以下内容:
# broker.id属性在kafka集群中必须是唯一的
broker.id=0
#kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT:192.168.0.1:9092
#kafka的消息存储文件
log.dir=/usr/local/data/kafka-logs
#kafka连接zookeeper的地址
zookeeper.connect=192.168.0.2:2181
1
2
3
4
5
6
7
8
进入到bin目录中,执行以下命令,启动Kafka服务器(带配置文件)
./kafka-server-start.sh -daemon ../config/server.properties
1
校验Kafka是否启动成功:
进入到zk内查看是否有Kafka的节点:/brokers/ids/0
————————————————
版权声明:本文为CSDN博主「kyrielx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_28742063/article/details/126886615

 

你可能感兴趣的:(kafka,java,分布式)