RocketMQ初步应用架构理论】的更多相关文章

RocketMQ初步应用架构理论 写给RocketMQ架构应用入门,内容涉及它的设计机理以及推到出来的应用注意事项,入门人员请看. 稍微涉及技术细节,留以我设计中间件时参考,将来整理深度文档时会抽取走,入门人员可以无视. 以下RocketMQ简称为RQ,理论部分采用版本为3.2.4,测试部分采用版本为3.2.6. MQ的需求 我们对MQ的需求,相比JMS标准有几点要求更高: 1. 必须优美灵活地支持集群消费. 2. 尽量支持消息堆积. 3. 服务高可用性和消息可靠性. 4. 有起码的运维工具做集…
介绍 rocketmq 框架与基本概念 1. 概念 1.1 namesrv(name server) 记录了 broker 集群信息,消息队列的信息以及 key-value 配置,见 RouteInfoManager 和 KVConfigManager. 可以由多个 namesrv 实例组成集群,但相互独立,没有信息交换. 1.2 broker 核心组件,负责存储所有的消息相关信息 支持主从模式 支持 master 写操作,只有当 master 读压力高于某个点(消息堆积),才会将读压力转给 s…
前言 看了我们之前的文章,相信小伙伴们对RocketMQ已经有了一个初步的了解,那么今天我们就来聊一聊具体如何来设计一套高可用的生产部署架构. 在聊如何设计这套架构的同时,我们再补充一些之前没提到的知识.好了,那我们现在开始吧. NameServer的部署 关于NameServer,我们之前的文章已经详细讲解过了集群化的内容,这里直接把它部署到三台机器上,作为一个高可用集群,如果忘记了,小伙伴们参考一下这篇文章聊一聊RocketMQ的注册中心NameServer,本篇文章就不再细聊了. Brok…
分布式消息服务 Kafka 是一个高吞吐.高可用的消息中间件服务,适用于构建实时数据管道.流式数据处理.第三方解耦.流量削峰去谷等场景,具有大规模.高可靠.高并发访问.可扩展且完全托管的特点,是分布式应用上云必不可少的重要组件 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常简单,非常轻量. 那不禁要问了:ZooKeeper是业界用来管理集群的一个非常常用的中间件,比如Kafka就是依赖的ZK.那为什么RocketMQ要自己造轮子,自己做集群的管理呢?纯粹就是再做一个Zook…
我们知道,在早期的RocketMQ版本中,是有依赖ZK的.而现在的版本中,是去掉了对ZK的依赖,转而使用自己开发的NameSrv. 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常简单,非常轻量. 那不禁要问了:ZooKeeper是业界用来管理集群的一个非常常用的中间件,比如Kafka就是依赖的ZK.那为什么RocketMQ要自己造轮子,自己做集群的管理呢?纯粹就是再做一个Zookeeper吗? 本篇试图通过一个架构上的巨大差异,来阐述为什么RocketMQ可以去掉ZK. 有…
RocketMQ作为消息中间件,在系统异步化架构中,应用非常广泛.但是我们在享用RocketMQ的同时,也不能百分百完全信赖它.一旦RocketMQ崩溃了,给我们业务带来的也将是毁灭性打击. 因此,我们在使用RocketMQ的时候,一定要做好补偿工作. 下面提供一个RocketMQ的补偿架构图,已在实际工作中应用: 总结:在系统设计中,针对各个可能存在安全隐患的点,一定要提前做好防御措施.切不可存在侥幸心理.…
1. RocketMQ主要的9个模块,如图: 2. 模块介绍 1. rocketmq-common:通用的常量枚举,基类方法或者数据结构,按描述的目标来分包,通俗易懂.报名有admin,consumer,filter,hook,message等. 2. rocketmq-remoting:用Netty写的客户端和服务端,fastjson做的序列化,自定义二进制协议 3. rocketmq-sevutil: 只用一个ServerUtil类,类注解是,只提供Server程序依赖,目的是为了拆解客户端…
一.定义 1.起源 来源:Roy Fielding的博士论文. 目的:理解和评估以网络为基础的应用软件的架构设计,得到一个功能强.性能好.适宜通信的架构. 定义:一种实现软件通信的架构风格.设计风格,而不是标准:提供了一组设计原则和约束条件. 用处:提供一种架构风格,目前也有很多相关实现,我们可以理解这种风格,借助这些实现来实现一个良好通信软件架构. 2.定义 REST的名称解释: SOAP:简单对象访问协议(英文:Simple Object Access Protocol,简称SOAP). R…
一.什么是微服务? 微服务是一种程序架构模式,它提倡将单体应用程序划分成若干的小服务模块,服务之间互相协调.互相配合,为用户提供最终价值.每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful AP)).每个服务都围绕着具本业务进行构建,并且能够被独立的部署到生产环境.另外,要尽量避免统一的.集中式的服务管理机制,对具体的某个服务而言,应根据业务上下文,选择合适的语言.工具对其进行构建. 二.什么是SpringCloud? 微服务部署一般都…
是官方文档的总结 http://spring.io/projects/spring-cloud-netflix#overview 讲解基于2.0.2版本官方文档 https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.0.2.RELEASE/single/spring-cloud-netflix.html Netflix提供了以下功能: 服务发现:可以注册Eureka实例,客户端可以使用Spring的beans来发现这…