服务化的演变

分布式应用架构体系对于逻辑复杂的需求十分强烈,上层业务都想借自己已有的递增服务、来快速搭建更多、更丰富的应用,降低新业务开展的人力和时间成本,快速满足瞬息万变的市场需求,公共的业务被区分出来,形成可共用的服务,最大程度地保障了代码和逻辑的复用,避免重复建设,这种设计也被称为SOA。

SOA(Service-Oriented Architecture)面向服务的架构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来,接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

SOA架构中,服务消费者通过服务名称,在众多服务中找到要调用的服务的地址列表,称为服务的路由。

而对于负载较高的服务来说,往往对应着由多台服务器组成的集群。在请求到来时,为了将请求均衡的分配到后的服务器,负载均衡程序将服务对应的地址列表中,通过相应的负载均衡算法和规则,选取一台服务器进行访问,这个过程称为服务的负载均衡。

当服务模块较小时,可以曹勇硬编码的方式将服务地址和配置在代码中。通过编码的方式来解决服务的路由和负载均衡问题,也可以通过传统的硬件辅助均衡设备如F5等或者采用LVS或Nginx等软件解决方案,通过相关配置,来解决服务的路由和复杂均衡问题。由于服务的机器数量在可控范围内,因此维护成本能够接受。

当服务越来越多,规模越来越大时,对应的机器数量也越来越庞大,单靠人工来管理和维护服务及地址的配置信息,已经越来越空难。并且,依赖单一的硬件负载均衡设备或者使用LVS,Nginx等软件方案进行路由和负载均衡服务器宕机,依赖它的所有服务均将失效。

猜你喜欢

转载自www.cnblogs.com/dream-to-pku/p/9564000.html