美文网首页
分布式服务框架--第十章:服务发布和引用

分布式服务框架--第十章:服务发布和引用

作者: celusing | 来源:发表于2020-11-19 09:47 被阅读0次

服务提供者需要通过配置、注解、API调用等方式,把本地接口发布成远程服务;对于消费者,可以通过对等的方式引用远程服务提供者,实现服务的发布和引用

一.服务发布设计

深度截图_选择区域_20201119091317.png

1.服务发布的方式

  • XML配置方式
  • 注解方式
  • API调用方式

2.本地实现类封装成代理

对于服务提供者,将本地实现类封装成代理对象不是必需的。但是采用动态代理有如下好处:

  • 不管什么服务,他们的发布流程都是相似的,通过抽象代理层,可以对服务发布行为本身进行封装和抽象。
  • 通过代理对象:可以对服务发布进行动态拦截,方便平台和业务对服务发布进行个性化定制;
  • 便于扩展和替换;

3.服务发布成指定协议

根据服务配置的属性信息,将服务发不成指定协议。同一个服务可以发不成多种协议。

4.服务提供者信息注册

深度截图_选择区域_20201119093714.png

将服务按照指定协议发布之后,需要将服务发布信息注册到注册中心,服务注册的目的有两个:

  • 供消费者订阅服务地址信息进行服务路由
  • 基于服务注册中心的统一服务治理

二.服务引用设计

深度截图_选择区域_20201119093015.png

1.本地接口调用转换成远程服务调用

消费这导入服务提供者的本地API之后,在配置文件中引用远程服务提供者,即可实现远程服务调用。
其原理是:根据导入的服务提供者接口API和服务引用信息,生成远程服务的本地动态代理对象;它负责将本地的API调用转换成远程服务调用,然后将结果返回给调用者。

2.服务地址本地缓存

深度截图_选择区域_20201119093803.png

3.远程服务调用

消费者从本地缓存的服务列表中按照指定的策略路由,将请求消息封装成协议消息;调用相关协议的客户端将请求发送到服务提供者,业务线程按照服务调用方式选择同步等待或者注册监听器回调。
协议客户端读取到应答消息,将数据报解码成协议应答消息;再根据序列化格式将消息体序列化成业务POJO对象,唤醒业务等待的线程。业务线程获得服务调用结果返回。


深度截图_选择区域_20201119094125.png

相关文章

网友评论

      本文标题:分布式服务框架--第十章:服务发布和引用

      本文链接:https://www.haomeiwen.com/subject/tdrkiktx.html