基于`Redis`實(shí)現(xiàn)的分布式消息順序消費(fèi)管道。
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號”
優(yōu)質(zhì)文章,第一時間送達(dá)
66套java從入門到精通實(shí)戰(zhàn)課程分享?
hello everyone,今天給大家推薦一個很不錯的分布式消息順序消費(fèi)解決方案-Message Pipe。
gitee開源地址:
https://gitee.com/minbox-projects/message-pipe

Message Pipe
基于Redis實(shí)現(xiàn)的分布式消息順序消費(fèi)管道。
I. 什么是Message Pipe?
Message Pipe是基于Redis實(shí)現(xiàn)的順序消息管道,由于內(nèi)部引入了Redisson分布式鎖所以它是線程安全的,多線程情況下也會按照寫入管道的順序執(zhí)行消費(fèi)。
Message Pipe采用Client、Server概念進(jìn)行設(shè)計(jì),內(nèi)部通過grpc-netty來建立消息通道相互通信的長連接,消息的分發(fā)由Server負(fù)責(zé),而每一個管道內(nèi)的消息在分發(fā)時會通過LoadBalance(負(fù)載均衡)的方式來獲取在線的Client信息并向Client順序發(fā)送消息。
II. 架構(gòu)圖
...
III. 特性
自動注冊
心跳檢查
消息分發(fā)
順序消費(fèi)
讀寫分離
線程安全
負(fù)載均衡
自動剔除
IIII. 快速上手
為了快速上手,提供了message-pipe使用的示例項(xiàng)目,項(xiàng)目源碼:https://github.com/minbox-projects/message-pipe-example。
4.1 安裝Redis
由于message-pipe基于Redis實(shí)現(xiàn),所以我們首先需要在本機(jī)安裝Redis,下面是使用Docker方式安裝步驟:
# 拉取Redis鏡像
docker pull redis
# 創(chuàng)建一個名為"redis"的后臺運(yùn)行容器,端口號映射宿主機(jī)6379
docker run --name redis -d -p 6379:6379 redis
4.2 查看Redis數(shù)據(jù)
# 運(yùn)行容器內(nèi)命令
docker exec -it redis /bin/sh
# 運(yùn)行Redis客戶端
redis-cli
# 選擇索引為1的數(shù)據(jù)庫
select 1
# 查看全部的數(shù)據(jù)
keys *
4.3 啟動示例項(xiàng)目
# 下載源碼
git clone https://github.com/minbox-projects/message-pipe-example.git
# 進(jìn)入項(xiàng)目目錄
cd message-pipe-example
# 運(yùn)行項(xiàng)目
mvn spring-boot:run
V. License
message-pipe采用Apache2開源許可進(jìn)行編寫。
粉絲福利:108本java從入門到大神精選電子書領(lǐng)取
???
?長按上方鋒哥微信二維碼?2 秒 備注「1234」即可獲取資料以及 可以進(jìn)入java1234官方微信群
感謝點(diǎn)贊支持下哈?
