后端程序员之路 36、Apache Kafka
Apache Kafka
http://kafka.apache.org/
Kafka,很容易就联想到《海边的卡夫卡》,文艺程度和Casablanca有得一拼。Kafka是一个分布式消息系统,
Apache Kafka:下一代分布式消息系统
http://www.infoq.com/cn/articles/apache-kafka
基本概念:
- Topic 主题,表示消息的分类
- Producer 消息的生存者
- Consumer 消息的消费者
- Broker 消息代理
Kafka剖析(一):Kafka背景及架构介绍
http://www.infoq.com/cn/articles/kafka-analysis-part-1/
c++来使用Kafka最常用的库是librdkafka
edenhill/librdkafka: The Apache Kafka C/C++ library
https://github.com/edenhill/librdkafka
c++作为Consumer的例子:
0、member
- RdKafka::Consumer* _consumer;
- RdKafka::Topic* _topic;
1、set kafka compression
- RdKafka::Conf *conf = RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL);
- string compression = config.get_string(xxx::KAFKA_COMPRESSION);
- conf->set("compression.codec", compression, errstr)
2、set offset config
- RdKafka::Conf *tconf = RdKafka::Conf::create(RdKafka::Conf::CONF_TOPIC);
- tconf->set("auto.commit.enable", ...)、auto.commit.interval.ms、offset.store.method
3、set kafka broker
- conf->set("metadata.broker.list", broker, errstr)
4、create consumer
- _consumer = RdKafka::Consumer::create(conf, errstr);
- _topic = RdKafka::Topic::create(_consumer, topic_str, tconf, errstr);
- _consumer->start(_topic, _partition, start_offset);
5、consume thread
- RdKafka::Message *msg = _consumer->consume(_topic, _partition, 1000);
- _msg_consumer(msg, NULL);
- delete msg;
- _consumer->poll(0);
后端程序员之路 36、Apache Kafka的更多相关文章
- 后端程序员之路 7、Zookeeper
Zookeeper是hadoop的一个子项目,提供分布式应用程序协调服务. Apache ZooKeeper - Homehttps://zookeeper.apache.org/ zookeeper ...
- 后端程序员之路 59、go uiprogress
gosuri/uiprogress: A go library to render progress bars in terminal applicationshttps://github.com/g ...
- 后端程序员之路 43、Redis list
Redis数据类型之LIST类型 - Web程序猿 - 博客频道 - CSDN.NEThttp://blog.csdn.net/thinkercode/article/details/46565051 ...
- 后端程序员之路 29、Thrift
Apache Thrift是Facebook实现的一个高效的.支持多种编程语言的远程服务调用(RPC)框架. Apache Thrift - Homehttp://thrift.apache.org/ ...
- 后端程序员之路 28、一个轻量级HTTP Server的实现
提到http server,一般用到的都是Apache和nginx这样的成熟软件,但是,有的情况下,我们也许也会用一些非常轻量级的http server.http server的c++轻量级实现里,M ...
- 后端程序员之路 27、LogStash
访谈与书评:<LogStash,使日志管理更简单>http://www.infoq.com/cn/articles/review-the-logstash-book/ [Logstash] ...
- 后端程序员之路 22、RESTful API
理解RESTful架构 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2011/09/restful.html RESTful API 设计指南 - 阮一峰的网络日 ...
- 后端程序员之路 16、信息熵 、决策树、ID3
信息论的熵 - guisu,程序人生. 逆水行舟,不进则退. - 博客频道 - CSDN.NEThttp://blog.csdn.net/hguisu/article/details/27305435 ...
- 后端程序员之路 4、一种monitor的做法
record_t包含_sum._count._time_stamp._max._min最基础的一条记录,可以用来记录最大值.最小值.计数.总和metric_t含有RECORD_NUM(6)份recor ...
随机推荐
- Python3.9.1中如何使用split()方法?
本文出自:lunvey,半路出家学编程之Python.split()方法定义于str类中,str类大家都知道是python内置定义的一个字符串类. split()默认两个参数,分别是分隔符和分隔数量, ...
- 一文弄懂-《Scalable IO In Java》
目录 一. <Scalable IO In Java> 是什么? 二. IO架构的演变历程 1. Classic Service Designs 经典服务模型 2. Event-drive ...
- LA 3641 Leonardo的笔记本 & UVA 11077 排列统计
LA 3641 Leonardo的笔记本 题目 给出26个大写字母的置换B,问是否存在要给置换A,使得 \(A^2 = B\) 分析 将A分解为几个循环,可以观察经过乘积运算得到\(A^2\)后,循环 ...
- zjnu1757Excellent (数学公式)
Description Let us begin with a positive integer N and find the smallest positive integer which does ...
- Codeforces Round #552 (Div. 3) C. Gourmet Cat (数学,模拟)
题意:你要带着你的喵咪一起去旅行,你的喵在星期\(1,4,7\)吃喵粮\(x\),在星期\(2,6\)吃喵粮\(y\),在星期\(3,5\)吃喵粮\(z\),你只有\(a\)个\(x\),\(b\)个 ...
- CodeForces - 1140C
题意: 给你n首歌,每首歌有一个长度ti和一个愉悦度bi,你最多可以从中挑选出来k首歌.那么你挑选出来这首歌会为你增加sum歌愉悦度,sum的求法就是:挑选出来所有歌的长度之和,乘与挑选出来所有歌中愉 ...
- Codeforces Round #646 (Div. 2) B. Subsequence Hate (思维,前缀和)
题意:给你一个只含有\(0\)和\(1\)的字符串,每次操作可以将\(0\)改成\(1\)或\(1\)改成\(0\),问最少操作多少次,使得子序列中不含有\(010\)和\(101\). 题解:仔细想 ...
- postcss 运用及原理
postcss 入坑指南 目标: 掌握 postcss 的使用 自定义 postcss 插件 掌握 stylelint 的使用 自定义 stylelint rule 扩展 css parser 解释器 ...
- 【ybt金牌导航1-2-5】【luogu P3287】优美玉米 / 方伯伯的玉米田
优美玉米 / 方伯伯的玉米田 题目链接:ybt金牌导航1-2-5 / luogu P3287 题目大意 有一个数组,你可以每次给一个区间里面的值加一,要你使得最后剩下的最长单调不下降子序列最长. 思路 ...
- redis跳表
redis使用跳表作为有序集合的底层实现之一,下面来看下跳表的结构 一.跳表的结构