-
Notifications
You must be signed in to change notification settings - Fork 9
Guide_Distributed
pojol edited this page Jul 13, 2018
·
15 revisions
分布式缓存
使用redis集群,将数据的安全性交给redis & mysql | mongodb, 服务做成无状态,通过redis stream group 来进行负载均衡
高可用
/
负载均衡
redis stream group 的竞争消费
rpc
redis stream
- 单独消费
- 消费组
- 中途加入消费
RPC module
App1moduleA -> App1moduleRpc : 1. 注册module
App1moduleRpc -> redis : 1.1 创建stream队列
App2moduleB -> App2moduleRpc : 2. 发送rpc请求
App2moduleRpc -> redis : 2.1 xadd 推送消息 & 创建监听队列
App1moduleRpc -> redis : 3. xrange
App1moduleRpc -> App1moduleA : 3.1 dispatch event 2 observer
App1moduleA -> App1moduleRpc : 4. callback
App1moduleRpc -> redis : 4.1 xadd 将消息添加到侦听管道
App2moduleRpc -> redis : 4.2 xrange
App2moduleRpc -> App2moduleB : 4.3 dispatch callback 2 listener
dispatch(rpcM_, event.rpc, "AuctionModule", event.rpc_auction_getpage, "type", page)
listen(event.rpc_auction_getpage, function(args)
count = args[1]
succ = args[2]
errMsg = args[3]
if succ then
pageInfo = args[4]
else
pageInfo = {}
end
end)
dispatch(rpcM_, event.rpc_subscription, "AuctionModule")
listen(event.rpc_auction_getpage, function(args)
target = args[1]
type = args[2]
page = args[3]
dispatch(rpcM_, event.rpc, target, event.rpc_auction_getpage, 1, true, ""
,{"001":{"id":1, "name":"test1", "pirce":100}
,"002":{"id":2, "name":"test2", "pirce":101}})
end)