Dubbo小记

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Dubbo小记脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

 

Dubbo小记

 

 apache Dubbo |ˈdʌbəʊ| 提供了六大核心能力:面向接口代理RPC调用、负载均衡、服务发现、搞扩展、流量调度、服务治理

Dubbo作为sPRingcloud的二进制方案来发挥Dubbo的性能优势

dubbo有是个角色:注册中心,服务的提供者,服务的消费者,监控中心,其中监控中心可以省略

一.Dubbo基础搭建环境: 1. 搭建注册中心,启动nacos, 执行 startup.bat -m standalone 2. 搭建监控中心,启动 dubbo-admin 资料提供 dubbo-admin-server-0.3.0-SNAPSHOT.jar 执行 java -jar dubbo-admin-server-0.3.0-SNAPSHOT.jar 启动。 监控中心会去注册中心获取使用服务信息,通过UI界面展示。 监控中心 需要 知道 注册中心的地址。 例如:java -jar dubbo-admin-server-0.3.0-SNAPSHOT.jar --server.port=8090 --server.port覆盖jar中的application.yML文件中的参数配置 --admin.registry.address=nacos://127.0.0.1:8848 --admin.config-center=nacos://127.0.0.1:8848 --admin.metadata-report.address=nacos://127.0.0.1:8848 3. 基于提供的 user-server 模块,改造出两个模块 user-consumer、user-provider `user-provider` (1)导入dubbo相关的坐标 <!--dubbo的起步依赖--> <dePEndency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.8</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-registry-nacos</artifactId> <version>2.7.8</version> </dependency> (2)yml配置文件 配置dubbo协议、端口20880、扫描dubbo注解包、nacos注册中心 dubbo: protocol: name: dubbo port: 20880 #注册中心的地址 registry: address: nacos://127.0.0.1:8848 #dubbo注解的包扫描 scan: base-packages: cn.ITcast.user.service (3)修改UserServiceimpl类上的注解@DubboService `user-consumer` (1)导入dubbo相关的坐标(同上) (2)yml配置文件,只需要配置dubbo的注册中心,除非将来自己被其它模块调用 dubbo: registry: address: nacos://127.0.0.1:8848

入门案例:提供者的坐标可以优化,提供者根本不需要spring-boot-start-web 可以使用 spring-boot-start 替换 spring-boot-start-web 同时 server.port 也可以不需要。 dubbo内置netty服务器,一直运行 序列化:java实体类需要实现序列化接口,因为在dubbo远程调用中,会经过网络传输。

 

二.dubbo高级特性 1. 超时重试 消费者 调用 提供者。 在消费者端配置 dubbo: registry: address: nacos://127.0.0.1:8848 consumer: check: false #关闭了启动检查 retries: 0 timeout: 1000 2. 多版本 在暴露服务时,可以指定服务的版本 @DubboService(version = "1.0") 在服务发现,也要指定对应的版本 @DubboReference(version = "1.0") 作用:灰度测试,平滑升级 3. 负载均衡 dubbo框架号称服务治理,可以对每个服务单独管理。 可以通过dubbo-admin查看该服务有哪些提供者、哪些消费者。 某个服务有多个提供者,消费者在调用的时候,怎么选择??? dubbo决策。 基于权重随机 random @DubboReference(version = "1.0", loadbalance = "random") 基于权重轮询 roundrobin 最小活跃次数 leastactive 一致性HASH consistenthash @DubboReference(version = "1.0", loadbalance = "consistenthash") 4. 启动检查 check: false #关闭了启动检查 在启动消费者的时候,不报错了。

 

三、spring cloud 整合 dubbo 1. 服务消费者 order 1. 导入坐标 <!--spring cloud alibaba--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.5.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> 2. 修改配置文件 server: port: 8082

spring: datasource: url: jdbc:MySQL://localhost:3306/dubbo-demo?useSSL=false username: root password: root driver-class-name: com.mySQL.jdbc.Driver cloud: nacos: discovery: server-addr: localhost:8848 application: name: order-service

#dubbo消费者 dubbo: registry: address: spring-cloud://localhost consumer: check: false retries: 0 3. 注解 @DubboReference(version = "1.0", loadbalance = "random") private UserService userService; 2. 服务提供者 user

注意:spring cloud 和 dubbo整合后, dubbo-admin失效了。应该去nacos看

脚本宝典总结

以上是脚本宝典为你收集整理的Dubbo小记全部内容,希望文章能够帮你解决Dubbo小记所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。