分布式与集群
分布式
分布式就是把一个系统拆分成多个服务节点,每个节点部署在不同的服务器上,可以理解为串联模式(多个电池串联起来电压增加电池容量不变)
集群
集群就把一个服务复制部署在多台电脑上,多台电脑同时执行同一个服务的功能,可以理解为并联模式(多个电池并联电压不变电池容量增加)
微服务中先分布式后集群
先分布式:例如12306,会把分成登录、查票、订单、支付等多个服务。
后集群:根据请求访问量多的服务弄成集群模式,例如12306中的查票服务。
微服务是什么
微服务是一个支持特定业务场景的独立部署单元。它借助语义化版本管理、定义良好的 API 与其他后端服务交互。它的天然特点就是严格遵守单一职责原则。
包含以下特点
- 每个微服务独立完整性:,虽然每个微服务会有重复部分,但是不能提取出来放到公共服务中,因为要保证每个微服务都有独立性完整的功能,以便于横向集群扩展
- 公共服务:包括注册、通信、认证、限流、负载均衡、熔断、日志等,这些公共服务有变化时不会影响到单个微服务
架构四要素:
- 问题:确定问题,怎么做
- 问题边界 (约束 ):谁的问题,给出约束
- 生命周期:从生到死
- 拆分:根据问题的生命周期拆分
设计模式
聚合器微服务设计模式
这是一种最常用也最简单的设计模式,目前学习的微服务系列都是选择这种设计模式,如下图所示:
聚合器调用多个服务实现应用程序所需的功能。它可以是一个简单的Web页面,将检索到的数据进行处理展示。它也可以是一个更高层次的组合微服务,对检索到的数据增加业务逻辑后进一步发布成一个新的微服务,这符合DRY原则。另外,每个服务都有自己的缓存和数据库。如果聚合器是一个组合服务