dubbo知识点理解
1.分布式服务架构关键在于:用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
注册中心是关键,提供业务复用和整合。
2、dubbo在消费方,获取服务列表后提供软负载均衡。dubbo在消费方提供软负载均衡。
消费方在调用的时候,dubbo提供了软负载均衡。
3.dubbo监控中心:监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示.
服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销.
4.怎么证明消费者和提供者只在启动的时候与zookeeper交互一次,且只一次?
答:注册中心宕机了并不影响消费者和提供者的运行,即使zookeeper服务器宕机了,消费者和提供者依然正常运行。
因为消费者在启动的时候从zookeeper获取了服务提供者列表。
注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表。
注册中心宕掉后,但不能注册新服务。不能再注册新服务了,旧的服务不影响运行。
5.注册中心也不能单点部署,要集群部署。防止单台宕机。叫注册中心对等集群。
5.dubbo配置时,注册中心是可选的,消费者可以和服务者直连。直接调用。
6.服务提供者的bean的方法,都是无状态的,所以即使一台service宕机后,不影响状态。
7.zookeeper有消息推送通知功能,当动态增加服务时候,消费者可以动态被通知,就可以调用。
服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者。
8.注意:服务提供者通过dubbo向zookeeper暴露服务时,向外面暴露的bean,必须首先自己bean依赖注入已经完毕,因为dubbo service标签有个必填的ref属性,指向本地ioc种
已经存在的bean。已经bean注入到ioc容器里了。
而且这时候最好手动注入,如下面方式:
<bean id=“xxxService” class=“com.xxx.XxxServiceImpl”/> <!-- 和本地服务一样实现远程服务 -->
<dubbo:service interface=“com.xxx.XxxService” ref=“xxxService” /> <!-- 增加暴露远程服务配置 -->
9.服务提供者是通过dubbo暴露服务的,通过dubbo向zookeeper。zookeeper只起到中介作用,会传输很多东西,包括服务提供者的ip地址,bean描述,方法描述等。
10.dubbo service标签,向zookeeper暴露服务。
11.服务消费方,注意,是与服务提供者沟通的,商量好消费方所写的,dubbo:reference标签,其中的id名字就是bean名字,提供者的bean名字,interface依旧是类全名。
<dubbo:reference id=“xxxService” interface=“com.xxx.XxxService” /> <!-- 增加引用远程服务配置 -->
dubbo service标签有interface属性,其值是整个接口名,类路径全名。ref属性,指向ioc容器中已经存在的bean。
<dubbo:service interface=“com.xxx.XxxService” ref=“xxxService” /> <!-- 增加暴露远程服务配置 -->
12.dubbo是没有单独配置文件的,dubbo的配置全在spring的配置文件里。不论是提供方还是消费方,dubbo都是没有配置文件的,都是在spring里。
dubbo是没有单独的配置文件的。dubbo是没有配置文件的。不论是提供方还是消费方,dubbo都是没有配置文件的,都是在spring里。
13.dubbo的配置,主要以下几条:
1)<dubbo:application 没多大意义,只是用来与消费方匹配,消费者必须不能是这个名字,消费者的application名字不能喝提供者一样。
2)<dubbo:registry address
3)<dubbo:protocol
4)<dubbo:service
就四个,就四个配置标签。
14.消费者在spring配置dubbo时候,只需要配置三个标签。
1)<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
<dubbo:application name="consumer-of-helloworld-app" />
2)<dubbo:registry
3)<dubbo:reference
只需要三个标签,比提供者配置少了dubbo protocol标签的配置。
15.再次理解服务提供者,服务提供者是对外提供直接调用的,zookeeper不对外提供调用,而是由真正的服务提供提供服务。所以服务提供者必须向外暴露协议和端口。
就如dubbo protocol标签,这个标签的作用就是这个。如下:暴露20880端口,通过dubbo调用。
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
16.<dubbo:protocol/> 协议配置问题,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
服务方设置的dubbo protocol,消费方要调用的话,消费方就得被动接受提供方协议。
消费方被动接受。
消费方被动接受服务方提供和设置的协议。
16.选择合适的dubbo调用协议:
Dubbo协议 Stable 采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用) 在大文件传输时,单一连接会成为瓶颈
可用于生产环境 Alibaba
Rmi协议 Stable 可与原生RMI互操作,基于TCP协议 偶尔会连接失败,需重建Stub 可用于生产环境 Alibaba
Hessian协议 Stable 可与原生Hessian互操作,基于HTTP协议 需hessian.jar支持,http短连接的开销大 可用于生产环境
20.<dubbo:method/> 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。
21.其中,服务提供方配置,通过URL经由注册中心传递给消费方。
建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置。
dubbo知识点理解的更多相关文章
- dubbo知识点理解2
作者:网易云链接:https://www.zhihu.com/question/45413135/answer/226794957来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- RPC 框架 Dubbo 从理解到使用(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:RPC 框架 Dubbo 从理解到使用(一) 本篇文章讲解 Dubbo 支持的注册中心.Dubbo 负载均衡策略和 Dubbo 控制台的安装. 注册中心 ...
- 对于Dubbo的理解
最近才开始看关于Dubbo,曾经居然把Dubbo跟ActiveMQ联系到了一起,很显然 ,是没有深入理解Dubbo的本质. 其实Dubbo是项目与项目(或者是系统与系统)之间通信用的.在Dubbo没出 ...
- RPC 框架 Dubbo 从理解到使用(一)
技术架构演变 单一应用架构 通俗地讲,"单体应用(monolith application)"就是将应用程序的所有功能都打包成一个独立的单元.当网站流量很小时,只需一个应用,将所有 ...
- hibernate知识点理解
1.只有业务逻辑层出现的问题? 1.切换数据库麻烦 2.sql编写起来麻烦 3.我们的程序员不需要关注数据库,只希望关心业务本身 2.hibernate的好处 1.程序员只关心业务逻辑,使角色更加清楚 ...
- odoo订餐系统之订单相关知识点理解
1.对重载函数name_get的理解 第一,此函数位于Model基类中,返回值是一个list列表,列表中的每个值是如(key,value)形式的键值对,此处为(id,name). 第二,在自己的Mod ...
- Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结
转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbas ...
- Dubbo简单理解
Dubbo 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,Dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有Dubbo这样 ...
- dubbo学习(十一)dubbo知识点总结
一.基础概念 Dubbo是个啥? 定义:Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式远程调用服务框架,现已成为 Apache 基金会孵化项目. 核心功能:远程服务调用. 为什么要 ...
随机推荐
- VS调试ASP.NET浏览器会不断的发出POLL请求
Poll管道不断发送请求问题! Visual Studio 2013的一个问题Visual Studio 2013中在IE浏览器浏览localhost网站时候,发现会不断有下面链接的请求,这个是怎么回 ...
- Tomcat学习之ClassLoader
Tomcat学习之ClassLoader 2012-09-04 22:19 8993人阅读 评论(4) 收藏 举报 分类: WEB服务器(13) 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- 0x3A 博弈论之SG函数
博弈即玄学啊 (除了nim和二分图博弈什么都不会 算是学了下SG函数吧 这个东西是针对有向图游戏的,相当于把一个局面看作一个点,到达下个局面相当于建一条边 必胜态SG值为0 那么对于一个点,他的SG值 ...
- 【POJ 1741】 Tree
[题目链接] http://poj.org/problem?id=1741 [算法] 点分治 要求距离不超过k的点对个数,不妨将路径分成两类 : 1. 经过根节点 2. 不经过根节点 考虑第1类路径, ...
- MySQL8.0修改临时密码
解决MySQL8.0报错:Unknown system variable 'validate_password_policy' 一.问题描述 1.在安装MySQL8.0时,修改临时密码,因密码过于简单 ...
- 7. Reverse Integer[E]整数反转
题目 Given a 32-bit signed integer, reverse digits of an integer. Example1: x = 123, return 321 Exampl ...
- 比较不错的spring学习博客
http://blog.csdn.net/tangl_99/article/details/1176141
- iframe刷新以及自适应高度
A页面中的iframe链接到B页面在B页面调用这个可以刷新父页面的iframe self.location.reload(); <iframe src="admin-list.htm ...
- USACO 保护花朵 Protecting the Flowers, 2007 Jan
Description 约翰留下了 N 只奶牛呆在家里,自顾自地去干活了,这是非常失策的.他还在的时候,奶牛像 往常一样悠闲地在牧场里吃草.可是当他回来的时候,他看到了一幕惨剧:他的奶牛跑进了他的花园 ...
- C++中关于文本内容的实用操作集合(新)(添加一些关于文件流的介绍)
首先先给大家一个链接:http://baike.baidu.com/view/1679747.htm 主要是关于ios的使用,头文件要include<ios>,然后就可以调用下面的一些操作 ...