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经由注册中心传递给消费方。
建议由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的超时设置。

时间: 2024-12-20 17:46:42

dubbo知识点理解的相关文章

dubbo知识点理解2

作者:网易云链接:https://www.zhihu.com/question/45413135/answer/226794957来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 简而言之,Dubbo确实类似于Spring Cloud的一个子集,Dubbo功能和文档完善,在国内有很多的成熟用户,然而鉴于Dubbo的社区现状(曾经长期停止维护,2017年7月31日团队又宣布重点维护),使用起来还是有一定的门槛. Dubbo具有调度.发现.监控.治理等功能,支持相当丰富

谈谈我对dubbo的理解(每个阶段理解不同,会持续跟新)

2019-07-26 初学阶段 对dubbo有一个基础的认识,是一个提供了远程调用的框架. 远程调用是以接口作为契约的,接口规定了方法签名,(尽量按值传递,不要传行为作为参数). 利用了zookeeper作为服务注册发现中心,这里不谈zookeeper的优缺点,假设是完美的.(enreka) 消费端根据接口名从zookeeper那获取到所有提供该服务的地址列表,根据设定的LB策略请求,(ribbon) 请求还会设置并行数和超时时间以达到服务降级,防止服务雪崩的目的,(最好还是能做到方法级别的隔离

hibernate知识点理解

1.只有业务逻辑层出现的问题? 1.切换数据库麻烦 2.sql编写起来麻烦 3.我们的程序员不需要关注数据库,只希望关心业务本身 2.hibernate的好处 1.程序员只关心业务逻辑,使角色更加清楚 2.分层更清楚 3.通用修改更强,适合数据库平台的切换 4.对象化,数据库关系变成java对象关系,更加方便操作 5.性能保证,hiernate可能按照不同的数据库操作,但是会最优sql语句 6.增加程序的鲁棒性. 3.hibernate开放的三种方式 1.有Domain object >> m

Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbase调用MapReduce函数使用理解 第三部分:Hbase调用Java API使用理解 第四部分:Hbase Shell操作 第五部分:Hbase建表.读写操作方式性能优化总结 第一部分:Hbase框架原理理解 概述 HBase是一个构建在HDFS上的分布式列存储系统:HBase是基于Google

python基础知识点理解(二)

闭包: 闭包有两个关键点:自由变量和函数 一个闭包就是我们调用了函数A,函数A返回了一个函数应用了A传入的参数B,函数B就是一个闭包,它使用的A传入的参数就是自由变量, 这就意味着在函数A的生命周期结束以后,他传入的参数仍然能够被B使用,因为他被闭包函数调用了,所以就不会被回收. EG: 1 def func(name): 2 def inner_func(age): 3 print 'name:', name, 'age:', age 4 return inner_func 5 6 bb =

Dubbo知识点

1.Dubbo是什么? 40道题目 参考:https://blog.csdn.net/moakun/article/details/82919804 dubbo系列讲解  https://www.cnblogs.com/wangzhuxing/category/1308133.html dubbo官方文档  http://dubbo.apache.org/zh-cn/docs/dev/impls/protocol.html Dubbo是阿里巴巴开源的一个分布式.高性能.透明化的 RPC 服务框架

打造仿猫眼项目 以Dubbo为核心解锁微服务 高清无密 百度网盘

应用Dubbo框架打造仿猫眼项目 理解微服务核心思想 Dubbo作为主流的微服务框架之一,为开发人员带来非常多的便利.本门课程结合"仿猫眼"项目,分别针对Dubbo中的重要特性.微服务中核心内容以及面试中的常见问题,进行归纳整理,强化讲解,为你提供从零到面试的一条龙服务. 第1章 微服务入门 本章中将概要介绍微服务与传统应用之间的差异与实现优势,以便于帮助同学们更加清晰微服务在项目开发中的定位. 1-1 课程导学 1-2 传统应用带来的问题 1-3 微服务概述 第2章 演示环境构建 本

Dubbo使用详解及环境搭建

一:Dubbo简介 Dubbo是阿里巴巴提供的开源的SOA(面向服务的体系结构)服务化治理的技术框架,据说只是一部分开源的,但一些基本的需求已经可以满足的,而且可扩展性.是一种能取代PHRPC的服务调用方式,优点在于配置简单,二次开发性强,同时DUBBO对代码的侵入性低. 二:Dubbo整体理解 现在DUBBO的配置文件主要分为两部门dubboConsumer.xml (可以理解为客户端) ,dubboProvider.xml(服务端)用通俗的话来讲dubboConsumer是调用方,dubbo

深入理解Java注解类型(@Annotation)

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 深入理解Java注解类型(@Annotation) - zejian的博客 - 博客频道 - CSDN.NET zejian的博客 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Python,终于等到你!    &am