Dubbo
简述
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
主要模块
Provider
暴露服务方称之为“服务提供者”。
Consumer
调用远程服务方称之为“服务消费者”。
Registry
服务注册与发现的中心目录服务称之为“服务注册中心”。
Monitor
统计服务的调用次数和调用时间的日志服务称之为“服务监控中心”。
RPC框架,使用dubbo之后我们的远程调用就像在调自己模块一样。
//服务B中的class
class .. {
//userService远程服务的业务接口类(实际想调用的是服务A中对应接口的实现类方法)
private UserService userService;
public String getRemoteMSG(String var1) {
String res = userService.getmsg(var1);
}
}
我们想要这样去使用远程的服务,也就是我们作为消费者在调用的时候完全就跟调用本项目中的方法一样。
实现原理
图解抽象原理
手写思路
基本思想
前提假设
有两个服务A和B,服务B是提供一些服务,而业务中A需要去调用服务B。
#方案:
#A服务中通过http请求去调用B中的方法,A请求的时候带上要访问的B服务的IP和端口再加上body信息(要调用哪个类的哪个方法携带参数),然后将结果返回给A
#其实最终我们也是要以这种方式去实现的,但是我们可以通过一些手段让这个过程更加好用,更加方便,所以doubbo就是为了干这个事儿。
Provider
#要做的事
<