消息中间件-Kafka

Java中的消息是基于内存的

消息中间件使用场景:

异步:用户登录的时候,将用户信息写入数据库,发邮件给用户、发短信给用户,需要150ms,改为异步,将信息写入数据库,然后写入消息队列,使用55ms,再从消息队列异步读取发送邮件和短信

削峰:比如秒杀系统,用户请求写入消息队列,然后秒杀业务根据规则读取秒杀请求(前端流量控制)

解耦:比如订单系统和库存系统,每次下订单之后,需要调用库存系统来加减库存,但是订单系统本来穿3个参数,后来改成5个参数,库存系统也需要跟着修改,因此可以放入消息队列中,读取相关信息,后台系统无需跟着改造。

Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域

消息队列的两种模式:

点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除):

发布/订阅模式(一对多,消费者消费数据之后不会清除消息):

消费者主动拉取(kafka):缺点:浪费资源,因为维护了一个长轮询,去查看是否有消息

生产者推送两种模式

 

同一个消费分区里的消息,只能被同一个消费者组的一个消费者消费(A消费了,B就不能消费,AB属于同一个消费者组,避免重复消费)

消费者组是为了提高消费效率

kafka 的消息存在磁盘中,默认存7天

 

kafka架构

1)Producer :消息生产者,就是向 kafka broker 发消息的客户端;
2)Consumer :消息消费者,向 kafka broker 取消息的客户端;
3)Consumer Group (CG):消费者组,由多个 consumer 组成。消费者组内每个消费者负 责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所 有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者
4)Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker 可以容纳多个 topic。
5)Topic :可以理解为一个队列,生产者和消费者面向的都是一个 topic;

6)Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker(即服务器)上, 一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列;

7)Replica:副本,为保证集群中的某个节点发生故障时,该节点上的 partition 数据不丢失,且 kafka 仍然能够继续工作,kafka 提供了副本机制,一个 topic 的每个分区都有若干个副本, 一个 leader 和若干个 follower

8)leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对 象都是 leader。

9)follower:每个分区多个副本中的“从”,实时从 leader 中同步数据,保持和 leader 数据 的同步。leader 发生故障时,某个 follower 会成为新的 leader。

8)offset:偏移量:0.9版本之前offset存储在ZK,0.9版本之后offset存储在本地,用于记录消费位置,放止挂掉之后,找不到在哪里消费

Kafka通过zookeeper存储集群的meta信息

CTG-Kafka是由中国通信集团(China Telecom Group)自主研发的一款基于Apache Kafka的高可用、高性能消息中间件系统。它在Kafka的基础上进行了增强和优化,旨在满足企业级应用的需求。 ### CTG-KafkaKafka的主要区别: 1. **性能优化**:CTG-Kafka针对大数据量的消息处理进行了优化,包括读取性能、写入性能以及吞吐量等方面,使其在处理大规模数据流时能够更高效地工作。 2. **可靠性与稳定性**:作为企业级产品,CTG-Kafka着重加强了系统的可靠性和稳定性,在极端负载下也能保持服务稳定运行,提供更高的业务连续性保障。 3. **安全性与权限管理**:CTG-Kafka在安全特性上做了深入考虑,支持更为复杂的访问控制和鉴权机制,包括细粒度的权限分配、加密传输等,满足企业在敏感信息处理方面的合规需求。 4. **监控与管理工具**:CTG-Kafka配备了完善的监控和管理工具,帮助运维人员实时了解系统状态,快速定位和解决问题,提高了运营效率。 5. **定制化功能**:考虑到特定行业和企业的特殊需求,CTG-Kafka提供了更多的自定义选项和技术支持,使得用户可以根据自身场景进行调整和优化,更好地适配业务流程。 6. **社区与技术支持**:虽然开源版本的Kafka拥有庞大的开发者社区和丰富的文档资源,但CTG-Kafka作为商业化的版本,通常会提供官方的技术支持和专业咨询服务,为企业用户提供更直接的问题解决途径。 ### 相关问题: 1. CTG-Kafka相较于原生Kafka在哪些方面进行了针对性改进? 2. CTG-Kafka是否支持跨数据中心复制功能,提升数据冗余和容灾能力? 3. 对于大规模分布式系统,CTG-Kafka能提供哪些特有的性能优化措施和解决方案?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值