运维开发网

dubbo学习笔记

运维开发网 https://www.qedev.com 2021-04-29 09:45 出处:51CTO 作者:wx5dcb63a3604aa
Dubbo的启动方式依赖容器(Tomcat)使用main方法使用内置的main方法Dubbo控制台和监控台配置配置控制台 查看maven的版本信息执行源码的编译和打包操作最后编译结果为如下,表示成功了。 部署dubbo管控台1、在打包后的application.properties文件中修改对应配置信息 2、部署dubbo控制台通过localhost:7001 访问控制台 (默认账号和密码相同)配

Dubbo的启动方式

依赖容器(Tomcat)

使用main方法

使用内置的main方法

Dubbo控制台和监控台配置

配置控制台

 

dubbo学习笔记

查看maven的版本信息

dubbo学习笔记

执行源码的编译和打包操作

dubbo学习笔记

最后编译结果为如下,表示成功了。

dubbo学习笔记

 

部署dubbo管控台

1、在打包后的application.properties文件中修改对应配置信息

dubbo学习笔记

 

2、部署dubbo控制台

通过localhost:7001 访问控制台 (默认账号和密码相同)

配置监控台

1、找到这个目录下面对应文件

dubbo学习笔记

 

2、解压这个.gz文件,进行相应的配置

dubbo学习笔记

 

3、启动监控台(通过start.bat/start.sh启动)

dubbo学习笔记

 

4、解决操作的过程的数据不能够显示到监控台的问题?

在每一个服务的配置文件中添加一句配置

dubbo学习笔记

 

服务检查

dubbo学习笔记

 

表示启动的时候不做检查依赖,主要用于服务的循环依赖的实例 check设置为false,check默认为true

 

多协议支持

dubbo (默认) ,长连接协议 【操作过程中数据量比较小的传输】,不适用视频,大文件等传输操作。

hessian 短连接协议(传输数据量比较大情况,在项目开发中会针对不同流量来进行协议的设定)

1、引入依赖

2、在对应配置文件添加协议

webservice

rmi

http

thirft

一个服务一个协议

dubbo学习笔记

一个服务多个协议

dubbo学习笔记

多注册中心

dubbo学习笔记

多版本支持

dubbo学习笔记

消费端指定不同的版本号

dubbo学习笔记

消费端异步调用(只支持Dubbo协议)

### RpcContext.getContext().getFuture(); 获取异步对象

public static void main( String[] args ) throws InterruptedException, ExecutionException {
        ApplicationContext
                context = new ClassPathXmlApplicationContext("spring/application-consumer.xml");
        ApiDemoTest demoTest = (ApiDemoTest) context.getBean("apiDemoTest");
        String admin = demoTest.login("admin", "123");
        Future<String> future = RpcContext.getContext().getFuture();
        System.out.println("main:" + admin);
        System.out.println("结果:"+future.get()); // 阻塞等待结果
        System.out.println("=========");

    }

 

主机绑定问题(解决注册中心上面注册的是服务器名称问题)

ServiceConfig-> findConfigedHosts的源码

PC: Gerry-PC:8080/ => 192.168.3.22:8080

直连/服务只订阅/服务只注册(针对测试)[开发环境]

服务只订阅:

场景: 我们开发中服务在测试的时候不能直接注册到注册中心。

 

dubbo学习笔记

1、在服务端的的配置中

dubbo学习笔记

2、在消费端通过在dubbo:references 配置如下:

 

dubbo学习笔记

服务只注册:

场景: 注册中心的服务只对内部服务提供订阅,外部服务订阅不了。

dubbo学习笔记

服务端配置:

dubbo学习笔记

 

负载均衡(配置实现)

RandomLoadBalance -> random  随机负载均衡 (默认的)
RoundRobinLoadBalance ->  roundrobin   轮询负载均衡
LeastActiveLoadBalance -> leastactive  最小响应时间负载均衡
ConsistentHashLoadBalance -> consistenthash 一致性hash负载均衡

消费端配置负载均衡策略

dubbo学习笔记

 

服务调用超时问题

1、建议开发的服务都设置重试次数和超时时间。

 

集群容错

Failover cluster 失败的时候将自动切换并重试其他的服务器。通过 retries=2 来设置重试的次数

Failfast cluster 快速失败,只发起一次调用;写操作,比如新增记录,非幂等请求。

Failsafe cluster 失败安全,出现异常信息,直接忽略异常。主要用于日志操作出现异常情况。

Failback cluster 失败自动恢复,后台记录失败请求,定时重发这个信息(消息推送)

Forking cluster 并行调用多个服务,只要一个成功就返回,只应用在读数据的时候。

BroadCast cluster 广播调用所有服务提供者,逐个调用,只要有一个报错就返回异常

 

消费端做如下的配置即可:

dubbo学习笔记

 

Dubbo源码结构:

dubbo学习笔记

 

 

代码示例:

https://gitee.com/lm970585581/code_base/tree/master/dubbo%E4%BD%BF%E7%94%A8XML%E9%85%8D%E7%BD%AE%E4%BB%A3%E7%A0%81

 

https://gitee.com/lm970585581/code_base/tree/master/%E7%BA%AF%E6%B3%A8%E8%A7%A3Dubbo%E6%96%B9%E5%BC%8F

 

0

精彩评论

暂无评论...
验证码 换一张
取 消