九州官方网站 版权所有 2003-2023
-
您的位置:
- 网站首页
- > 九州(中国)科技有限公司官网
- > 鲸品堂
您的位置:
传统处理方法 使用了消息队列的异步解耦的处理方法 Namesrv为无状态服务,是WhaleDI-MQ的注册中心,用于收集和更新路由信息;WhaleDI-MQ通过部署多个Namesrv节点保障高可用,当一个Namesrv异常退出后,客户端能够自动重连到其他的Namesrv节点。 Broker为实际对外提供消息发送和消费服务的节点,消息会轮询发送到各个主节点Broker中,主备之间通过同步双写保障数据的可靠性;单个Broker master节点异常时,备节点会自动切换为master节点,继续提供服务;当一组Broker的master、slave节点全部异常时,其他的Broker节点仍然可以提供服务,保证了服务的可用性。 WhaleDI-MQ利用ZK特性监控Broker的主备状态,实现了Broker的自动切换功能。Zookeeper自身采用多节点(奇数个)部署的方式,利用ZAB协议特性保证自身组件的高可用。 Producer为生产者客户端,采用多节点集群部署模式,具备极强的扩展能力,某个Producer异常,不影响其它Producer节点发送消息。 Consumer为消费者客户端,和Producer一样采用多节点集群部署模式,当某个Consumer节点异常时,WhaleDI-MQ根据负载策略动态再平衡,重新调整队列路由。 作为Broker的注册中心,维护Broker的服务地址和路由信息 客户端通过Namesrv获取以及更新路由信息 故障场景: 解决方案: 应用成果: Producer客户端发送消息到Broker master节点 Master节点同步写入到Slave从节点 Slave通知Maser节点消息写入成功 Master节点返回成功写入状态至消息客户端 痛点描述: 解决方案: 应用成果: 痛点描述: 解决方案: 同步复制:保证数据零丢失;异步复制:容灾复制对主站点自身的消息写入服务影响比较小,数据复制会有稍许的延时(秒级)。 应用成果:WhaleDI-MQ容灾站点可以在主站点异常不可用时,进行一键容灾切换,将容灾站点切换为主站点,快速地恢复服务。 故障场景: BrokerA磁盘阻塞或写入超时 生产者和BrokerA之间网络超时、丢包等 BrokerA cpu、内存等使用率超过100% 解决方案: 资源隔离:单个Broker的异常不会影响其他Broker的消息发送 超时熔断:当前的Broker在一定的时间内超时达到了一定的次数,并执行服务降级,并使用异步的机制探测恢复的情况 失败熔断:当发送失败的调用次数达到一定阈值,如system busy、io满载等则自动降级,并使用进行异步机制探测恢复的情况 应用成果: 痛点描述: 方案描述: 应用成果: