ClyMQ是一款基于x86/x86_64架构,运行于Linux操作系统的,由Go语言开发的分布式的面向消息的中间件,能够实时储存和分发数据,在程序中能简单搭建起来,你可以毫不费力的构建分布式和可扩展的客户端-服务器应用程序。
-
支持多种订阅模式,用户可更具不同场合选择消息的消费模式。
-
支持分布式和动态扩容,保证高可用和动态的扩容。
-
多中同步副本方式,通过ack机制根据需求选择适合的同步方式。
-
采用SSTable标记索引位置,加速消息索引查询。
-
使用Zookeeper存储meta数据,简化ClyMQ数据结构。
-
顺序读写磁盘,提高数据的读写速率。
ClyMQ使用了cloudwego的kitex,所以需要先安装kitex。
- 确保 GOPATH 环境变量已经被正确地定义(例如 export GOPATH=~/go)并且将$GOPATH/bin添加到 PATH 环境变量之中(例如 export PATH=$GOPATH/bin:$PATH);请勿将 GOPATH 设置为当前用户没有读写权限的目录
- 安装 kitex:go install github.com/cloudwego/kitex/tool/cmd/kitex@latest
- 安装 thriftgo:go install github.com/cloudwego/thriftgo@latest
若安装出现问题请参考kitex
接下来安装ClyMQ:
- 拉取ClyMQ
git@github.com:yclchuxue/ClyMQ.git
- 使用kitex生成RPC代码:
cd ClyMQ
kitex -module ClyMQ -service ClyMQ operations.thrift
kitex -module ClyMQ -service ClyMQ raftoperations.thrift
接下来你就可以在你的代码中使用ClyMQ。
将代码中引入ClyMQ后,可选择以下操作来运行Server
- 方式1
执行上述命令后应该有一个output目录,其中包括编译产品。
sh build.sh
执行上述命令后Server开始运行sh output/bootstrap.sh
- 方式2
go run main.go
详细使用方法请参考ZKServer使用文档和Broker使用文档
详细使用方法请参考producer使用文档
详细使用方法请参考consumer使用文档
-
若kitex生成的代码报错,则将go.mod中的github.com/apache/thrift v0.13.0,该成13版本
-
构建 go.mod 文件
go mod init 项目名
-
加载 modules 模块
go mod tidy