入门说明 |
异步的通信协议 亿腾消息服务提供异步的通信协议。消息的发送者将消息发送到消息队列后可以立即返回,不用等待接收者的响应,消息会被保存在队列中,直到被接收者取出。 保证消息的传递 如果发送消息时接收者不可用,消息队列会保留消息,直到成功地传递它。 解耦 亿腾消息服务降低了两个进程间的耦合度。只要消息格式不变,即使接收者的接口、位置或者配置改变,也不会给发送者带来任何改变;而且,消息发送者无需知道消息接收者是谁,使得系统设计更清晰;相反的,例如,远程过程调用(RPC)或者服务间通过 socket 建立连接,如果对方接口改变了或者对方 IP/端口改变了,那么另一方需要改写代码或者改写配置。 提供路由 发送者无需与接收者建立连接,双方通过消息队列保证消息能够从发送者路由到接收者,甚至对于本来网络不易互通的两个服务,也可以提供消息路由。 |
队列模型 |
消息推拉模式 PULL 丰富的队列功能 CMQ 提供了丰富的队列属性配置选项,您可以个性化配置队列属性来满足不同的应用场景,支持多次消费、批量发送消费、重试策略配置等。 支持并发访问 支持多个生产者和消费者并发访问同一个队列,无需特殊设置即可自由调整并发度,并能确保某条消息在取出之后的特定时间段内,无法被其他消费者获得。 消息并发发送及接收 支持批量并发发送和接收消息,提升业务的吞吐性能。 消息投递保障 在消息有效期内,确保消息至少能被成功消费一次。用户间资源隔离,确保您队列中的消息不会被非法获取。 支持多次消费 若应用程序在处理消息的过程中由于断电等原因处理失败,可多次重试。 |
主题模型 |
消息推拉模式 PUSH 一对多消息投递 一条通知消息可以同时被多个订阅者订阅和消费,支持将某 Queue 设为订阅者。 多种投递方式 支持 HTTP/HTTPS 等多种投递方式。 消息过滤 可根据消息 TAG、订阅者 TAG 进行消费过滤,增加消费灵活性 。 消息投递保障 在消息有效期内,保证发布到 Topic 中的消息会按照指定的重试策略,进行多次重试投递,尽可能保证业务成功接收消息。 |
队列数量及队列存储容量可扩展性强;底层系统根据业务规模,自动弹性伸缩,上层业务无感知;高效支持亿级消息收发、推送,堆积,容量不设上线;提供北京、上海、广州地域的多地域服务。
消息服务每条消息在返回给用户写成功之时就确保数据已被复制3份写到不同物理机上,并且后台数据复制机制能够保证任何一台物理机故障时其上的数据能够快速的做迁移,时刻保证用户数据3份 copy 可用,可靠性达99.999999%。
多纬度的安全防护和防DDoS攻击服务;每个消息服务提供单独命名空间,客户间数据严格隔离;支持HTTPS访问;支持跨地域的安全消息服务。
红包系统的分布式事务性的问题让大家很头痛,微信架构组在红包系统引入了 CMQ,避免分布式事务增加对系统的开销。CMQ 红包队列,保证了红包消息的可靠存储、传递,实时落盘写三份保证数据不丢。资金入账失败时可多次重试,避免入账失败后 rollback 回写和频繁轮询 DB。