顺序消息管道《Message|顺序消息管道《Message Pipe》v1.0.2版本发布
文章图片
知识改变命运,撸码使我快乐,2020继续游走在开源界Message Pipe是什么? 它是
点赞再看,养成习惯
给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案
minbox
开源组织内的新成员,Message Pipe
从字面的意思上理解为 "消息管道",它确实是一个消息管道的定位,是基于Redis
实现的分布式顺序消息管道。源码地址 目前
Message Pipe
开源平台:- GitHub:https://github.com/minbox-projects/message-pipe
- Gitee:https://gitee.com/minbox-projects/message-pipe
message-pipe
加入到项目中,详见:https://github.com/minbox-projects/api-boot。集成相关代码:https://github.com/minbox-projects/api-boot/tree/master/api-boot-project/api-boot-autoconfigure/src/main/java/org/minbox/framework/api/boot/autoconfigure/message/pipe
可以解决什么问题? 它主要是来解决分布式系统下消息的顺序消费的方案,内部通过
Redisson
的分布式锁以及分布式队列的特性来完成消息的处理,消息的分发则是由Grpc
来完成的。消息分发时支持常见的负载均衡策略,比如:随机策略、IP轮询方式等。
【顺序消息管道《Message|顺序消息管道《Message Pipe》v1.0.2版本发布】由于内部采用的是分布式锁的方式实现,所以支持多个
Server
同时就行消息的轮询获取以及分发操作。更新日志 详见:https://github.com/minbox-projects/message-pipe/releases/tag/1.0.2.RELEASE
? New Features
- [ #75 ] 每个消息管道新增 ”MessagePipeDistributor“,用于自动分发管道内的消息
- [ #77 ] 如果消息管道的数量超出配置上限,抛出异常提醒
- [ #68 ] Server分发消息逻辑重构,优化线程池内线程占用CPU的使用率
- [ #70 ] 废除 “MessageDistributionExecutor” 概念,修改为 “MessageScheduler”
- [ #71 ] 废除 "MessagePipeMonitor" 公共消息管道监听器,为每个消息管道内的消息添加 "MessageMonitor"
- [ #72 ] 重构消息管道 "MessagePipe" ,内聚操作管道内消息的方法
message-pipe
使用的示例项目,项目源码:https://github.com/minbox-projects/message-pipe-example。安装Redis
由于
message-pipe
基于Redis
实现,所以我们首先需要在本机安装Redis
,下面是使用Docker
方式安装步骤:# 拉取Redis镜像
docker pull redis
# 创建一个名为"redis"的后台运行容器,端口号映射宿主机6379
docker run --name redis -d -p 6379:6379 redis
查看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
推荐阅读
- 危险也是机会
- python学习之|python学习之 实现QQ自动发送消息
- angular2内置管道
- 深入浅出谈一下有关分布式消息技术(Kafka)
- 夏夜|夏夜 我们
- Vue组件之事件总线和消息发布订阅详解
- Redis——发布订阅/消息队列
- Java消息中间件概念基础
- 【20190827复盘】——好消息
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历