天天在给自己挖坑排坑。。。

因为要开多线程消费,所以分区加到了10,两个broker。

Producer没有做特殊处理,所以是随机发到Partitions。

但是Consumer只做Subscribe订阅的话,会只消费到Partition = 0 的消息。

因此看了一下有个Assign可以绑定分区和topic。

但是只使用TopiicPartition的话,只能配置成功但是消费不成功,尝试加Subscribe后还是只能消费到partition=0的分区消息。

最后考虑是不是因为offset的问题。

使用Assign(TopicPartitionOffset)之后,成功消费到对应分区对应消息。

(12.13改 关于subscribe只消费到0分区的原因是 当前分区多个,但是消费者只有一个,因此即使rebalance,还是只能消费到一个分区)

另外关于kafka消费的问题,因为要控制消费的线程数,长时间跑的线程又不太方便用线程池(原因:线程池为了判断是否需要创建一个额外的线程,所采用的逻辑比较复杂,直接为长时间运行的任务创建专用线程,就可以避免这个问题。),所以直接开了n个线程来消费。

这样的情况下,如果是单例的消费者,对应单个分区是没有问题的,取消息是排队的,但是处理消息还是可以并发的。

另外还有一种方案,就是多个分区对应多个消费者。开多个线程跑。

啊,这里我还查了lambda表达式的匿名传参,大概格式如下

 kafkaThread[i] = new Thread(delegate (object obj)
{
//线程代码
};

此外在测两种方案的QPS,消费平滑度等性能的时候,需要在线程里设置count++,因此又学了一个知识点。

用Interlocked 就可以做到++的原子操作了,代码如下:

 private static int _countConsume = ;

 Interlocked.Increment(ref _countConsume);

都是属于自己学习之路上的干货,记录一下。

昨天晚上加班的比较晚,后来老大来跟我聊了一会儿。聊得东西很多,我本人毕业院校不太好,组里小哥哥是中科大的。所以我当时感到压力挺大,然后老大就跟我讲了一些关于学校里和工作后的区别。

顺带讲了方法论和工具是什么,告诉我怎么去使用一项技术,工作和科研的区别(技术与业务的结合性)。

感觉我老大是人超好的那种,他的境界是我所仰望的,讲真毕业第一份工作有这样一位老大带着,我感觉非常幸运,希望我可以在他带的团队里,学到更多的东西,早日可以独当一面。

最新文章

  1. ios7隐藏系统底部导航
  2. System.Web.HttpRequestBase转HttpWebRequest
  3. java如何追加写入txt文件
  4. Docker+K8S实践
  5. Requests库的几种请求 - 通过API操作Github
  6. windows 下搭建 apache + php52 + postgreSQL7/8/9环境
  7. 每个Android开发者必须知道的资源集锦
  8. Tp框架 之对控制器的一些操作等
  9. 1583: [Usaco2009 Mar]Moon Mooing 哞哞叫
  10. [BZOJ 3629][ JLOI2014 ]聪明的燕姿
  11. linux系统下安装配置解压版的MySQL数据库
  12. Mac Segmentation fault: 11
  13. JVM EXCEPTION_ACCESS_VIOLATION
  14. FPGA系列之一:Cyclone V中的时钟资源
  15. Python全栈-day1-day2-计算机基础
  16. G++ C++之区别
  17. 下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( )。
  18. python2.7中可以使用到的一些模块地址
  19. noip第10课作业
  20. 查看JSTL的doc解决问题

热门文章

  1. (回溯法)ip地址的合理性
  2. Java java.lang.Thread#join()方法分析
  3. 用ActionBar的ActionProvider的时候报错:cannot be cast to android.view.ActionProvider
  4. MariaDB 数据库迁移
  5. WPF 控件库——仿制Chrome的ColorPicker
  6. Docker 的部署方式
  7. Hibernate学习第三天(2)(多对多关系映射)
  8. java 图书馆系统 练习
  9. 上课总结-模电chapter 1
  10. 泛型2(lambda表达式/参数绑定)