0
点赞
收藏
分享

微信扫一扫

响应式微服务架构


响应式系统

响应式系统和传统方法的对比
1.处理过程
传统开发方式下,使用的是拉取数据的变化,这是一种间歇性、互不相关的处理过程。前端组件不关心数据库中的数据是否发生变化。
在响应式开发方式下,处理过程只有在数据变化才会被触发,类似于推送数据的工作方式。
理解拉取数据和推送数据的区别,可以借助获取推荐博客50条的业务场景。拉取数据可以减少大量的无意义的数据交互,推送数据能够缓解高并发、高访问下的服务器并行压力。
2.线程管理
响应式系统相对于传统的开发方式来说,线程周期很短,所有资源之间存在竞争的关系更少。
3.伸缩性
响应式开发方式支持传统开发方式下的各种伸缩性实现机制,并提供了更多的分布式实现选择。

响应式系统的特性

  • 即时响应性:只要有可能,系统就会及时地做出响应。
  • 回弹性:指的是系统出现失败时依然保持即时响应性。
  • 弹性:指的是在系统在不断变化的工作负载之依然保持即时响应性。
  • 消息驱动:指的是响应式系统依赖异步的消息传递,从而确保松耦合、隔离、位置透明的组件之间有明确边界。
  • 基于数据流:一旦数据库中的数据有更新,系统的前端组件上就能有相应的变化。

微服务框架

微服务框架有以下的特点:服务组件化、按业务逻辑组织服务、去中心化、基础设施自动化。

服务拆分与集成
任何业务都需要使用某个数据容器作为持久化的机制或者数据处理的媒介,这里的数据容器不仅指关系型数据库,还泛指包括消息队列、搜索引擎索引以及各种NoSql在内的数据媒介。
所以微服务的拆分是围绕业务代码和数据库进行拆分的。通常的方法有绞杀者模式(逐步替换老系统)和修缮者模式(新老系统共存)。

服务集成(服务之间相互通讯)
接口集成:通过RPC、REST消息传递和服务总线的服务接口调用。
数据集成:通过共享数据库或者数据复制的方式实现数据集成。
客户端集成:由于部分微服务包含一些UI界面,通过这些UI界面就能调用其背后的服务。客户端集成的方式包括直接集成、使用FrontEnd服务器和使用API网关。
外部集成:很多服务之间的集成包括了与外界服务的依赖和整合,这种集合方式可能包含以上三种方式。

微服务的核心组件
事件驱动:事件可传输于松散耦合的组件和服务之间。
负载均衡:服务器端负载均衡(nginx)+客户端负载均衡(ribbon)
API网关:使所有的客户端和消费端都通过统一的网关接入微服务。
配置中心:集中式配置管理,确保同一个服务组件使用的配置文件,能够同步地被更新。
服务治理:实现自动化的服务注册和发现,并对不可用的服务进行周期性心跳检测,并踢出
服务可靠:服务熔断机制,防止由于单个服务组件宕机,导致服务整体的雪崩。
服务监控:通过日志聚合和服务跟踪技术实现 管理服务之间的调用关系、跟踪业务流的处理顺序个结果。

注:
服务器端负载均衡和客户端负载均衡区别在于服务清单所存储的位置;
服务器端负载均衡的清单配置在 负载均衡服务器中;
而客户端负载均衡 会从治理服务器中获取服务器地址列表,每一个客户端都存有服务器地址列表。

响应式微服务架构

响应式微服务架构设计原则

  • 隔离一切事物:系统的隔离性能够保证服务之间不会因为逻辑上错误捕获、错误处理,而导致服务的雪崩现象。
  • 自主行动:隔离是自主的前提,少的依赖关系,能够保证在面对冲突和失败状况时,能够很快地锁定错误。
  • 单一职责:提高了系统整体的可扩展、弹性、易维护等。
  • 拥护自己的私有状态:确保服务有独立的数据库。
  • 拥抱异步消息传递:解决技术耦合、空间耦合、时间耦合的问题,打破技术、空间、时间上的限制。
  • 保证移动,但可寻址:保证服务的地址的稳定性(负载均衡)

响应式微服务架构_数据


举报

相关推荐

0 条评论