spring boot+dubbo+zookeeper
dubbo-admin的安装
dubbo-admin官网:https://github.com/apache/dubbo-admin
需要安装jdk、maven、Node.js和zookeeper,并启动zookeeper服务
我安装最新Node.js的19版本启动【dubbo-admin-ui】会报错,改成安装16版本即可:https://wwf.lanzouw.com/iyQwO0esl5ed
1、dubbo-admin官网下载的压缩包解压,修改【dubbo-admin-server】resources目录下【application.properties】的zookeeper地址
2、在【dubbo-admin-develop】目录下进入cmd,使用【mvn clean package】打包
3、在【dubbo-admin-distribution】的target目录下cmd,运行jar
4、在【dubbo-admin-ui】的target目录下cmd,运行jar
5、在浏览器使用出现的url即可进入Dubbo Admin的管理页面
dubbo与springboot整合
1、模块的pom.xml中引入dubbo(springboot2.X)
<dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> </dependency>
2、resource下的配置文件中配置相关信息
3、分清提供者和消费者,暴露服务使用dubbo下的@Service,注入提供者的服务使用@Reference
4、实际效果
配置文件暴露服务
<!-- 服务实现 --> <bean id="orderService" class="me.xiaomaju.service.impl.OrderServiceImpl"/> <!-- 暴露服务--> <dubbo:service interface="me.xiaomaju.service.OrderService" ref="orderService"/>
超时与重试
负载均衡
抽象类 AbstractLoadBalance 的4个实现类
Random LoadBalance: 随机选取提供者策略,有利于动态调整提供者权重。截面碰撞率高,调用次数越多,分布越均匀;
RoundRobin LoadBalance: 轮循选取提供者策略,平均分布,但是存在请求累积的问题;
LeastActive LoadBalance: 最少活跃调用策略,解决慢提供者接收更少的请求;
ConstantHash LoadBalance: 一致性 Hash 策略,使相同参数请求 总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其他提供者,避免引起提供者的剧烈变动;
缺省时为 Random 随机调用