0 kafka 基本介绍
kafka网上有无数的介绍,我这里只做最基础的介绍.一切为了pass demo test. Apache Kafka发源于LinkedIn,Apache Kafka是一个快速、可扩展的、高吞吐、可容错的分布式发布订阅消息系统.Kafka具有高吞吐量、内置分区的特性,适合在大规模消息处理场景中使用.本质上kafka就是消息队列的一种实现. 和rabbitmq/rocketmq完成类似的功能. 下面根据图片解释kafka基本的概念
- producer: 消息的生成者,发送给broker
- consumer: 消息的消费者,从broker拿到消息
- broker: 消息的中间人
- topics:逻辑层面的消息分类划分
- partition:一个topic中可以有多个划分,每个划分中消息保证顺序,不同划分不保证顺序
1 kafka 下载
虽然很小白,但是还是要说明一下,我开始直接安装了kafka的librdkafka,这是和kafka通信的c/c++ lib库,如果不安装kafka,那么lib库的例子都会持续的报错,报告无法连接到kafka. 所以必须先安装好kafka.
下载路径:https://kafka.apache.org/down...
下载最新的kafka.
$ tar -xzf kafka_2.13-3.0.0.tgz
$ cd kafka_2.13-3.0.0
2 kafka 简单zookeeper启动
$ bin/zookeeper-server-start.sh config/zookeeper.properties
3 kafka 启动
$ bin/kafka-server-start.sh config/server.properties
4 kafka topic创建
未来的producer和consumer需要通过topic来交流沟通,所以需要我们创建一个topic
brokerid和hostname不用设置是因为默认的就可以工作,hostname=localhost,
brokerid里面实际是0.
./bin/kafka-topics.sh --create --partitions 1 --replication-factor 1 --topic test --bootstrap-server localhost:9092
5 librdkafka安装.
从https://github.com/edenhill/l... 下载下来zip包。
这是kafka的c/c++接口库
6 librdkafka make
这个主要是为了跑example来验证是否安装librdkafka成功.
./configure
# Or, to automatically install dependencies using the system's package manager:
# ./configure --install-deps
# Or, build dependencies from source:
# ./configure --install-deps --source-deps-only
make
sudo make install
7 run test
make成功后,进入example目录./rdkafka_example -P -t test
随便输入些字符串
另外启动一个terminal../rdkafka_example -C -t test -p 0
可以看到成功的读取回来了字符串.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。