为什么要用dubbo
dubbo是一个中间件,提供以下功能
服务远程通信(rpc框架的基本功能),服务的跟踪和监控,服务的发现和感知,服务的容错和服务的负载均衡。
Dubbo项目搭建
请参看官网文档:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
关于 DubboMain 启动的真相
dubbo的启动类org.apache.dubbo.container.Main#main
public static void main( String[] args ) throws IOException {
Main.main(new String[]{"spring","log4j"}); //Dubbo提供的启动类方法,它会启动dobbu中配置的多个container
}
容器类型
SpringContainer:启动spring容器,默认取META-INF/spring/*.xml的配置文件加载
org.apache.dubbo.container.spring.SpringContainer#start
public void start() {
String configPath = ConfigUtils.getProperty("dubbo.spring.config");
if (StringUtils.isEmpty(configPath)) {
configPath = "classpath*:META-INF/spring/*.xml";
}
context = new ClassPathXmlApplicationContext(configPath.split("[,\\s]+"), false);
context.refresh();
context.start();
}
Log4jContainer:启动log4j日志
LogbackContainer:启动Logback日志
基于注册中心的 Dubbo 服务
Dubbo 能够支持的注册中心有:consul、etcd、nacos、sofa、zookeeper、
redis、multicast
zookeeper 作为注册中心
<dubbo:registry address="zookeeper://192.168.13.102:2181" />
Dubbo 集成 Zookeeper 的实现原理
image.pngdubbo 每次都要连 zookeeper
可以通过缓存来解决这个问题
<dubbo:registry id="zookeeper" address="zookeeper://192.168.13.102:2181" file="d:/dubbo-server" />
多注册中心支持
配置多个注册中心
<dubbo:registry id="rg1" address="zookeeper://47.110.245.187:2181"/>
<dubbo:registry id="rg2" address="zookeeper://47.110.245.187:2181"/>
将服务注册到不同的注册中心
<dubbo:reference interface="com.dubbo.IPayService" id="payService" registry="rg1"/>
注册中心的其他支持
- 当设置 <dubbo:registry check="false" /> 时,记录失败注册和订阅请求,
后台定时重试 - 可通过 <dubbo:registry username="admin" password="1234" /> 设置
zookeeper 登录信息 - 可通过 <dubbo:registry group="dubbo" /> 设置 zookeeper 的根节
点,默认使用 dubbo 作为 dubbo 服务注册的 namespace。
Dubbo 仅仅是一个 RPC 框架?
1 基于 Dubbo 协议的远程通信
2 提供服务注册和服务发现
3 Dubbo 可以支持市面上主流的注册中心
4 Dubbo 提供了 Container 的支持,默认提供了 3 种 container。我们可以
自行扩展
5 Dubbo 对于 RPC 通信协议的支持如Dubbo 协议,它还rmi、hessian、http、webservice、thrift、rest。可以根据不同的场景选择合适的协议。如rest协议:通过http请求来访问服务。
Dubbo 监控平台安装
安装步骤
1 从github地址为https://github.com/apache/dubbo-admin,在加zip源码
2 使用idea将项目导入并执行clean package,主要原因是一旦报错,idea的错误信息比命令行的提示信息更好看一下
3 找到org.apache.dubbo.admin.DubboAdminApplication,运行main方法
访问项目
image.pngDubbo 的终端操作方法
进入终端
通过telnet对本地发布的dubbo服务进行调试和管理
打开命令行,执行命令telnet localhost 20880
若telnet命令不可用,则勾选启用关闭windows功能的telnet客户端选项即可
image.png
基本命令
help
image.pngls
image.pngcount
前提是dubbo协议的服务
image.png
网友评论