分布式系统:
将一个系统按照业务模块拆分为多个独立的子系统
优点:
- 业务模块相应独立,某一个业务模块升级,不用升级整个系统
- 开发方便,不需要将代码合并
- 如果某一个业务模块压力大,只需要对该业务模块单独进行扩展(水平),其他的业务系统不受影响,可以充分利用资源.
缺点:
- 系统之间交互,需要通过rpc,rest来实现,这样系统间还是有比较强的耦合.
- 当某一个业务大时,还是会出现业务系统崩溃的问题.
消息中间件
概述:
- 利用高效可靠的消息传递机制进行平台无关的数据交流;
- 并基于数据通信来进行分布式系统的集成;
- 通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信;
应用场景:
- 跨系统数据传递,高并发流量削峰,数据异步处理等等…
常用的:
ActiveMQ:老牌消息中间件,RabbitMQ,Kafka,RockerMQ
本质:
一种具备接收请求,保存数据,发送数据等功能的网络应用.和一般网络应用程序的区别是它主要负责数据的接收和传递,所以性能一般都高于普通程序
五大核心组成:
-
协议
- 是计算机之间通信时共同遵从的一组约定,都遵守相同的约定,计算机之间才能相互交流
- 语法:http规定了请求报文和响应报文的具体格式
- 语义:客户端主动发起的操作叫请求
- 时序:一个请求对应一个响应
- 常用的协议:OpenWire,AMQP,MQTT,Kafka,OpenMessage
- http协议不适合做消息协议:因为数据包太大(header,cookie等)
-
持久化机制
- 将数据存入磁盘,而不是存在内存中随服务重启而消失,是数据能够永久保存,叫做持久化.
-
消息分发机制
- -
高可用设计
- 分布式架构设计
-
高可靠设计
- 指系统可以无故障的持续运行,比如一个系统从来不崩溃,报错,或者崩溃,报错几率低,就是高可靠