dubbo-admin
1.dubbo-admin管理平台,是图形化的管理页面
2.从注册中心中获取所有的提供者/消费者进行配置管理
3.路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡等管理功能
dubbo-admin是一个前后端分离的项目,前端使用vue,后端使用springboot
spring-admin的下载,dubbo-admin
我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk,maven,nodejs node.js
dubbo-admin的使用
1.下载dubbo-admin安装包
2.将安装包解压到自定义文件夹
3.解压后我们进入…\dubbo-admin-develop\dubbo-admin-server\src\main\resources目录,找到 application.properties 配置文件 进行配置修改,修改注册中心zookeeper的地址
admin.registry.address=zookeeper://192.168.149.135:2181 //注册中心 admin.config-center=zookeeper://192.168.149.135:2181 //配置中心 admin.metadata-report.address=zookeeper://192.168.149.135:2181 //元数据中心
4.打包项目,
在 dubbo-admin-develop 目录执行打包命令
//shift+鼠标右键,选择用powershell窗口打开
mvn clean package
5.切换到目录
dubbo-Admin-develop\dubbo-admin-distribution\target
执行下面的命令启动 dubbo-admin,dubbo-admin后台由SpringBoot构建。
powershellc窗口打开
java -jar .\dubbo-admin-0.1.jar
dubbo-admin-ui 目录下执行命令
npm run dev
7.访问
浏览器输入。用户名密码都是root
http://localhost:8081/
在启动项目的时候,需要确保注册中心zookeeper在后台运行
序列化
在两台机器上传输数据、java对象,会使用到序列化
序列化:以数据流的形式传输数据对象,生产者序列化,消费者反序列化,两者都必须依赖公共模块class user的maven坐标。实现序列化,只需在公共模块实体类implements Serializable
地址缓存
注册中心挂了,注册过的服务可以访问,新的服务或者更改了注册信息的服务不能被访问
超时与重试
服务消费者在调用提供者的时候,调用失败,发生了阻塞、等待的情形,服务消费者会一直等待,如果大量的请求失败,会导致线程堆积,造成雪崩,所以dubbo利用超时机制,规定时间内未连接上服务,则自动断开
设置超时时间,可以设置在服务方的@Service(timeout=3000)中,也可以设置在消费者的@Reference中(timeout=3000),根据服务方调用的时长设置在服务方最好,默认1000毫秒
重试:解决网络抖动,网络突然断开,重新连接@Service(retries=3)中,也可以设置在消费者的@Reference中(retries=3),默认重试是两次
多版本
灰度发布:当出现新功能的时候,会让一部分用户先使用新功能,用户反馈没问题时,再让所有的用户迁移到新功能
在dubbo中使用version属性来设置和调用一个接口的不同版本,服务者中定义版本,消费者中选择版本
负载均衡
在消费端添加@Reference(loadbalance="负载策略")
服务降级
当服务器资源不够用,可能引发雪崩时,关停不重要的服务
服务降级方式:
mock=force:return null
表示消费方对该服务的方法调用直接返回null值,不在发起远程调用
mock=fail:return null
表示消费方对该服务的方法调用失败,再返回null值
写在消费者端