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
可以看到成功的读取回来了字符串.


芯片老鸟
1 声望0 粉丝