kafka的一些认识
来源:互联网 发布:小学生必读书目 知乎 编辑:程序博客网 时间:2024/06/10 07:46
原创文章转载请注明出处:@协思, http://amwicfai.cnblogs.com 近来无事研究了一下kafka,并且用golang连接kafka做了producer和consumer的简单测试,对kafka有了一些基本的认识。 kafka不同于activemq和
原创文章转载请注明出处:@协思, http://amwicfai.cnblogs.com
近来无事研究了一下kafka,并且用golang连接kafka做了producer和consumer的简单测试,对kafka有了一些基本的认识。
kafka不同于activemq和rabbitmq等这种符合AMQP协议的标准消息队列产品,它有一些list或者array的特征,可以指定从offset读取。阿里巴巴的rocketmq在原型产品中借鉴了kafka的设计思想,现已在阿里大规模使用,详情参考:https://github.com/alibaba/RocketMQ kafka提倡使用拉模式,并且可以对消息重复消费,看起来不符合传统queue的思想,但却提供了额外的好处,比如:某模块更新到产线发现有bug,需要将上线以来的消息全部重新消费,即消息回溯。 kafka是高并发型的消息队列,但这是有前提条件的。条件是topic要定义多个partition,将压力分担到各个partition上。topic是逻辑概念,partition是物理存在各个broker,以此达到负载均衡的目的。要注意的是,各个partition可以独立消费,各partition间的消息是无法保证顺序性的,顺序只存在同一partition。以我的经验看,无论哪种MQ,要严格保证顺序,都要付出昂贵的代价,因此弱化顺序是有必要的。 kafka的另一个特性是高可用。放眼目前业界数据层的高可用解决方案,采用的无非都是两种:冗余数据和共享存储。后者以坐标昂贵著称,比如SAN,给土豪公司玩的。在党中国构建节约性社会的号召下,我建议使用前者。冗余数据最常见的便是日志复制,kafka的道理也一样。由一组节点组成leader,follower组成小的cluster,由zookeeper做协调(Paxos算法)。leader,follower的比例和数量可配置,一般为1:2。在写入的时候, follower会不断复制leader的数据,leader挂掉后会从follwer中选举新的leader。 kafka使用了零拷贝技术来优化性能,直接发送磁盘的数据到socket。此为其极为取巧的设计和亮点。 0 0
- kafka的一些认识
- Kafka的一些流程
- Kafka的一些命令
- 认识kafka
- Kafka认识
- 认识Kafka
- winpcap的一些认识
- HttpWebRequest的一些认识
- fd_set的一些认识
- C++的一些认识
- fd_set的一些认识
- ds1302的一些认识
- 本体的一些认识
- FloatActionButton的一些认识
- spring的一些认识
- ui的一些认识
- DataGrid的一些认识
- DS18B20的一些认识
- 数据库存储引擎
- matlab实现人脸识别
- Vijos 1943 上学路上 容斥+组合数+逆元法
- shell 打印偶数行奇数行
- Java代码块执行顺序
- kafka的一些认识
- android getActionBar()报空指针异常
- python和ruby语法的简单对比
- 有限责任公司股权激励范例:股权期权协议书
- Android中级教程之----Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
- PowerDesigner中name与comment互相转换脚本
- JBPM具体应用之decision节点的使用
- cts_gts认证一些fail项解决办法
- java基础:位运算用法测试代码