网易云课堂学习-分布式中间件设计篇

单体架构:
所有代码都在一个项目中,耦合度太高,升级一个模块需要将所有模块都升级一遍。
分布式系统架构:(一个请求需要多个系统协调处理)
在这里插入图片描述
基于消息中间件的分布式系统
在这里插入图片描述
消息中间件概述

  1. 什么是消息中间件
    利用高效可靠的消息传递机制,进行平台无关的数据交流;
    并基于数据通信来进行分布式系统的集成;
    通过提供消息传递和消息排队模型,它可以在分布式系统下扩展进程间的通信。

  2. 消息中间件的应用场景
    跨系统数据传递、高并发流量削峰、数据异步处理等等

  3. 常用的消息中间件
    activemq、rocketmq、rabbitmq、kafka

  4. 本质
    一种具备接受请求、保存数据、发送数据等功能的网络应用。
    和一般网络应用程序的区别是它主要负责数据的接受和传递,所以性能一般高于普通程序。

  5. 5大核心组成
    协议、持久化机制、消息分发机制、高可用机制、高可靠机制

协议
什么是协议?
协议是计算机之间通信时共同遵守的一组协定,都遵守相同的协定,计算机之间才能相互交流。
是对数据格式和计算机之间交流时必须遵守的规则的正式描述。
协议三要素;

  1. 语法:数据与控制信息的结构或格式;
  2. 语义:即要发出何种控制信息,完成何种动作以及做出何种响应。
  3. 时序(同步):事件实现顺序的详细说明

常见协议:
http协议的三要素

  1. 语法:http规定了请求报文和响应报文的具体格式。
  2. 语义:客户端主动发起的操作称为请求。
  3. 一个请求对应一个响应。

消息中间件的常见协议:AMQP、OpenWire、MQTT、Kafka、OpenMessage

为什么消息中间件不直接使用http协议?
答:http协议太复杂、且是短连接。

openWire协议主要是activeMq使用。

AMQP(advanced message queuing protocol)协议:
是高级消息队列协议,04年,JPMorgan Chase(摩根大通集团)联合其他公司设计。
特性:事务支持、持久化支持,出生金融行业,在可靠性消息处理上具备天然的优势。

MQTT(message queuing telemetry transport)协议:
消息队列遥测传输,是IBM开发的一个即时通讯协议,物联网系统架构中的重要组成部分。

特性:轻量、结构简单、传输快、没有事务支持、没有持久机制
使用场景:适用于计算能力有限、低带宽、网络不稳定的场景。

Open Message
近两年由阿里发起、与雅虎、滴滴出行、streamlio等公司共同参与创立的分布式消息中间件、流处理领域的应用开发标准。
是国内首个在全球范围内发起的分布式消息领域国际标准。
特性:结构简单、解析快,有事务设计、有持久化设计。
Apache RocketMQ就是用的这种协议。

Kafka协议
是基于TCP的二进制协议。消息内部通过长度来分隔,由一些基本数据类型组成。
特性:结构简单、解析快、无事务设计、有持久化设计。

持久化
什么是持久化:简单来说就是将数据存入磁盘,而不是存在内存,随服务重启而消失,使数据能够永久保存叫做持久化。
在这里插入图片描述
常用持久化方式:
在这里插入图片描述
消息分发
在这里插入图片描述
高可用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
高可靠
就是指系统能持续无故障地持续运行。比如一个系统从来不崩溃、报错、或崩溃报错的几率很低,那就是高可靠。
高并发业务场景下,如果不能保证系统的高可靠,那将造成很严重的损失。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值