首先有个注册中心,提供的服务在注册中心注册保留各个服务的信息,用zookeeper来做。然后消费者需要去注册中心拿对应的服务信息,而且每个服务可能会存在于多台机器上。接着就发起一次请求了,怎么发起?基于动态代理,面向接口获取到一个动态代理,就是接口在本地的一个代理,然后这个代理会找到服务对应的机器地址。再然后就要找想哪个机器发送请求,用负载均衡算法,比如最简单的随机轮询。找到了一台机器,就可以跟它发送请求了,然后就是如何发送?可以用netty,nio方式,发送什么格式的数据?用hessian序列化协议了或者是别的,然后请求过去了。服务器那边一样的,需要针对自己的服务生成一个动态代理,监听某个网络端口了,然后代理本地的服务代码。接收到请求的时候,就调用对应的服务。
服务注册与发现:
- 服务注册中心:一个中心化服务注册和发现的服务器,如Zookeeper,用于存储服务提供者和服务消费者的列表。
- 服务接口定义:定义服务的接口,包括方法签名和契约。
服务提供者:
- 接口实现:服务提供者实现定义好的接口。
- 注册服务:服务提供