
dubbo
guaoran
java 软件开发
展开
-
dubbo容错降级和基本配置
dubbo能做什么?透明化的远程方法调用,就像调用本地方法一样调用远程方法,软负载均衡及容错机制,可在内网替代F5 等硬件负载均衡器,降低成本,减少单点服务自动注册于发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址基本配置ServerProvider<?xml version="1.0&原创 2019-01-10 14:01:46 · 296 阅读 · 0 评论 -
Dubbo 负载均衡算法
负载均衡Dubbo 官网负载均衡随机算法权重随机,权重一致,则随机给每个权重设置一个区间,权重越大区间越大,生成随机数判断落在那个区间里。它的算法思想很简单。假设我们有一组服务器 servers = [A, B, C],他们对应的权重为 weights = [5, 3,2],权重总和为10。现在把这些权重值平铺在一维坐标值上,[0, 5) 区间属于服务器 A,[5, 8) 区间属于服务器 B,[8, 10) 区间属于服务器 C。接下来通过随机数生成器生成一个范围在 [0, 10) 之间的随机数原创 2020-08-31 08:59:25 · 254 阅读 · 0 评论 -
dubbo 客户端调用过程分析
客户端调用过程分析当我们我们调用服务的具体方法时 : service.sayHello()IHelloService helloService = (IHelloService) context.getBean("helloService");// helloService = // Proxy0(InvokerInvocationHandler(MockClusterInvoker(FailoverClusterInvoker()))))helloService.sayHello();会根据原创 2020-08-31 08:59:32 · 642 阅读 · 0 评论 -
dubbo 客户端注册并引用服务源码分析
客户端注册并引用服务源码分析getObject() 获得服务的代理对象首先或得在配置文件中的配置的参数信息,封装成map,进行创建代理对象在createProxy() 方法中,主要执行以下两步操作进行 Protocol#refer()操作,该方法主要有以下几步进入到RegistryProtocol#refer()方法中,打开一个zookeeper的连接 zookeeperRegistry将consumer 协议注册到zk上,并进行订阅 provide、configurators、r原创 2020-08-31 08:59:44 · 178 阅读 · 0 评论 -
dubbo 服务发布及注册流程
Dubbo 服务发布源码分析export() 进行服务发布首先会获得注册中心集合列表以及协议集合列表,遍历协议中心列表进行多协议发布服务服务发布时,会根据配置文件的参数信息封装成map对象,最后将map对象转换成URL地址的参数根据URL地址的协议头:registry://xxx ,会在 protocol.exort(url) 中,进入到RegistryProtocol#export()方法中,在该方法中主要做了一下几步做本地发布:会根据协议将协议头由 registry:// 转换原创 2020-08-31 08:59:52 · 1705 阅读 · 0 评论 -
dubbo spi ExtensionLoader 分析
Java SPI参考配置SPI全称(service provider interface),是JDK内置的一种服务提供发现机制,目前市面上有很多框架都是用它来做服务的扩展发现,大家耳熟能详的如JDBC、日志框架都有用到;简单来说,它是一种动态替换发现的机制。举个简单的例子,如果我们定义了一个规范,需要第三方厂商去实现,那么对于我们应用方来说,只需要集成对应厂商的插件,既可以完成对应规范的实现机制。 形成一种插拔式的扩展手段。规范总结实现SPI,就需要按照SPI本身定义的规范来进行配置,SPI规范如原创 2020-08-31 09:00:03 · 397 阅读 · 0 评论