#阿里云原生最佳实践# 大搜车:云上多地域高可用消息系统的构建

本文主要是介绍#阿里云原生最佳实践# 大搜车:云上多地域高可用消息系统的构建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

汽车产业互联网平台大搜车由姚军红创立于2012年12月,先后获得阿里巴巴集团、蚂蚁金服、晨兴资本、华平投资、春华资本等机构超过12亿美元融资。2017年12月,大搜车列入由硅谷全球数据研究机构PitchBook评选的“2017年全球新晋独角兽”名单。

目前,大搜车已经搭建起比较完整的汽车产业互联网协同生态。随着业务业务的快速发展,大搜车遇到了一系列的问题:

  • 大量微服务系统,总数在2000以上,这些系统之间的异步通信全部都需要通过消息队列MQ,导致消息量大幅增加,日均消息TPS在6000以上,消息系统的稳定性成为云上业务稳定保障的重中之重。
  • 由于有杭州和北京两大研发中心,客户在杭州和北京都部署了大量业务系统,多地域应用的消息同步需要有稳定可靠的机制。
  • 物联网设备的管理和接入对消息系统提出了更高的要求。
  • 大数据领域大量应用Kafka,需要更稳定可靠的商业版Kafka产品,减少运维工作量。

为了更好地支撑业务,大搜车利用云上MQTT+消息队列RocketMQ+全球消息路由+消息队列Kafka构建了完整的云上消息系统。

  1. 通过全球消息路由功能将杭州地域的消息同步到北京地域,做到业务分地区就近部署。
  2. 独立消息队列实例管理不同业务,可用性更高。
  3. 利用消息队列Kafka对接大数据生态,即开即用,快速扩容,可靠性更高。物联网设备通过MQTT进行接入,后台开发物联网设备管理平台,通过MQTT连接设备端,并对设备的能力进行管理,可通过平台调用设备端能力(比如发起会议、下发开机图片、获取设备信息等)。
  4. MQTT与RocketMQ后台消息打通,后端应用服务器无需保持设备端连接,以通用的RocketMQ消息进行对接,服务器端更稳定,连接管理更可靠。

56.png

  • 业务稳定性:阿里云RocketMQ提供99.99999999%的数据可靠性和99.95%的服务可用性SLA,确保服务高可用以及数据不丢失。
  • 高性能:RocketMQ支持千万级TPS以及亿级消息堆积,在业务高峰期依然可以保持高性能。
  • 全球消息路由:利用稳定可靠的路由功能,将客户多个地域的消息系统打通,实现业务就近访问,满足跨地域、远距离、毫秒级消息流转的需求。
  • 海量物联网设备管理:利用阿里云消息队列MQTT,实现物联网设备与云上业务应用可靠连接,轻松管理海量物联网设备。
  • 云上托管版Kafka:兼容开源Kafka协议,全托管,高可用,高安全。无缝对接开源及云上大数据生态。

这篇关于#阿里云原生最佳实践# 大搜车:云上多地域高可用消息系统的构建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/573116

相关文章

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用