Skip to content

daheige/rs-broker-demo

Repository files navigation

rust rdkafka

rust使用rdkafka实现消息发送和消费

基于rdkafka封装的broker见: https://github.com/rs-god/rs-broker

kafka in docker

启动kafka容器

docker-compose up -d

进入容器后,创建topic

cd /opt/kafka
bin/kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092

install librdkafka

  • macos安装方式:
brew install pkgconf
brew install zlib
brew install librdkafka
  • apt安装方式:
  1. 安装相关依赖
apt-get install -y build-essential libcurl4-openssl-dev libssl-dev zlib1g-dev pkg-config wget curl
  1. 源码cmake编译安装
cd /opt && wget https://github.com/confluentinc/librdkafka/archive/refs/tags/v2.12.1.tar.gz
tar -zxf v2.12.1.tar.gz && cd /opt/librdkafka-2.12.1 && mkdir build && cd build && cmake ..
make && make install
  1. 设置环境变量
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1

建议将上面的环境变量设置放入~/.bash_profile文件,然后执行source ~/.bash_profile生效。

  1. 查看是否安装成功
pkg-config --modversion rdkafka

rdkafka in docker

# 构建rust运行环境的基础镜像
make build-dev

构建容器镜像

make build

运行容器

make run

进入容器运行消息发送

docker exec -it rs-broker /bin/bash
#root@ab9534dcd889:/app# ls
#bin  main
#root@ab9534dcd889:/app# ./main
#Hello, world!
#delivery status: Ok(Delivery { partition: 0, offset: 15, timestamp: CreateTime(1765010845887) })
#root@ab9534dcd889:/app#

运行效果如下: rdkafka-publish.png

About

rust kafka

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors