Dubbo
wangyongxun1983
这个作者很懒,什么都没留下…
展开
-
09-Dubbo中的Invoker的原理与实例
01、原理Invoker是实体域,它是 Dubbo 的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。【1】、Invocation调用上下文环境1、String getMethodName() 获取调用方法名。2、Class< ? >[] getParameterTypes() 获取被调用方法的参数列表(参数类型)3、Object[] getArguments(原创 2020-09-22 01:06:01 · 894 阅读 · 0 评论 -
08-Dubbo中的Wrapper的原理与实例
01、Wrapper类的原理Wrapper关键的包装类,在各类接口分发调用的时候起至关重要的作用。Wapper类就是jdk的反射。Wapper是一个包装类。主要用于“包裹”目标类,仅可以通过getWapper(Class)方法创建子类。在创建子类过程中,子类代码会对传进来的Class对象进行解析,拿到类方法,类成员变量等信息。而这个包装类持有实际的扩展点实现类。也可以把扩展点的公共逻辑全部移到包装类中,功能上就是作为AOP实现。创建包装类的构造方法:public static Wrap原创 2020-09-22 00:31:41 · 916 阅读 · 2 评论 -
07--Dubbo服务的发布
总体思路1、解析dubbo的xml文件或注解2、服务的注册,如注册到zookeeper3、启动netty服务实现远程监控1、Dubbo对于spring标签的扩展spring标签的扩展简介[1] 设计配置属性和JavaBean[2] 编写XSD文件[3] 编写NamespaceHandler和BeanDefinitionParser完成解析工作[4] 编写spring.handlers和spring.schemas串联起所有部件[5] 在Bean文件中应用具体实.原创 2020-09-06 15:29:14 · 173 阅读 · 1 评论 -
06--【重点】Dubbo源码【Dubbo的SPI机制】
Java的SPIjava提供的SPI(service provider interface)在java运行时动态加载配置接口的实现类。SPI的标准1、在classpath目录下创建MATE-INF/service文件夹2、创建properties文件,其中该文件的编码为UTF-8,文件名为要实现接口的全路径。文件内容为实现接口的类的全路径,实现类可为一个或多个。3、调用java.util.ServiceLoader的加载机制ServiceLoader<IService>原创 2020-09-03 22:42:10 · 87 阅读 · 0 评论 -
04--Duddo服务降级
什么是服务的将级?当服务提供端出现宕机或异常等情况下,通过自动或手动等方式来临时屏蔽改服务。将级的种类分为3种?1、人工将级。关闭一些系统的非主要功能,将服务器资源全部提供给主要功能2、故障降级。当服务提供方出现异常,服务消费方应返回异常说明或静态页面3、限流将级。当突发并发量超过阀值时,应将请求放入队列进行排队限流。Dubbo采用的mock配置的方式,如:@Reference(loadbanlance=“random”,mock="xx.xx.xx.XxxxService")原创 2020-09-01 16:49:50 · 79 阅读 · 0 评论 -
03---Dubbo的集群容错
什么是容错在整个集群系统中,当出现网络错误或服务异常等一些原因时,服务服务正确的响应和访问。这是 需要采取一些优雅的措施处理。集群容错的种类(方式)6种,分别如下:1、Failover Cluster失败自动切换到其他服务,如果失败尝试retries=?多少次,?不含第一次。常用于读操作。2、Failfast Cluster直接失败,如果失败立即报错。常用于新增于修改3、Failsafe Cluster出现异常直接忽略。常用与写入安全日志的操作4、Failback原创 2020-09-01 09:41:42 · 68 阅读 · 0 评论 -
02--Dubbo的负载均衡
Dubbo的基本操作负载均衡的几种算法1、权重随机算法----------RandomLoadBalance将设置的权重随机算法对应的服务器设计权重值,将各个权重值相加,得到一个随机数的落点值[0,总和)。在这里利用独特的倒置二叉数算法得出每台服务器的落点范围。及可以计算出随机数落在哪台服务器中去处理业务。客户端(消费者)配置:import org.apache.dubbo.config.annotation.Reference;@Reference(loadbalance = "r原创 2020-08-31 22:38:59 · 83 阅读 · 0 评论 -
01-Dubbo的初体验
#Dubbo2.X的初识##Dubbo背景Dubbo是分布式远程服务通信框架,与传统单体框架相比,扩展了远程服务之间的通信、服务的治理,其中在单点服务之间的通信上采用RPC模式,而且在通信协议上支持Java的RMI、webservice、JAX-RS、http等协议。从Dubbo的开发您可以了解到如果我们要去开发一款远程通信框架,需要思路的方向。1、底层网络通信协议的处理。2、序列号与反序列号的处理。3、服务的治理。Dubbo框架在服务的治理中实现了:服务链路的跟踪与监测、服务的原创 2020-08-30 21:47:08 · 107 阅读 · 0 评论