一、负载均衡
- 前提:在有集群的条件下
1.内置策略
内置策略有Random(默认)、RoundRobin(常用)、LeastActive、ConsistentHash四个负载均衡策略。
- Random(默认):随机访问集群中的某个节点,访问概率和权重有关。
- RoundRobin(常用):轮询。访问概率和权重有关。可以设置权重。通常使用这种。
- LeastActive:活跃数相同的随机,不同的活跃数高的放到前面。
- ConsistentHash:相同的参数请求发到一个提供者。
2.设置内置策略
可以在配置文件(全局)也可以在注解上(局部,优先)
- 配置文件
dubbo:
application:
name: first-dubbo-consumer
registry:
address: zookeeper://192.168.89.140:2181
provider:
loadbalance: random # 配置当前应用中所有的Provider的默认负载均衡策略。如果注解定义其他负载均衡策略,局部优先。
consumer:
loadbalance: roundrobin # 配置当前应用中所有的Consumer的默认负载均衡策略。
# 幂等性操作,可以配置>0。在非幂等性操作,配置为0。
# 设计服务的时候,一般,会读写分离。
retries: 2 # 重试次数,默认为2。Provider因网络问题,无响应,消费端自动重新请求。
server:
port: 80
-
注解 @DubboService(loadbalance = "random") @DubboReference(loadbalance = "random")
注意:dubbo依赖2.7.7提供的注解,为了方便区别以前的dubbo包下的@Service@reference注解,2.7.7以下版本还是使用以前的注解。
二、常用注解属性
1.group分组
将服务人为进行分组,。Provider可以在不同的组中注册类似的服务。Consumer可以指定获取远程服务所在分组,获取需要的远程服务。通过分组属性,可以更清晰的管理服务。
@DubboService(group = "userGroup")
@DubboReference(group = "userGroup")
2.version版本
为服务定制版本。Provider可以为同一个服务发布多个版本的实现。Consumer可以根据具体情况,获取指定版本的服务代理对象。通过版本属性,可以让服务的应用更加细致。
@DubboService(group = "userGroup", version = "1.0.0")
@DubboReference(group = "userGroup", version = "1.0.0")
3.payload限制
在Dubbo中,默认限制请求和应答最大容量为8M(8388608)。当请求或应答数据容量超标时,会抛出异常。需要通过配置文件设置更大的限制
dubbo:
registry:
address: zookeeper://192.168.32.128:2181
application:
name: dubbo-first-consumer
provider:
payload: 83886080 # 设置请求和应答容量限制为80M
本文由
loneliness
原创发布于
阳光沙滩
,未经作者授权,禁止转载