分布式服务如何实现服务回调
服务回调: 是服务提供者给调用者提供的一个功能,允许在执行服务的过程中,当满足一定条件时,回调用户的接口方法。
Java实现回调步骤主要如下:
1. 服务提供者定义回调接口,并提供包含回调接口参数的服务方法,在方法实现中调用回调接口参数的方法。
2. 客户端实现回调接口
3. 客户端将回调接口实现对象作为参数,调用服务方法.
当客户端和服务端在同一个jVM中,上面的步骤其实就已经OK了,也是非常简单的。
但是如果客户端和服务端不在一台服务器上,上面这个过程就不能实现了。
因为客服端的实现对象是在客户端的内存中,无法传给服务端,即使可以在服务器创建一个,但这样只是操作了服务器端的内存数据,客户端内存是没有变化的,根本就没效果
仔细分析下这个场景:
1. 服务提供者在客户端其实是一个代理(见服务总线),即使客户端不知道,因为已经被服务总线透明化了
2. 同理,客户端的回调接口实现对象在服务提供者那其实也应该是一个代理(服务方法应该不知道)。该代理远程调用远程调用客户端的接口对象实现服务.
那么我们的流程就出来了:见下一篇:
分布式服务如何实现服务回调
最新推荐文章于 2024-07-11 04:09:51 发布