摘要:转载:https://www.jianshu.com/p/c970cc710SETNX命令简介 SETNX key value 将key的值设为value,并且仅当key不存在。 若给定的key已经存在,则SETNX不做任何操作。 SETNX 是SET if Not eXists的简写。 返回整数,
阅读全文
摘要:作者:Way Lau链接:https://waylau.com/distributed-system-transaction/ Java架构师之路做了编排 为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制。举例来说,当一个数据库的副本被破环以后,那么系统只需要
阅读全文
摘要:转载:https://www.cnblogs.com/fingerboy/p/6424248.html 公司的一些平台服务框架底层封装了thrift提供服务,最近项目不是很紧,于是研究了一下,刚刚入门,理解得不深,写这篇博文来整理一下思路. 什么是thrift? 简单来说,是Facebook公布的一
阅读全文
摘要:转载:http://zheming.wang/thrift-rpcxiang-jie.html Thrift Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和
阅读全文
摘要:转载:http://blog.csdn.net/quhongwei_zhanqiu/article/details/41577235 SPI接口定义 定义了@SPI注解 public @interface SPI { Stringvalue() default ""; //指定默认的扩展点 } 只有
阅读全文
摘要:Dubbo采用微内核+ 插件体系,使得设计优雅,扩展性强。那所谓的微内核+插件体系是如何实现的呢!大家是否熟悉spi(service providerinterface)机制,即我们定义了服务接口标准,让厂商去实现(如果不了解spi的请谷歌百度下), jdk通过ServiceLoader类实现spi
阅读全文
摘要:LoadBalance负载均衡, 负责从多个 Invokers中选出具体的一个Invoker用于本次调用,调用过程中包含了负载均衡的算法,调用失败后需要重新选择 >类注解@SPI说明可以基于Dubbo的扩展机制进行自定义的负责均衡算法实现,默认是随机算法方法注解@Adaptive说明能够生成设配方法
阅读全文
摘要:Router服务路由, 根据路由规则从多个Invoker中选出一个子集AbstractDirectory是所有目录服务实现的上层抽象, 它在list列举出所有invokers后,会在通过Router服务进行路由过滤。 ConditionRouter: 条件路由 我们这里简单分析下代码实现具体功能参考
阅读全文
摘要:集群目录服务Directory, 代表多个Invoker, 可以看成List,它的值可能是动态变化的比如注册中心推送变更。集群选择调用服务时通过目录服务找到所有服务。 (1)StaticDirectory: 静态目录服务, 它的所有Invoker通过构造函数传入, 服务消费方引用服务的时候, 服务对
阅读全文
摘要:Directory中的多个Invoker伪装成一个Invoker, 对上层透明,包含集群的容错机制 Cluster可以看做是工厂类, 将目录directory下的invoker合并成一个统一的Invoker,根据不同集群策略的Cluster创建不同的Invoker 1)AvailableCluste
阅读全文
摘要:【一】:配置项 <dubbo:monitor protocol="registry"/> 【二】:配置解析器-->具体解析器为com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler配置的com.alibaba.dubbo.config
阅读全文
摘要:【一】:配置项 <dubbo:protocol id="标识" port="端口号" name="名字"/> 【二】:配置解析器-->具体解析器为com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler配置的com.alibaba.du
阅读全文
摘要:Dubbo:application的配置项【一】:配置项 <dubbo:application name="服务名字" owner="拥有者" organization="组织名(BU或部门)"/> 【二】:配置解析器-->具体解析器为com.alibaba.dubbo.config.spring.
阅读全文
摘要:转载地址:http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦 合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提
阅读全文
摘要:1)几个重要概念 ZooKeeper:客户端入口 Watcher:客户端注册的callback ZooKeeper.SendThread: IO线程 ZooKeeper.EventThread: 事件处理线程,处理各类消息callback ClientCnxnSocketNIO:继承自ClientC
阅读全文
摘要:Zookeeper的Client直接与用户打交道,是我们使用Zookeeper的interface。了解ZK Client的结构和工作原理有利于我们合理的使用ZK,并能在使用中更早的发现问题。本文将在研究源码的技术上讲述ZK Client的工作原理及内部工作机制。 在看完ZK Client的大致架构
阅读全文
摘要:《一》节点改变事件的监听 1 public class CauratorClientTest { 2 3 //链接地址 4 private static String zkhost="172.19.27.246:2181"; 5 //sessionTimeoutMs会话超时时间,单位为毫秒。默认是6
阅读全文
摘要:Curator Framework提供了简化使用zookeeper更高级的API接口。它包涵很多优秀的特性,主要包括以下三点: 自动连接管理:自动处理zookeeper的连接和重试存在一些潜在的问题;可以watch NodeDataChanged event和获取updateServerList;W
阅读全文
摘要:关于spring redis框架的使用,网上的例子很多很多。但是在自己最近一段时间的使用中,发现这些教程都是入门教程,包括很多的使用方法,与spring redis丰富的api大相径庭,真是浪费了这么优秀的一个框架。这里,我们就对比之前对spring orm中对hibernate的使用,来理解使用s
阅读全文