Aidenboss

Aidenboss

V2EX 第 179784 号会员,加入于 2016-06-30 21:52:55 +08:00
根据 Aidenboss 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
Aidenboss 最近回复了
135 天前
回复了 Aidenboss 创建的主题 Java 轻量级 Java 应用消息通知中心
@MidCoder 如果你需要解决,可以用: https://www.xuxueli.com/xxl-mq/
135 天前
回复了 Aidenboss 创建的主题 Java 轻量级 Java 应用消息通知中心
@MidCoder
你没理解这个场景,既然使用了 redis,就不需要保障消息可靠和一致性。
这个场景只需要解决消息传递即可,这也是这个项目的本意。
如果要做更牛的功能,直接用 RabittMQ 解决好了。
不需要什么事情都推到大规模、亿万消息、机制性能。技术是为了解决问题而存在的。只要解决那个场景的问题,自然就有存在的价值。如果脱离的场景,只考虑技术难点,会忽略了解决这个问题的本质。
136 天前
回复了 Aidenboss 创建的主题 Java 轻量级 Java 应用消息通知中心
@Aidenboss
重新补充下细节,topic 消息负载使用 topic 内消息分片解决。怎么解决呢?
默认分成 8 个分片数「具体随意调整」
前置条件:
redis-cluster 保存每个 topic 的订阅者信息,以及订阅者的 key 。比如 key = topic_s_list,value = [c1:1,3,6,7,c2:2,4,5,8]
每个消息都会按照 routing 算法计算出 key,每个消息都会发送到对应的 key 订阅通道,如:msg:1,代表发送到 msg1 发送给 topic1,只有 c1 才能接收到 msg1 的消息。


当加入一个新的 topic 订阅者,就先发送 topic:stop 指令,c1 、c2 接收到指令后,之后的消息先缓存在 redis 的待发送 list topic_s_pengding 中
c3 通过 lua 脚本,将 topic_s_list 修改为:[c1:1,3,4,c2:2,5,c3:6,7,8],并发送 sub_update 指令
c1 、c2 接收指令后,重新订阅的 key 变成 topic:1 、topic:3 、topic:4 ; c2 的订阅的 key 是:topic:2 、topic:5 ; c3 订阅的 key 是 topic:6 、topic:7 、topic:8
将 topic_s_pengding 中的 key 重新发送到 topic 中

中间会有类似 kafka rebalance 的现象。但其实并不影响消息的生产。

技术是为了解决问题的,提出没解决的点,照着点去设计就好。
136 天前
回复了 Aidenboss 创建的主题 Java 轻量级 Java 应用消息通知中心
136 天前
回复了 Aidenboss 创建的主题 Java 轻量级 Java 应用消息通知中心
@MidCoder
1. redis 单点就由 redis-cluster 解决。为啥要让应用层解决中间件单点的问题。
2. center 是可以水平扩展的,已经解决了多 topic 的问题了。如果是单 topic 的消息负载,这点确实提醒了我,没有做。但使用 center + redis 参考 redis 模糊匹配的订阅模式即可。

以上已经解决了你的问题。
136 天前
回复了 Aidenboss 创建的主题 Java 轻量级 Java 应用消息通知中心
@MidCoder
你再仔细看下为啥 center 不是单点的吧
136 天前
回复了 Aidenboss 创建的主题 Java 轻量级 Java 应用消息通知中心
@MidCoder
1. 引入的风险就看各自的承接了。只要达到 99.9% 可用即可
2. 横向拓展是通过 redis 做的,这里的逻辑推演下即可
3. 可以通过简单的加机器完成

请你先了解好以上再来评价。
165 天前
回复了 zesenwu 创建的主题 求职 4 年前端求职,坐标深圳
wx: bmV3X0FpZGVu
165 天前
回复了 zesenwu 创建的主题 求职 4 年前端求职,坐标深圳
177 天前
回复了 reng 创建的主题 求职 求一个前端职位 base 珠三角, 3-5 年工作经验
大佬,深圳考虑吗?
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2168 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 05:20 · PVG 13:20 · LAX 21:20 · JFK 00:20
♥ Do have faith in what you're doing.