选主机测评网
主机测评优惠网

如何通俗的理解kafka分布式消息发布订阅系统

你好,最近做实时处理业务比较多,很荣幸来交流这个问题

如何通俗的理解kafka分布式消息发布订阅系统

简单的来说一下kafka分布式消息系统

概述1. 分布式消息队列,由Scala写成,由Apache软件基金会开发

2. 它提供了类似于JMS的特性,但是在设计实现上完全不同

3. 在流式计算中,用Kafka来缓存数据,Storm消费Kafka中的数据。

4. 依赖zookeeper保存meta信息,来保证系统可用性

解释下JMS :java 消息服务1. Java提供的一套技术规范:生产消费者模式(生产者、服务器、消费者)

2. JMS消息传输模型

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

发布/订阅模式:一对多,数据生产后,推送给所有订阅者

3.组件

各种MQ

Kafka核心组件//Producer

1. 生产者,负责数据生产

2. 数据的分发策略(分发给Partition)由producer决定

默认是defaultPartition:Utils.abs(key.hashCode) % numPartitions

//Broker

1. 一台kafka服务器就是一个broker,一个kafka集群由多个broker组成

2. 集群中每个broker都有一个唯一brokerid

3. 一个broker可以容纳多个topic

4. 只管数据存储,不管是谁生产,谁消费。

//Topic

1. 消息在Broker上的目的地,一个逻辑上的概念,消息保存在partition目录中

2. 一个Topic对应多个partition[0,1,2,3]

//partition

1. 一个Topic的多个partition,按照轮询规则分布在多个Broker上

2. 每个partition对应一个partition目录

3. 目录中有多个segment文件,每个文件默认的大小是1G

4. 每个partition有多个副本(不在一个broker上),设置副本数<=broker数

5. 从所有中选取一个leade,所有读写操作都是leader进行

6. 每个partition是一个有序的队列,保证partition中的消息按顺序消费

7. 不保证一个topic(多个partition间)的消息安序消费:全局无序

//ConsumerGroup:

1. 把多个consumer线程组成一组:数据消费者组

2. 多个consumer同时消费:提高效率

一个consumer宕掉后,其他consumer自动接管它的partition:提高\”故障容错\”性

3. 组里consumer共同消费一个topic的数据,组员之间不能重复消费数据

4. ConsumerGroup可以有多个,每个ConsumerGroup消费的数据都是一样的

kafka存储机制1. 通过硬盘持久存储message,存储时间由配置文件决定,默认7天

2. 通过将文件分块为多个segment,便于定期清除或删除已经消费完的文件,减少磁盘占用

3. 将segment的索引保存在内存中,减少硬盘IO

4. 使用page cache(物理内存)提高读写速度

上述就是对kafka 的一些简单介绍,由于篇幅有限,讲解的不太细致。

如果有任何疑问欢迎大家在评论区留言。

学习使人充实!!!最后祝大家都可以在大数据的海洋里随心遨游!

为什么服务器的宕机一般都发生在凌晨使用率最低的时候

来自16年经验老程序员的靠谱回答。

主要有以下几个原因

1.凌晨时服务器很忙首先,确实服务器的宕机一般都发生在凌晨使用率最低的时候,但是这个使用率只是针对用户而言的。

实际上,在凌晨的时候,服务器是很忙的。主要忙哪些事情呢?主要是一些定时任务,还有数据库备份等。很多比较耗时的操作比如报表统计都会安排在半夜,以免半天影响正常业务,所以这个时候,服务器都是在高负荷运转的,容易产生事故。

2.一般晚上的时候会上线新功能同理,发布新代码或者更改功能,也会选择在晚上的业务低峰期。无论前期的测试工作做的多么到位,也难免会隐藏一些bug,到了凌晨,这些bug(比如死循环)已经跑了一段时间了,在无人值守的情况下就可能触发各种故障。

如果上线时间比较短还好,遇到更新比较大的情况下,程序员奋战到大半夜,这个情况下人是很疲惫的,更容易忙中出错。

3.无人值守导致修复变慢比如死循环和内存泄漏,是需要经过一段时间才能表现出来的。白天有人实时监控,自然出现故障的几率比较小,就算出现故障了,也能很快修复,让用户无法觉察。

4.凌晨是黑客作案高峰期夜黑风高,杀人越货。这个时间点是正常人休息时间,而黑客则选择在这个时候活动,不论是安全攻击,或者是DDOS,都可能造成服务器故障。

未经允许不得转载:选主机测评网 » 如何通俗的理解kafka分布式消息发布订阅系统
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址