首先Dubbo是基于RPC原理实现的。
一、RPC就是远程调用服务。
我们像调用本地服务一样调用远程服务,
@Service
public class ServiceImpl implements Service {
private static final Logger LOGGER = LoggerFactory.getLogger(ServiceImpl.class);
@Resource
private RemoteMethod remoteMethod;
.......
}
1、我们在实现了 远程调用之后,就需要集成Spring的IOC功能 生成代理将入伍注入进去。
2、我们不能每次调用远程方法的时候都去建立一次连接这样资源消耗很大,所以我们可以考虑建立长链接,所以我们可以保持若干个长连接。
3、可以再服务端创建一个线程池,来接受多个RPC请求。
4、我们需要有个服务注册中心,将所有的服务暴露出来,我们可以使用zookeeper。
5、因为有多个服务提供者 我们在选择的时候要合适的选择,就需要用到负载均衡了。
6、我们不能每次调用同一个服务的同一个方法都去请求一次服务,所以我们应该考虑创建一个缓存来缓存服务,降低服务器压力。
7、服务端的接口改了,但是之前的旧的接口还在使用,我们没办法停止,所以我们需要支持旧版本,考虑版本支持功能。
8、有些调用不需要等待服务端的结果,所以我们是否需要考虑支持异步调用。
9、如果服务端挂了,此时未处理完的请求怎么处理。