《软件架构模式》-第四章 微服务框架模式(下)
原文链接 译者:克里斯托刘
《软件架构模式》-第四章 微服务框架模式(下)
避免依赖和编排
设计微服务架构的一个主要难度是为服务组件选择正确的粗细粒度。如果服务组件设计的太粗糙,就彰显不了这种架构模式带来的好处(如部署、可扩展性、可测试性和松耦合)。但是,服务组件设计的过于细化,对服务组件编排要求更高,将你的微服务系统演变成面向服务的重量级体系结构,通常会带来缺点如复杂性、误导性、高开销,这些都是能在基于SOA的应用程序中找到的。
原文链接 译者:克里斯托刘
《软件架构模式》-第四章 微服务框架模式(下)
避免依赖和编排
设计微服务架构的一个主要难度是为服务组件选择正确的粗细粒度。如果服务组件设计的太粗糙,就彰显不了这种架构模式带来的好处(如部署、可扩展性、可测试性和松耦合)。但是,服务组件设计的过于细化,对服务组件编排要求更高,将你的微服务系统演变成面向服务的重量级体系结构,通常会带来缺点如复杂性、误导性、高开销,这些都是能在基于SOA的应用程序中找到的。
原文地址 译者:克里斯托刘
经纪人拓扑结构(Broker Topology)
经纪人拓扑结构和调度员拓扑结构不同点在于,没有中央事件调度员,而是:消息执行流程沿着类似链条连接的各个事件处理模块,通过轻量级的消息经纪人(比如AcitveMQ, HornetQ)实现。这样的拓扑结构,在你只需要处理一个相对简单的事件处理流程,同时不想要中央事件调度员时候,特别适用。
在经纪人拓扑结构中,有两种主要的模块:经纪人模块和事件处理模块。经纪人模块可以是集中的,包含所有的用于事件处理流程的事件通道(event channel),该事件通道可以做成消息队列或者消息主题(message topics),或者两种的结合。
原文地址 译者:克里斯托刘
事件驱动架构模式是一个非常流行的异步分布模式,可生成高可扩展性应用。而且它也具有强适应能力,可被用于小程序或者大型复杂程序。事件驱动架构是由高耦合度、单一目的的事件处理模块构成,这些模块异步接收、处理事件。
事件驱动架构模式有两种主要拓扑结构,“调度员”(mediator)和“经纪人”(broker)拓扑结构。“调度员”拓扑结构通常用在一个事件中由多个步骤组成,而你需要通过中央“调度员”模块去调度这些步骤。然而“经纪人”结构是当需要执行一系列事件链,而不需要中央“调度员”模块。由于这两种结构的特征和执行策略不同,深入理解两者的用法能帮助你在自己的案例中做出正确的判断。
原文地址 译者:克里斯托刘
模式实例
为更好描述分层架构怎样工作,考虑一个业务从业人员获取特定目标用户信息的需求,如图1-4所示。黑色箭头标志一路下到数据库的获取用户数据的请求流向,而红色箭头显示从下往上直到显示数据的屏幕这一数据反馈流向。在这个例子中,客户信息包含客户数据及订单数据(用户下的订单)。“用户屏幕”负责接收查询请求和显示用户信息,它并不知道数据在哪里、如何获取它、有多少数据库表格需要查询才能满足查询请求。一旦“用户屏幕”接收到查询客户信息的请求,它接着传递请求到“用户代理”模块。这个模块知道业务层中哪个模块可以处理该请求,同时知道如何调用该模块、传递哪些参数给该模块。业务层中的“用户类”负责收集所有业务请求需要的信息。该模块调用持续层的“用户数据访问接口”(Dao data access object)模块获取用户数据;调用“订单数据访问接口”模块获取订单信息。这些模块接着执行SQL语句去获得相关数据,再传递回业务层的“用户类”模块。一旦“用户类”获得数据,它会收集订单和用户信息两块数据同时传递回“用户代理”模块,“用户代理”模块继而传递数据回“用户屏幕”呈现给使用者。