• dubbo配置文件解读(1)


    详细的Dubbo配置也可以参考:https://blog.csdn.net/abcde474524573/article/details/53026110

    (1)<dubbo:service/>  用于服务提供方暴露服务位置

    例子:

            1.interface:  服务实现的接口名称

                 2.ref :  指向真正的服务实现类,已经在spring中定义了

                 3.version:  服务的版本

                 4.delay: 表示延迟注册时间,也就是什么时候暴露服务,-1表示spring容器初始化完成时暴露服务(所以通常为-1)

                 5.timeout:  远程服务调用超时时间(毫秒),默认为1000

                 6.connections: 对每个提供者的最大连接数,rmihttphessian等短连接协议表示限制连接数,dubbo等长连接协议表示建立的长连接个数

                 7.loadbalance : 负载均衡策略,也就是说同一个服务有多个提供者时,客户端如何选择提供者

                     1)random:  随机分配,并且可以给提供者设置权重

                          2)roundrobin: 轮询,也就是一个个轮流来调用.但是存在慢的提供者累积请求问题,比如:第二台机器很慢,但是没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上

                     3)leastactive:  最少活跃调用,也就是越慢的提供者获得更少请求

                     4)consistenthash: 一致性hash,也就是如果参数相同就会发送到同一台机器上, 如果某一台挂掉了,原本发往该提供者的请求会平摊到其他提供者,不会引起剧烈变动

                     缺省只对第一个参数hash,如果要修改,可以配置

           8.retries: 服务调用重试次数,不包括第一次,所以不需要重试设置为0,默认为2

                  9.cluster  集群方式

                     1)failover: 调用失败会重试其他服务器,所以通常用于读操作,但重试会带来更长延迟

                     2)failfast: 快速失败,只发起一次调用,如果失败就立即报错,通常用在新增更新操作

                     3)failback: 失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作

                     4)failsafe:  也就是出现异常也没事,比如写入审计日志等操作

                     5)broadcast:  广播所有服务提供者,挨个调用,只要有一台报错就报错,通常用来通知所有提供者更新缓存或日志等本地资源信息

                     6)forking: 并行调用多个服务器,只要一个成功就返回,通常用于实时性要求较高的读操作,但会浪费更多服务资源

                 10.executes: 服务提供者每个方法最大可并行执行请求数

    (2)<dubbo:reference/> 用于消费者引用服务的配置

    例子:

          1.id: 服务饮用beanId

               2.interface  服务接口名

               3.version  服务版本,需要与服务提供者的版本一致

               4.protocol  只调用指定协议的服务提供方

               5.url  点对点直连服务提供者地址,将绕过注册中心

    (3)<dubbo:protocol/>  服务提供者的协议配置.

               如果需要支持多种协议,可以声明多个<dubbo:rpotocol>标签,并在<dubbo:service>中protocol属性指定使用的协议

               1.id : 协议的beanId,可以在<dubbo:service protocol="">中引用此ID,如果ID不填,缺省和name属性值一样,重复则在name后加序号

               2.name:   协议名称

               3.port: 服务端口,dubbo协议默认为20800,http、hessian默认为80,rmi默认为1099. 如果配置为-1或没配,则会自动分配一个没被占用的端口

               4.server:   协议的服务器实现类型,dubbo协议有mina、netty,默认为netty,http有jetty、servlet,默认为servlet

               5.accesslog:  设置为true则会向logger中输出访问日志;也可以填写日志文件路径,直接把访问日志输出到指定文件

               6.threadpool : 线程池类型,可选fixed/cached

               7.threads:  服务线程池大小

               8.dispatcher:   协议的消息派发方式,用于指定线程模型,如dubbo协议的all,direct等

    (4)<dubbo:registry/>  注册中心配置,服务的提供者、消费者都有此配置

               如果有多个不同的注册中心,可以声明多个<dubbo:registry>标签,并在<dubbo:service>或<dubbo:reference>的registry属性指定使用的注册中心。

               1.address

                  注册中心服务器地址,如果地址没有端口缺省为9090,同一集群内的多个地址用逗号分隔,如ip:port,ip:port,不同集群的注册中心则配置多个<dubbo:registry>

     

    (5)<dubbo:provider/>  服务提供者缺省值配置。

                为<dubbo:service>和<dubbo:protocol>标签的缺省值设置

             也就是说provider中有些设置是各个service公用的,又与默认值不一样,就可以使用这个标签

             那么标签中属性也就和<dubbo:service>和<dubbo:protocol>完全一样

    如:

     

    也就是说所有service默认的timeout=180000

  • 相关阅读:
    Ajax的技术与原理探讨
    Ajax技术与原理
    AJAX原理
    vue中ref的一些常见作用
    表的连接查询
    mysql使其支持插入中文数据的办法
    16 散列表-基于除余留数法与线性探测法的实现
    win10上Tensorflow的安装教程
    哨兵/sentinel:在算法设计中的应用
    快速选择算法/Select 寻找第k大的数
  • 原文地址:https://www.cnblogs.com/laojiao/p/9777247.html
Copyright © 2020-2023  润新知