专栏首页SpringBoot 核心技术顺序消息管道《Message Pipe》v1.0.2版本发布

顺序消息管道《Message Pipe》v1.0.2版本发布

Message Pipe是什么?

它是minbox开源组织内的新成员,Message Pipe从字面的意思上理解为 "消息管道",它确实是一个消息管道的定位,是基于Redis实现的分布式顺序消息管道。

源码地址

目前Message Pipe开源平台:

另外ApiBoot对它进行了集成,可以通过配置文件的形式快速把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轮询方式等。

由于内部采用的是分布式锁的方式实现,所以支持多个Server同时就行消息的轮询获取以及分发操作。

更新日志

详见:https://github.com/minbox-projects/message-pipe/releases/tag/1.0.2.RELEASE

✨ New Features

  • [ #75 ] 每个消息管道新增 ”MessagePipeDistributor“,用于自动分发管道内的消息

? Fix Bugs

  • [ #77 ] 如果消息管道的数量超出配置上限,抛出异常提醒

? Optimizations

  • [ #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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员凌晨未加班被领导怒批:想养生?公司不适合你

    现在在互联网时代,创业公司也如雨后春笋般出现,如今小编也在一家中型的创业公司工作,工作时间一天12小时,也算比一般公司长的了,不过确实如此,作为一个程序员,这行...

    恒宇少年
  • 远程调用服务(RPC)和消息(Message Queue)对比及其适用/不适用场合

    大部分情况下,“给定场景下应该使用这两个产品中哪个”这个问题,大家都会容易决定,而且不需要多少讨论。

    恒宇少年
  • SpringCloud组件:Eureka服务注册中心的失效剔除与自我保护机制

    Eureka作为一个成熟的服务注册中心当然也有合理的内部维护服务节点的机制,比如我们本章将要讲解到的服务下线、失效剔除、自我保护,也正是因为内部有这种维护机制才...

    恒宇少年
  • 我所理解的性能测试是什么?

    扯淡 首先说明这篇博客是文不对题的。起这个名字想法来源自韩寒的《我所理解的生活》,之前看过一个关于这本书的视频,感觉巨牛X,于是就想写一篇《我所理解的性能测试...

    小小科
  • 谷歌推出“流体标注”AI辅助工具,图像标注速度提升3倍!(附论文)

    基于深度学习的现代计算机视觉模型(比如由TensorFlow对象检测API实现的模型)的性能取决于是否可以使用规模越来越大的标记训练数据集(如公开的图像)进行训...

    新智元
  • 技术编程人员成长的9个段位

    很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望...

    飞雪无情
  • 开发项目的时候选择什么开源许可?MIT还是Apache…

    特别声明:除特别标注,本站文章均为原创,本站文章原则上禁止转载,如确实要转载,请电联:wangyeuuu@qq.com,尊重他人劳动成果,谢过~

    lollipop72
  • 中通新财报:业绩下滑背后仍是老问题

    疫情的影响是全方位的,在全国人民居家隔离的特殊时期,以往线下繁荣的行业不得已全部匆忙转战线上,引得线上领域意外火热。但是这种线上繁荣的背后,同样也需要有线下的配...

    刘旷
  • 浅析数据安全与隐私保护之法规

    在大数据时代背景下,AI和大数据技术给我们的生活带来了巨大的便利和效率;然而在此过程中,数据滥用、数据窃取、隐私泄露以及“大数据杀熟”等数据安全问题呈徒增和爆发...

    绿盟科技研究通讯
  • 初识I/O | I/O系列(一)

    I/O设备,包括磁盘、键盘、显示器、各种网络传输设备、及各种驱动程序等。计算机系统参与I/O的外设大体分为三类:

    搬砖俱乐部

扫码关注云+社区

领取腾讯云代金券