文档章节

ZhaoWei-2020-01-19

SuSheePark
 SuSheePark
发布于 01/19 18:47
字数 1376
阅读 172
收藏 0

Dubbo

        Dubbo是一个分布式服务治理框架,提供高性能和透明化的RPC远程服务调用方案及

SOA架构治理方案。

 

远程通信

        提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及

请求-响应”模式的信息交换方式。

集群容错

        提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败

容错,地址路由,动态配置等集群支持。

自动发现

        基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使

服务提供方可以平滑增加或减少机器。

 

springboot整合dubbo

引入依赖

在服务提供者、消费者工程中的pom.xml文件中添加依赖。

配置Dubbo相关参数

启动类添加 @EnableDubbo 注解

服务提供方和服务消费方

实现服务提供者和消费者

 

服务治理和配置管理

服务治理

服务治理主要作用是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的,主要有以下几个功能:

应用级别的服务治理

在Dubbo2.6及更早版本中,所有的服务治理规则都只针对服务粒度,如果要把某条规则作用到应用粒度上,需要为应用下的所有服务配合相同的规则,变更,删除的时候也需要对应的操作,这样的操作很不友好,因此Dubbo2.7版本中增加了应用粒度的服务治理操作,对于条件路由(包括黑白名单),动态配置(包括权重,负载均衡)都可以做应用级别的配置:
condition
上图是条件路由的配置,可以按照应用名,服务名两个维度来填写,也可以按照这两个维度来查询。

标签路由

标签路由是Dubbo2.7引入的新功能,配置以应用作为维度,给不同的服务器打上不同名字的标签,配置如下图所示: tag 调用的时候,客户端可以通过setAttachment的方式,来设置不同的标签名称,比如本例中,setAttachment(tag1),客户端的选址范围就在如图所示的三台机器中,可以通过这种方式来实现流量隔离,灰度发布等功能。

条件路由

条件路由是Dubbo一直以来就有的功能,目前可以配置服务和应用两个维度,条件路由为yaml格式,具体的规则体以及各种适用场景,请参考这里

黑白名单

黑白名单是条件路由的一部分,规则存储和条件路由放在一起,为了方便配置所以单独拿出来,同样可以通过服务和应用两个维度,指定黑名单和白名单:
blackList

动态配置

动态配置是和路由规则平行的另一类服务治理治理功能,主要作用是在不重启服务的情况下,动态改变调用行为,从Dubbo2.7版本开始,支持服务和应用两个维度的配置,采用yaml格式,界面如下:
config 具体的规则体说明请参考这里

权重调节

权重调节是动态配置的子功能,主要作用是改变服务端的权重,更大的权重会有更大的几率被客户端选中作为服务提供者,从而达到流量分配的目的:
weight

负载均衡

负载均衡也是动态配置的子功能,主要作用是调整客户端的选址逻辑,目前可选的负载均衡策略有随机,轮训和最小活跃,关于各个策略的解释请参考这里

配置管理

配置管理也是配合Dubbo2.7新增的功能,在Dubbo2.7中,增加了全局和应用维度的配置,分别在全局和应用范围内生效,其中应用配置也可以指定该应用中的服务级别的配置,可以在控制台中查看,修改配置规则,默认展示全局维度的配置。

  • 全局配置: config
    全局配置里可以指定注册中心,元数据中心的地址,服务端和客户端的超时时间等,这些配置在全局内生效。除了配置写入,也可以用来查看。如果使用zookeeper作为注册中心和元数据中心,还可以看到配置文件所在位置的目录结构。
  • 应用, 服务配置
    appConfig
    应用级别的配置可以为应用或者应用内的服务指定配置,在服务维度上,需要区分提供者和消费者。dubbo.reference.{serviceName}表示作为该服务消费者的配置,dubbo.provider.{servcieName}表示作为该服务提供者的配置。其中注册中心和元数据中心的地址,只能在全局配置中指定,这也是Dubbo2.7中推荐的使用方式。

 

© 著作权归作者所有

上一篇: ZhaoWei-2020-01-20
下一篇: ZhaoWei-2020-01-18
SuSheePark
粉丝 0
博文 22
码字总数 37598
作品 0
私信 提问
加载中

评论(0)

Linux上构筑iPhone OS3.1.2开发环境之build

原文地址 http://blog.csdn.net/lmss82/archive/2010/02/08/5299949.aspx 昨天郁闷了一天,因为不管我如何编译,总是有错误产生。 没想到今天我清理掉所有文件,重新操作了一编,居然神奇般编...

鉴客
2011/11/23
1.3K
0
SpringBoot 系列教程之声明式事务 Transactional

200119-SpringBoot 系列教程之声明式事务 Transactional 当我们希望一组操作,要么都成功,要么都失败时,往往会考虑利用事务来实现这一点;之前介绍的 db 操作,主要在于单表的 CURD,本文将...

小灰灰Blog
01/20
1.3K
0
Linux上构筑iPhone OS3.1.2开发环境之解压firmware

文章出处:http://blog.csdn.net/lmss82/article/details/5296261 #第一步没有什么问题 $ ./toolchain.sh headers #第二步也顺利通过 $ ./toolchain.sh firmware #第三步也挺顺利 $ ./toolch......

鉴客
2011/11/23
726
0
Google Chrome v80.0.3987.87 正式版发布

谷歌浏览器Google Chrome稳定版迎来v80首个版本发布,详细版本号为v80.0.3987.87,上一个正式版v79.0.3945.130发布于1月17日,时隔19天Google又发布了新版Chrome浏览器,本次升级主要是更新了...

N软网
02/05
0
0
Linux上构筑iPhone OS3.1.2开发环境之编译HELLO WORLD

原文地址 http://blog.csdn.net/lmss82/archive/2010/02/08/5300230.aspx 环境搭建请看:http://www.oschina.net/question/54100_32615 终于到了编译范例的时候了,范例在APPS目录里,好兴奋...

鉴客
2011/11/23
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

storm是什么

storm是一种用于实时计算的分布式系统,一般用于流数据分析,处理速度比较快,不单独使用,一般与消息队列一起使用。 主要有spout,用于获取数据源 bolt,用于处理计算数据,类似于hdfs中的m...

七宝1
26分钟前
67
0
第二章 构建业务中台的基础----共享服务体系

1.ESB:企业服务总线。 2.SOA理念最核心的价值:松耦合的服务带来业务的复用,通过服务的编排助力业务的快速响应和创新。 3.服务不需要“业务稳定”,而需要不停的滋养,只有在滋养中才能从最...

zxx901221
37分钟前
41
0
Spring Boot 2.x基础教程:使用 ECharts 绘制各种华丽的数据图表

上一节我们介绍了如何在Spring Boot中使用模板引擎Thymeleaf开发Web应用的基础。接下来,我们介绍一下后端开发经常会遇到的一个场景:可视化图表。 通常,这类需求在客户端应用中不太会用到,...

程序猿DD
昨天
47
0
SpringBoot实战:SpringBoot之自定义配置(一)

SpringBoot会默认加载application.yml和application.properties文件,但是有时候我们会对一些配置进行分类管理,如把数据库等配置进行单独配置,那这时候要怎么办呢,SpringBoot作为现在最流...

枫叶_林
昨天
60
0
收好这份来自鹅厂技术大咖的“远程办公指南

收好这份来自鹅厂技术大咖的“远程办公指南”! 受新冠肺炎疫情的影响,2月伊始,「远程办公」成为所有人关心与讨论的热门话题之一。在现实驱动之下,企业如何协同与高效办公成为重点问题中的...

腾讯技术资讯
昨天
147
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部