
【Dubbo、ZK】
天青色的烟雨.
本博客只为加深自身知识体系,不为任何商业用途呦呦呦!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
zookeeper概念
为什么使用ZooKeeper 我们知道要写一个分布式应用是非常困难的,主要原因就是局部故障。一个消息通过网络在两个节点之间传递时,网络如果发生故障,发送方并不知道接收方是否接收到了这个消息。他可能在网络故障迁就收到了此消息,也可能没有收到,又或者可能接收方的进程死了。发送方了解情况的唯一方法就是再次连接发送方,并向他进行询问。这就是局部故障:根本不知道操作是否失败。因此,大部分分布...原创 2019-04-22 17:25:51 · 300 阅读 · 0 评论 -
Dubbo负载均衡、协议
转载:http://dubbo.apache.org/zh-cn/blog/dubbo-loadbalance.html 背景 Dubbo是一个分布式服务框架,能避免单点故障和支持服务的横向扩容。一个服务通常会部署多个实例。如何从多个服务 Provider 组成的集群中挑选出一个进行调用,就涉及到一个负载均衡的策略。 几个概念 在讨论负载均衡之前,我想先解释一下这3个概念。 负载均衡 ...转载 2019-04-25 17:47:24 · 475 阅读 · 0 评论 -
Dubbo介绍、Zookeeper注册中心实例
SOA服务治理 面向服务的架构(Service-OrientedArchitecture,SOA)自提出到被普遍认可和接受,再到目前应用普及和成熟已有近20年时间,在领域的应用经历了WebService接口、企业服务总线(ESB)、服务管控等不同发展阶段。目前云计算、流程银行等新概念又给了SOA更广泛的发展空间。国际权威机构Gartner认为,SOA是大型企业信息现代化的根本。 ...原创 2019-04-25 17:11:50 · 527 阅读 · 0 评论 -
dubbo配置及使用
dubbo配置 maven的jar如下: <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>${dubbo.version}...原创 2019-04-25 17:11:34 · 262 阅读 · 0 评论 -
zookeeper选举和ZAB协议
前言 为了高可用和数据安全起见,zk集群一般都是由几个节点构成(由n/2+1,投票机制决定,肯定是奇数个节点)。多节点证明它们之间肯定会有数据的通信,同时,为了能够使zk集群对外是透明的,一个整体对外提供服务,那么客户端访问zk服务器的数据肯定是要数据同步,也即数据一致性。 zk集群是Leader/Follower模式来保证数据同步的。整个集群同一时刻只能有一个L...转载 2019-04-23 22:48:32 · 1014 阅读 · 0 评论 -
zookeeper应用场景
1、数据发布与订阅(配置中心) 程序总是需要配置的,如果程序分散部署在多态机器上,要逐个改变配置就变得困难,现在把这些配置都放到zookeeper上去,保存在zookeeper的某个目录节点中,然后所有相关应用程序对这个目录点进行监听,一旦配置信息发生变化,每个应用程序就会收到zookeeper的通知,然后从zookeeper获取新的配置信息应用到系统中就好。 1、分布式环...转载 2019-04-23 21:26:51 · 232 阅读 · 0 评论 -
分布式锁
什么是分布式? 分布式的 CAP 理论告诉我们: 任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。 在许多的场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。很多时候我们需要保证一个方法在同一时间内只能被同一个线程执行。在单...转载 2019-04-23 17:00:58 · 221 阅读 · 0 评论 -
Curator客户端框架
一 简介 使用过原生API不得不说,有很多的问题,比如:不能递归创建和删除节点、Watcher只能使用一次、还有很多可以解决分布式应用问题的api(比如分布式锁,leader选举等),但由于ZooKeeper提供的原始API并不是很易用,在其基础上封装一些高级应用又是一件很复杂的事情。 这个时候,Curator出现了,Curator是Netflix公司开源的一个Z...原创 2019-04-23 15:40:05 · 1482 阅读 · 0 评论 -
Zookeeper API
Zookeeper类是线程安全的。 使用客户端来创建一个和zk服务端连接的句柄,这就是一个会话(session)。Session一旦建立,状态就是连接中(CONNECTING)状态,然后客户端会尝试去连接zk服务端,连接成功之后状态变成已连接(CONNECTED)。一般正常情况下只会有这两个状态。不过,还是会发生一些无法恢复的错误/故障,比如:session过期,认证失败,或者客户端关闭连接,这...转载 2019-04-22 22:43:15 · 328 阅读 · 0 评论 -
zookeeper数据结构、通知
ZooKeeper提供的名称空间非常类似于标准文件系统。名称是由斜线(/)分隔的一系列路径元素。ZooKeeper名称空间中的每个节点都由一个路径标识。 树是由节点所组成,zookeeper的数据存储也同样是基于节点,这个节点叫做Znode.但是,不同于树的节点,Znode的引用方式是路径引用,类似于文件路径:/app1/p_1 这样的...原创 2019-04-22 20:08:57 · 361 阅读 · 0 评论 -
dubbo的超时机制、集群容错
RPC场景 本文所有问题均以下图做为业务场景,一个web api做为前端请求,product service是产品服务,其中调用comment service(评论服务)获取产品相关评论,comment service从持久层中加载数据。 超时是针对消费端还是服务端? 如果是争对消费端,那么当消费端发起一次请求后,如果在规定时间内未得到服务端的响应则直接返回超时异常,但服务端的代...转载 2019-04-25 17:58:41 · 852 阅读 · 0 评论