Dubbo配置 -- 协议与注册中心

github测试Demo项目地址:https://github.com/HopeAndStart/spring-dubbp.git

一:概述

继上篇文章讲解如何进行服务发布与消费之后本文将讲解服务发布协议配置项<dubbo:protocol>与注册中心配置项<dubbo:registry>。声明一点就是Dubbo支持多种通信协议,同时也支持多种服务注册中心。所以本文仅仅是讲解这两个标签的配置,具体每种协议发布或者是注册中心使用后面有文章进行介绍

二:服务协议 dubbo:protocol

服务协议配置中最核心的当属name属性指定协议类型,当然配置关联的id属性、port属性以及性能调优的threadpool线程池、serialization序列化方式等也比较重要

2.1 重要基础配置

在这里插入图片描述

属性作用默认值描述
id指定id,供service、reference使用默认service、reference使用所有配置协议<dubbo:servicer>与<dubbo:reference>中都有protocol配置属性,分别代表服务发布通信协议与指定消费通信协议类型。其中属性值默认为所有<dubbo:protocol>配置通信协议,如果指定则可以在属性值中填入<dubbo:protocol>配置项id属性值,以","隔开
name指定协议名称必填项用以指定协议配置协议类型,比如dubbo代表Dubbo协议、http代表Http协议、rest代表Rest风格协议等
port发布端口dubbo默认20880、rmi默认1099、http和hessian默认80,-1则自动分配未占用端口Dubbo消费服务除了在注册中心进行消费外,reference还能通过url属性进行直连消费,这时候的port就是必须的在url中指定的
register是否发布trueservice中可以通过register指定是否发布服务,protocol中也可以指定该类型协议服务是否发布
accesslog访问日志输出可以配置boolean类型标识开启关闭,也可以配置日志文件路径,直接将访问日志输出到日志文件中
server协议的服务器端实现dubbo协议缺省为netty,http协议缺省为servlet例如在配置Rest协议的时候使用tomcat、jetty等
2.2 性能调优配置

在这里插入图片描述

属性作用默认值描述
threadpool指定线程池类型fixed可选类型有默认fixed加载时创建线程不会删除一直持有,以及cached空闲一分钟后删除线程,需要时再创建
threads线程池固定大小200了解线程池组成的同学应该知道这个配置的含义,不知道的自己去学线程池
queues线程池队列大小0核心线程占用完时会在线程池队列等待,官网建议不进行配置,直接不等待失败后重试其它服务机器
iothreadsIO线程池大小CPU + 1Dubbo有两个线程池,上面说的threadspool是一个,剩下的就是这个IO线程池。可以通过dispatcher分配请求处理
payload服务响应数据包大小8M不同协议有不同特点,这个属性可以限制不同场景服务下的数据传输容量
serialization协议序列化方式dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json后面会有章节讲协议序列化
dispatcher协议消息派发方式dubbo协议缺省为all具体分派方式如下无序列表所示
charset序列化编码UTF-8没有啥特殊要求吧,个人理解在国内而言
  • all :所有消息都派发到线程池,包括请求,响应,连接事件,断开事件,心跳等
  • direct: 所有消息都不派发到线程池,全部在 IO 线程上直接执行
  • message: 只有请求响应消息派发到线程池,其它连接断开事件,心跳等消息,直接在 IO 线程上执行
  • execution :只有请求消息派发到线程池,不含响应,响应和其它连接断开事件,心跳等消息,直接在 IO 线程上执行
  • connection :在 IO 线程上,将连接断开事件放入队列,有序逐个执行,其它消息派发到线程池
2.3 个人想法

协议这块的配置除了id、name、port常规配置外。比较常用的调优就俩方面,线程池相关的threadpoool、threads、iothreads、dispatcher以及协议序列化方式serialization。其余的配置个人理解基本不会太常规使用,可能我见识少,有这方面经验的朋友可以交流下

三:注册中心 dubbo:registry

Dubbo支持向多种以及多个注册中心发布服务,注册中心的配置就是用标签<dubbo:registry>进行配置

3.1 重要基础配置

在这里插入图片描述

属性作用默认值描述
id指定id,供service、reference使用默认service、reference向所有注册中心发布服务<dubbo:servicer>与<dubbo:reference>中都有registry配置属性,分别代表服务发布注册中心与指定消费注册中心地址。其中属性值默认为所有<dubbo:registry>配置注册中心,如果指定则可以在属性值中填入<dubbo:registry>配置项id属性值,以","隔开
address注册中心地址如果一个配置项代表多个注册中心,需要使用","进行隔开,注册中心协议类型可以在属性中配置,当然也可以通过protocol属性配置
protocol注册中心通信协议dubbozookeeper注册中心的zookeeper、Redis的redis等等
port注册中心缺省端口9090当配置address没有携带注册中心端口时使用本端口
username注册中心用户名如果注册中心不需要验证则可以不写
password注册中心密码注册中心不需要验证不写
file注册中心地址以及服务提供者列表缓存文件,当服务重启时将根据此文件重启。不同注册中心不能使用同一文件
check注册中心存在检查true当注册中心不存在时是否进行报错
register是否注册true设置为false将只订阅不注册
subscrible是否订阅true设置为false将只注册不订阅
group注册中心分组向同一注册中心可以分组注册,不同分组之间的服务不能相互调用也不会相互影响
  • 最核心的配置为address,其中的注册中心协议protocol可以设置,注册中心端口port可以设置
  • id属性供给service与reference消费
  • group可以对注册中心分组
  • 注册中心验证采用username与password两个属性配置
  • 当然如果想要限定只注册不订阅通过subscrible,只订阅不注册可以同属register
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值