读书笔记: 大型网站系统与Java中间件实践(4)

目录:
大型网站系统与Java中间件实践(3)
大型网站系统与Java中间件实践(4)

4 服务框架

4.1 服务框架简述

随着业务的发展,系统从垂直架构演进为服务化架构,这个过程会遇到一些问题。服务框架就是为了解决这些问题的,如下图所示:
在这里插入图片描述

我们从服务调用者出发,看看服务框架的作用。服务调用者调用服务提供者的接口,由于服务提供者一般是以集群形式存在的,那么就需要进行路由寻址,选定某个服务提供者来处理调用请求,接着需要按照事先约定好的协议进行编码和通信。服务提供者接收到请求之后进行解码,并调用服务实现,返回结果。

简单点来说,服务框架实际上包含服务注册/发现和远程过程调用两部分功能。可参考另一篇文章——面向服务的体系架构

4.2 实践优化之服务升级

服务落地之后,随着业务的发展,可能是需要对服务进行升级的。服务升级一般有两种情况,一种是接口不变,只对服务逻辑本身进行升级,这种情况比较简单就不说了。另外还有一种就是接口变更了,主要指接口参数变了,这种情况相对复杂。

服务升级带来的接口变化问题,本质上就是接口兼容问题。在不停机的情况下,接口的变更要充分考虑旧版本和新版本的不同参数。主要有几种应对方式:

  • 服务提供方和服务调用方同时修改,同时发布。理论上可以,实际不好操作。比如某次升级服务接口,减少了一个调用参数。这次升级只对众多服务调用方中的其中一方有益,此时不可能要求所有的调用方都同时来修改调用入参。
  • 通过版本号来解决,这是比较常用的方式。通过版本号来区分新旧服务,以此做不同的处理。

4.3 服务治理

为了保证线上系统的稳定运行,对服务进行治理是必须的。服务治理包含多个方面,大概可以分为服务查看和服务管理。

像阿里的Dubbo的后台管理界面,展示的内容就是最基本的服务治理的一些内容。上线一个服务后,这个服务是否正常,服务提供者的ip是多少,服务有哪些消费者等等,这些都属于服务查看。服务禁用,添加消费者黑名单等等,这些则属于服务管理。这些都是服务治理的最基本的内容,一般需要通过后台管理界面来提供相应功能。

实际上,服务治理的范畴是很广泛的,还包含很多其他方面。

  • 服务质量
    根据被调用服务的出错率、响应时间等数据对服务质量进行的评估。

  • 服务容量
    根据所提供服务的总能力以及当前所使用容量进行的评估,其中能力是指对于请求数量方面的支撑情况。

  • 服务依赖
    根据服务被调用以及服务调用其他服务的情况,给出服务于其他上下游服务的依赖关系,除了服务间定性的依赖关系外,还有定量的数据信息。

  • 服务统计
    服务运行时情况的统计,如调用次数和出错次数、出错率、响应时间。

另外还有服务报表,服务监控等内容。

从服务管理的角度看,以下内容是需要关注的:

  • 服务上下线
    控制服务的上下线,包括针对一个服务的所有机器的上线和下线操作,针对指定机器的上线和下线,DoubleCheck控制。

  • 服务路由
    对服务路由策略的管理。

  • 服务限流降级
    根据调用限流、根据具体服务限流、针对服务开关降级等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值