Java

Kafka

2020-09-05  本文已影响0人  Wu杰语

消息队列是分布式架构的基础组件,掌握这类组件是必要的,kafka是其中的典型代表。

消息队列

消息队列的电信原型就是队列,队列的特性就是先入先出,原型很简单。它的作用是什么呢,网上很多标准答案,解耦、异步、削峰填谷,可以参照https://blog.csdn.net/qq_34531925/article/details/75457743

RabbitMQ、ActiveMQ、rocketMQ和Kafka

这几个似乎目前主流的消息队列组件,需要了解其优劣
https://blog.csdn.net/lifaming15/article/details/79942793
更需要了解它的应用场景:

消息队列的通用原理

对于消息队列,每种消息队列都有其实现细节,但是对于其实现原理是相同的,有两种模式:

在实现的细节考虑的问题有:

围绕这些点去学习消息队列的实现就不会迷失在细节中。

Kafka的实现原理

可以参见https://www.cnblogs.com/ericz2j/p/11169186.html

image.png

对于kafka,有三个部分,producer、broker、consumer。

思考一个问题,如果遇到对于消息时序性要求严格的消息队列,kafka多个分区还能发挥作用吗,消费者还能用多个实例消费吗?

动手实践

按照zookeeper集群,见Zookeeper的文章
参见文章进行试验:https://blog.csdn.net/qq_36228916/article/details/97307179

创建topic,发送消息,并用另外两个虚机接收


image.png

两个client端:


image.png
image.png

小结

学习消息组件,需要了解相关消息组件,通过kafka组件,可以了解到分布式的基础组件,为了支持高可用,一般都会采用集群,会使用到更基础的zookeeper组件。如果需要继续深入学习kafka,那么还需要更基础的实现原理,计算机组成原理、操作系统、网络知识等。

上一篇 下一篇

猜你喜欢

热点阅读