基于Redis
实现的分布式消息顺序消费管道。
Message Pipe
是基于Redis
实现的顺序消息管道,由于内部引入了Redisson
分布式锁所以它是线程安全的,多线程情况下也会按照写入管道的顺序执行消费。
Message Pipe
采用Client
、Server
概念进行设计,内部通过grpc-netty
来建立消息通道相互通信的长连接,消息的分发由Server
负责,而每一个管道内的消息在分发时会通过LoadBalance(负载均衡)
的方式来获取在线的Client
信息并向Client
顺序发送消息。
...
- 自动注册
- 心跳检查
- 消息分发
- 顺序消费
- 读写分离
- 线程安全
- 负载均衡
- 自动剔除
为了快速上手,提供了message-pipe
使用的示例项目,项目源码:https://github.com/minbox-projects/message-pipe-example。
由于message-pipe
基于Redis
实现,所以我们首先需要在本机安装Redis
,下面是使用Docker
方式安装步骤:
# 拉取Redis镜像
docker pull redis
# 创建一个名为"redis"的后台运行容器,端口号映射宿主机6379
docker run --name redis -d -p 6379:6379 redis
# 运行容器内命令
docker exec -it redis /bin/sh
# 运行Redis客户端
redis-cli
# 选择索引为1的数据库
select 1
# 查看全部的数据
keys *
# 下载源码
git clone https://github.com/minbox-projects/message-pipe-example.git
# 进入项目目录
cd message-pipe-example
# 运行Client与Server合并示例项目
cd client-server-merge
# 运行项目
mvn spring-boot:run
message-pipe
采用Apache2开源许可进行编写。