概述
dubbo:protocol标签用于配置服务提供者协议,对应配置类org.apache.dubbo.config.ProtocolConfig。如果需要支持多协议,可以声明多个<dubbo:protocol>标签,并在<dubbo:service>中通过 protocol属性指定使用的协议。截至到2.7.7版本,dubbo:protocol标签一共有24个属性可以进行配置。
属性详情
id
协议bean的id,可以在<dubbo:service protocol="">中引用此ID,如果ID不填,缺省和name属性值一样,重复则在name后加序号。string类型。
name
协议名称,string类型,dubbo:protocol标签的必填属性(后续的属性说明中,没有专门指明是必填属性的,均为可选属性),协议名字属于对应URL中的一部分。缺省值为dubbo。
port
服务端口,int类型,服务端口是对应URL中的一部分。dubbo协议缺省端口为20880,rmi协议缺省端口为1099,http和hessian协议缺省端口为80;如果没有配置port,则自动采用默认端口,如果配置为-1,则会分配一个没有被占用的端口。Dubbo 2.4.0+,分配的端口在协议缺省端口的基础上增长,确保端口段可控。
host
服务主机名,多网卡选择或指定VIP及域名时使用,为空则自动查找本机IP。官方建议不要配置,让Dubbo自动获取本机IP。string类型,缺省值为Dubbo自动查找到的本机IP。host直接作为对应URL中的一部分。
threadpool
线程池类型,string类型,取值范围fixed和cached,缺省值为fixed。对应URL中的参数是threadpool。是Dubbo性能调优的重要属性之一。
threads
服务线程池大小(固定大小),int类型,缺省值为200,性能调优类属性,对应URL中的参数是threads。
iothreads
io线程池大小(固定大小),int类型,缺省值为cpu个数+1,性能调优类属性,对应URL中的参数是iothreads(官方介绍说是threads,待确认)。
accepts
服务提供方最大可接受连接数,int类型,性能调优类属性,缺省值为0,对应URL中的参数为accepts。
payload
请求及响应数据包大小限制,单位字节,int类型,性能调优类属性,缺省值为8388608(=8M),对应URL中的参数为payload。
codec
协议编码方式,string类型,性能调优类属性,缺省值为dubbo,对应URL中的参数为codec。
serialization
协议序列化方式,当协议支持多种序列化方式时使用,比如:dubbo协议的dubbo,hessian2,java,compactedjava,以及http协议的json等。string类型,性能调优类属性,dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json,对应URL中的参数为serialization。
accesslog
设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件,string/boolean类型,服务治理类属性,对应URL中的参数为accesslog。
path
协议编码方式,string类型,服务发现类属性,如果配置,path对应URL中的一部分。
transporter
协议的服务端和客户端实现类型,比如:dubbo协议的mina,netty等,transporter可以分拆为server和client分别配置。string类型,性能调优类属性,dubbo协议缺省为netty,对应URL中的参数为transporter。
server
协议的服务器端实现类型,比如:dubbo协议的mina,netty等,http协议的jetty,servlet等,string类型,性能调优类属性,dubbo协议缺省为netty,http协议缺省为servlet,对应URL中的参数为server。
client
协议的客户端实现类型,比如:dubbo协议的mina,netty等,string类型,性能调优类属性,dubbo协议缺省为netty,http协议缺省为servlet,对应URL中的参数为client。
dispatcher
协议的消息派发方式,用于指定线程模型,比如:dubbo协议的all, direct, message, execution, connection等。string类型,性能调优类属性,dubbo协议缺省为all,对应URL中的参数为dispatcher。
queues
线程池队列大小,当线程池满时,排队等待执行的队列大小,建议不要设置,当线程池满时应立即失败,重试其它服务提供机器,而不是排队,除非有特殊需求。int类型,性能调优类属性,缺省值为0,对应URL中的参数为queues。
charset
序列化编码,string类型,性能调优类属性,缺省值为UTF-8,对应URL中的参数为charset。
buffer
网络读写缓冲区大小,int类型,性能调优类属性,缺省值为8192,对应URL中的参数为buffer。
heartbeat
心跳间隔,对于长连接,当物理层断开时,比如拔网线,TCP的FIN消息来不及发送,对方收不到断开事件,此时需要心跳来帮助检查连接是否已断开。int类型,性能调优类属性,缺省值为0,对应URL中的参数为heartbeat。
telnet
所支持的telnet命令,多个命令用逗号分隔,string类型,服务治理类属性,对应URL中的参数为telnet。
register
该协议的服务是否注册到注册中心,boolean类型,服务治理类属性,缺省值为true,对应URL中的参数为register。
contextpath
上下文路径,string类型,服务治理类属性,缺省为空串,对应URL中的参数为contextpath。