摘要: 数据持久化 Kafka大量依赖文件系统去存储和缓存消息。对于硬盘有个传统的观念是硬盘总是很慢,这使很多人怀疑基于文件系统的架构能否提供优异的性能。实际上硬盘的快慢完全取决于使用它的方式。设计良好的硬盘架构可以和内存一样快。在6块7200转的SATA RAID-5磁盘阵列的线性写速度差不多是600MB 阅读全文
posted @ 2017-01-05 13:01 yswenli 阅读(671) 评论(0) 推荐(0) 编辑
摘要: Kafka Producer消息发送producer直接将数据发送到broker的leader(主节点),不需要在多个节点进行分发。为了帮助producer做到这点,所有的Kafka节点都可以及时的告知:哪些节点是活动的,目标topic目标分区的leader在哪。这样producer就可以直接将消息 阅读全文
posted @ 2017-01-05 13:01 yswenli 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 日志 有两个文件夹组成,my_topic_0和my_topic_1,每个文件夹里放着具体的数据文件,每个数据文件都是一系列的日志实体,每个日志实体有一个4个字节的整数N标注消息的长度,后边跟着N个字节的消息。每个消息都可以由一个64位的整数offset标注,offset标注了这条消息在发送到这个分区 阅读全文
posted @ 2017-01-05 13:01 yswenli 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 使用.net客户端连接到Kafka 这里推荐使用一个开源.net客户端:https://github.com/Jroland/kafka-net Producer 1 var options = new KafkaOptions(new Uri("http://SERVER1:9092"), new 阅读全文
posted @ 2017-01-05 13:01 yswenli 阅读(601) 评论(0) 推荐(0) 编辑
摘要: Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输 支持Kafka Server间的 阅读全文
posted @ 2017-01-05 13:00 yswenli 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 常用Message Queue对比 RabbitMQRabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正因如此,它非常重量级,更适合于企业级的开发。同时实现了Broker构架,这意味着消息在发送给客户端时先在中心队列排队。 阅读全文
posted @ 2017-01-05 12:59 yswenli 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 为什么要用Message Queue 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束 冗余 有时在处理数据的时候处理过程会 阅读全文
posted @ 2017-01-05 12:58 yswenli 阅读(868) 评论(0) 推荐(1) 编辑