#研发中间件介绍#异步消息可靠推送Notify
本文档适用人员:研发
- RCA:ActiveMQ 的生产者流量控制导致订单中心大量线程挂起;
- RCA:PHP连MQ超时导致主库连接被打满,引发众多应用数据不一致——原因在于 PHP::Stomp 包的默认重试次数和默认超时时间;
- RCA:调小 ActiveMQ之持久化 MySQL 的 wait_timeout 导致发送 MQ 消息频频失败。
- 可靠性:
- 消息的投递分为两个阶段
- 发布者向Broker发送消息
- Broker向订阅者投递消息
- 因此,消息有可能在三个地方丢失
- 发布者到Broker之间
- Broker本身
- 从Broker到订阅者
- 消息的投递分为两个阶段
- 稳定性
- 监视
- Broker内存使用
- 消息收发功能
- 消息堆积情况
- 存储的插入速度
- 各个任务队列长度
- 其他各项即时统计数据等
- 控制
- 自动移除失效存储节点
- 优雅降级的控制
- 添加新存储节点
- 添加新Broker
- 监视
- 限制
- 有可能产生重复消息
- 对订阅者的要求
- 幂等性 f(f(x)) = f(x)
- 重复调用多次产生的业务结果与调用一次产生的业务结果相同
- 模块关系
- 各个模块(队列、生产者、交换中心、DB、消息体缓存、队列缓存、日志缓存、分配中心、消费者)存在一定的对应关系,通过这些对应关系能够更好路由和分流消息,动态扩展系统,改善系统瓶颈。
- 这些对应关系都存储在控制中心关系数据库中,通过控制台界面来进行配置,各模块在启动和定时到控制中心来更新这些关系,用于消息的分配。
- 这些关系都遵守一定规则,添加更改不会影响系统的稳定性,如:一个队列必须对应两个以上的交换中心来处理消息,如果DB中还有消息没有消费完毕不允许直接删除,等等。
- 模块监控
- 控制台定期测试各个模块的健康状况。
- 各个模块会定期向控制中心发送一些监控数据,报告自己的运行状态。
- 控制台收集监控数据,以图表、拓扑图等形式向管理人员展示或报警。
- 消息跟踪
- 每一条消息在进入系统后都会被分配一个唯一标识。
- 各模块在处理消息时都会产生特定的日志信息,日志信息实时的传送到日志系统。
- 唯一标识+日志+各模块信息和关系可以容易的跟踪每一条消息的执行情况。
- 吞吐量:
- 交换中心、分配中心都采用平行结构。
- 队列使用持久化方式缓存,使用缓存减少对DB的操作。
- 交换中心与分配中心分离,性能互不影响。
- 动态改变网络拓扑结构,分流系统瓶颈。
- 动态控制吞吐量参数,调整系统性能。
- 扩展性
- 交换中心、分配中心、DB、缓存可以动态添加或删除。
- 队列路由路径可以动态改变。
- 可用性
- 交换中心、分配中心采用平行方式提高可用性。
- DB采用 master-master 方式提高可用性。
- 缓存采用多点读写方式提过可用性。
- 一致性
- 消息状态持久化在DB,未分配或消费失败的会再次被提取。
- 分配中心采用快慢两种方式接收消息处理消息。
- 等幂性
- 缓存保存正在处理的消息,防止重复分配。
窝窝的解决方案介绍列表:
#研发解决方案#基于StatsD+Graphite的智能监控解决方案
#研发中间件介绍#定时任务调度与管理JobCenter
#研发解决方案介绍#Recsys-Evaluate(推荐评测)
#研发解决方案介绍#Tracing(鹰眼)
#研发解决方案介绍#基于持久化配置中心的业务降级
#研发中间件介绍#异步消息可靠推送Notify
#研发解决方案介绍#IdCenter(内部统一认证系统)
#研发解决方案介绍#基于ES的搜索+筛选+排序解决方案
#数据技术选型#即席查询Shib+Presto,集群任务调度HUE+Oozie
#研发中间件介绍#异步消息可靠推送Notify相关推荐
- netty服务器定时发送消息,netty+websocket+quartz实现消息定时推送
netty+websocket+quartz实现消息定时推送&&IM聊天室 在讲功能实现之前,我们先来捋一下底层的原理,后面附上工程结构及代码 1.NIO NIO主要包含三大核心部分: ...
- 消息推送服务器推pc,PC浏览器消息实时推送的解决方案 ——EPush推送平台
原标题:PC浏览器消息实时推送的解决方案 --EPush推送平台 陈华 研发工程师,2014入职去哪儿网.参与研发的EPush推送平台,增强了订单推送的时效性,提高了酒店自助订单处理率.最近负责CEQ ...
- 想让用户“一见钟情”,你需要主题订阅消息精准推送
现今智能终端App越来越多,各个App推送的信息量急速扩张,如何让自己推送的信息精准抓住用户的视线,在市场竞争中占据高地?其中一个答案就是--主题订阅消息推送. 主题订阅消息推送可以根据用户习惯或让用 ...
- 突破微信小程序模板消息的推送限制
"模版消息"是小程序非常重要且可主动触达用户的一种能力.爱鲜蜂小程序通过"模版消息",建立一套用户唤醒机制,达到提升用户复购率的目的.小打卡小程序的近30天访问 ...
- 异步获取邮件推送结果
邮件推送服务提供了事件通知功能(可在其控制台上打开异步通知功能),支持将邮件推送的结果以消息的方式异步通知给用户.用户可以通过创建事件通知的规则,来指定在邮件推送过程中触发不同的事件时,将邮件推送的结 ...
- RabbitMQ(九):RabbitMQ 延迟队列,消息延迟推送(Spring boot 版)
应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持 ...
- 小程序消息主动推送php,微信小程序有几种推送消息的方式
微信小程序有5种推送消息的方式,分别为:1.小票机订单提醒,实现对商家的消息提醒:2.短信提醒:3.模板消息,各种动态可及时掌握:4.公众号订单提醒:5.消息主动推送,商家主动出击.推销自己的最好手段 ...
- Swift - 本地消息的推送通知(附样例)
使用UILocalNotification可以很方便的实现消息的推送功能.我们可以设置这个消息的推送时间,推送内容等. 当推送时间一到,不管用户在桌面还是其他应用中,屏幕上方会都显示出推送消息. 1, ...
- RabbitMQ 延迟队列,消息延迟推送
应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给支付系统,通知支付系统将款打给商家,这个过程持 ...
- java消息推送怎么实现_PHP实现的消息实时推送功能
本文实例讲述了PHP实现的消息实时推送功能.分享给大家供大家参考,具体如下: 入口文件index.html <!DOCTYPE HTML> <html> <head> ...
最新文章
- config kubectl_使用kubectl管理k8s集群(三十)
- lvs服务器需要开启web服务么_如何检测 Web 服务请求丢失问题
- 遇见那个对的人,便是爱情
- STM32L0系列串口重定义的方法
- WordPress个性页面制作教程
- jsf集成spring_Spring和JSF集成:分页
- 双手无法敲代码的程序员,该如何编程?
- Centos-7修改yum源为国内的yum源
- BZOJ_1626_[Usaco2007_Dec]_Building_Roads_修建道路_(Kruskal)
- Intellij idea 主题下载网址
- div css3 border-radius 之圆角 div圆角 图片圆角
- 惠普服务器故障代码_惠普服务器常见问题及故障排除
- PHP的常用框架有哪些?
- 网络计算机怎么使用,如何让电脑使用ipv6地址?一文了解清楚
- scratch聪明的小猫 电子学会图形化编程scratch等级考试四级真题和答案解析2021-12
- IDEA maven 项目 POM文件变灰色或有个虫子(蜘蛛标记)
- 简述几种常用的编码器数据格式
- 华为BBU3900学习
- 黑炫酷的监控界面,实际上是用了什么开源工具?
- 自学脚手架——《热学》 by 李椿(第一,二,三,四,五章)
热门文章
- 再问:支付宝即时到账集成接口!
- javascript数据结构——栈
- delphi 学习资源和移动开发
- HTTP所承载的货物(图像、文本、软件等)要满足的条件
- zend studio7 在 ubuntu9.10 中按钮失效只能用回车解决办法
- 应用程序按照以下顺序执行由 global.asax 文件中定义的模块或用户代码处理的事件...
- 决定了 [2007-10-11]
- MySql Odbc等驱动下载地址分享下
- ubuntu 16.04安装并启动openssh
- HDU 1312 Red and Black(最简单也是最经典的搜索)