Kafka生产者Producer配置 ,及C#中使用学习资料连接
Kafka学习资料
http://blog.csdn.net/bluetom520/article/details/54892959 https://www.infoworld.com/article/3215165/application-development/how-to-use-apache-kafka-messaging-in-net.html https://github.com/Microsoft/CSharpClient-for-Kafka https://github.com/Jroland/kafka-net https://github.com/confluentinc/confluent-kafka-dotnet/issues/50 --kafka.net http://blog.csdn.net/wulex/article/details/51786328 http://bbs.csdn.net/topics/392068221?page=1 --confluent.kafka 官网: https://www.confluent.io/product/compare/ https://github.com/confluentinc/confluent-kafka-dotnetKafka生产者Producer配置
http://blog.51cto.com/favccxx/1767882 注意: 一、 使用Kafka,需要配置hosts文件,hosts地址:C:\Windows\System32\drivers\etc 。配置方式如下: 1. 在搜索程序和文件中,输入cmd,点击cmd.exe,右键以管理员身份打开。 2、在控制台中输入notepad,打开文本文档 3、在文本文档中选择“打开”,找到hosts文件打开 4、在host文件中配置kafka ip及域名对应关系。保存。 ( # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost ip地址 along (域名) ) 二、Kafka中key的作用 key是用于hash分区的。一般我们建立kafka topic的时候,可以预分区。比如分了8个区。 这样你在往kafka写入的时候,如果key是a开头,就存到了分区1,b开头就存到了分区2,以此类推。当然内部肯定是挺复杂的, 分区多了,可以多线程并发读取数据,否则1个分区,读取速度和写入速度都很慢。 不传key就随机放一个地方了。但是不建议这样做。这样做就消息就没有顺序了。 当然,存入分区之前,最好使用md5一次。避免设备都跑到一个分区了。String did = "homer xxxxx";
send( md5(did) , value ); 分区是一个区域,没有数量之说。 你这样想,如果所有消息,全都放在一个盒子里面,当你消费的时候,也只能一个线程消费。这样速度慢。 如果topic有8个分区,就是有8个盒子,这样可以开8个线程消费。 至于一个盒子,能存多少数据,这个是无限的,取决于服务器配置 key只是用作,kafka用来判断,这个消息放到哪个盒子中。
相同的key肯定是会放到一个分区中