dubbo+zookeeper简单实例

https://www.imooc.com/article/21638
https://github.com/apache/incubator-dubbo/tree/master/dubbo-demo

http://dubbo.apache.org/books/dubbo-user-book/configuration/xml.html
http://dubbo.apache.org/books/dubbo-dev-book/

1、默认使用的是什么通信框架,还有别的选择吗?

2、服务调用是阻塞的吗?

3、一般使用什么注册中心?还有别的选择吗?

4、默认使用什么序列化框架,你知道的还有哪些?

5、服务提供者能实现失效踢出是什么原理?

6、服务上线怎么不影响旧版本?

7、如何解决服务调用链过长的问题?

8、说说核心的配置有哪些?

9、dubbo推荐用什么协议?

10、同一个服务多个注册的情况下可以直连某一个服务吗?

11、画一画服务注册与发现的流程图

12、集群容错怎么做?

13、在使用过程中都遇到了些什么问题?

14、dubbo和dubbox之间的区别?

15、你还了解别的分布式框架吗?

分布式服务框架

1、说一下dubbo的实现过程注册中心挂了可以继续通信吗??

2、zk原理知道吗zk都可以干什么Paxos算法知道吗?说一下原理和实现??

3、dubbo支持哪些序列化协议?hessian 说一下hessian的数据结构PB知道吗为啥PB效率是最高的啊??

4、知道netty吗'netty可以干嘛呀NIO,BIO,AIO 都是什么啊有什么区别啊?

5、dubbo复制均衡策略和高可用策略都有哪些啊动态代理策略呢?

6、为什么要进行系统拆分啊拆分不用dubbo可以吗'dubbo和thrift什么区别啊?

Dubbo得通讯协议
第一、dubbo
默许得,单纯长衔接、NIO异步通讯。合适几据量小,伴发大得场景,消耗者几量大于参考者得处境。
传输个大文件、视频、哪些得而且为不能用了。
很多普遍得平常类型用这种就够了。
第二、RMI
无疑的JDK规范得长途调用协议,闭塞式短衔接&JDK规范得序列化方法。
输出输入得几据包巨细同化,消耗者或者参考者几量不好少量,为相对恰当得,能够传文件。
各自在类型中没用过,不大关心。
第三、hessian
Hessian选取HTTP通讯,因Servlet对外参考办事,在Dubbo中运用Jetty干办事器。非常合适传输页面、文件。
第四、Http
这种没什么棒陈诉得,关键为合适还有给APP、网页得Ajax参考办事。我在类型中到没这么用过,平常那种处境均为干脆用SpringMVC打成war包,经过Keepalived+Nginx+Tomcat采用高可用或者负载都衡。
第五、WebService
老牌得几据交流措施了,SOAP协议,CXF框架完成,2010年此后我在类型中就没用过了。
第六、thrift
Facebook得RPC框架,Dubbo加了少许头消息,不鼓励null值。
第七、缓存
Dubbo鼓励缓存几据库Memcached、Redis。
通讯协议比较
注册核心
保举为Zookeeper,另外例如下:
第一、Multicast,不该核心,仅仅节点得播送地点为同样得,均能够彼此发觉,这种同样便是小领域使用,和开辟得时候候用。
程序为:
A)参考者发动时候播送地点。
B)消耗者发动时候播送定阅拜托。
C)参考者收获定阅拜托为,单播或组播本人得地点给消耗者。
D)消耗者收获参考者地点,采用RPC调用。
第二、Redis,关键为用到了Redis得公布/定阅形式(这种我在类型好用于信息行列,可参瞧我以前得内容《基于Redis得信息行列之公布定阅形式》,还有关联参阅:《Redis再次:其次:9单机版装置》、《基于Redis得信息行列之消费消耗者形式(来日诰日写公布/定阅形式)》)。应该求每个办事器功夫一定保留一样,如果须要尽心跳监察脏几据,对办事器而且为有必定负担得。
程序为:
A)参考者发动时候提交本人得地点,发生注册事情。
B)消耗者发动时候定阅注册&排除注册事情,提交本人得地点。
C)消耗者收获注册或者排除注册事情后,到获得参考者地点列表。
D)监控核心发动时候定阅注册&排除注册、定阅&排除定阅事情。
E)监控核心收获注册&排除注册事情后,到获得参考者地点列表。
F)监控核心收获定阅&排除定阅事情后,到获得消耗者地点列表。
第三、Simple注册、监控核心,无疑的Dubbo本人完成单个办事。
第四、Zookeeper,程序例如下:
A)参考者发动时候写进本人得URL。
B)消耗者发动时候定阅参考者URL列表,并写进本人得URL。
C)监控核心定阅全部消耗者参考者URL目次。
参考者怎么完成无效踢出
由Zookeeper注册核心是例,有单个heartbeat_monitor心脏跳动监察线程,查验参考者可否生存,假如反省不到心脏跳动,就把参考者从参考者列表中移除,反之参加。
在不危害旧版此得处境下晋级新版此办事
运用Dubbo就相对便利,如果在设置参考者或者办事者得时候候能够规定版此号。
办事调用链太长
而且为必须聚集营业来梳理模块,只要某个营业操纵得调用链太长得时候候,还得思考把这一块整合一下。
Dubbo中心设置
dubbo:applicationname使用名
dubbo:registry注册核心
dubbo:protocol运用协媾和端口
dubbo:reference定阅得办事接口check发动时候反省办事可否可用version多版此
dubbo:service参考者cluster容错机理retries铩羽重试多次loadbalance负载算法
可否能够直连参考者
能够,在dubbo:reference经过设置url干脆指引某个参考者,多地点用逗号分离。
办事注册和发觉得程序图
办事注册和发觉得程序图
集群容错
这种在我得《Dubbo消耗者参考者简易案例》中有描绘,摘抄例如下:
默许得failover,然后加之retries,象征消耗者调用参考者呈现变异时候,自行切换,默许试两次。
failfast,铩羽了就报变异,关键为应用非等幂性得写操纵。固然这种同样等价于failover,retres=0。
failsafe,铩羽就铩羽了,同样不报变异,应用少许不首要得操纵,例如写个不首要得日记哪些得,错个第一、2条得不危害。
failback,铩羽了重发,例如推送。
forking,调用全部参考者,谁最早前往成果就用谁得,这种太耗能源了。
broadcast,调用全部参考者,单个报错就报错,这种关键为应用告知参考者革新缓存啊,此地能源之类得操纵。
关联参阅:Dubbo办理把握台装置、ZooKeeper单机版装置设置--集群版背面然后发、ZooKeeper集群装置设置运用
1 面试题:Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
可以的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用

注册中心对等集群,任意一台宕掉后,会自动切换到另一台
注册中心全部宕掉,服务提供者和消费者仍可以通过本地缓存通讯
服务提供者无状态,任一台 宕机后,不影响使用
服务提供者全部宕机,服务消费者会无法使用,并无限次重连等待服务者恢复
2 dubbo连接注册中心和直连的区别
在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,
点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,

服务注册中心,动态的注册和发现服务,使服务的位置透明,并通过在消费方获取服务提供方地址列表,实现软负载均衡和Failover, 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外,注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者
注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表
注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

3、Dubbo在安全机制方面是如何解决的
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。

你可能感兴趣的:(dubbo+zookeeper简单实例)