Dubbo
欧拉兔
vfrvwr
展开
-
Dubbo简介
1.架构演变随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。1.1 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。1.2 垂直应用架...原创 2019-06-07 16:38:42 · 150 阅读 · 0 评论 -
Dubbo协议介绍(7)-redis协议
基于Redis的的实现的RPC协议注册的Redis的服务的地址RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();Registry registry = registryFactory.getRegistry...原创 2019-06-09 03:00:28 · 588 阅读 · 0 评论 -
Dubbo协议介绍(8)-Memcached协议
注册 memcached 服务的地址RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();Registry registry = registryFactory.getRegistry(URL.valueOf("zo...原创 2019-06-09 14:43:52 · 180 阅读 · 0 评论 -
Dubbo-线程模型与线程池策略
1.线程池策略 resources目录下的com.alibaba.dubbo.common.threadpool.ThreadPool的文件fixed=com.alibaba.dubbo.common.threadpool.support.fixed.FixedThreadPoolcached=com.alibaba.dubbo.common.threadpool.supp...原创 2019-06-09 16:33:01 · 1042 阅读 · 0 评论 -
Dubbo-负载均衡
1.前言 在服务提供方是集群的时候,为了避免大量请求一直落到一个或者几个服务提供方机器上,从而使这些机器负载很高,甚至打死,需要做一定的负载均衡策略。Dubbo 提供了多种均衡策略,缺省为 random 随机调用。2.负载均衡策略2.1随机策略(Random LoadBalance)随机,按权重设置随机概率。 在一个截面上碰撞的概率高,但调用量越大分布越均匀...原创 2019-06-09 17:07:12 · 162 阅读 · 0 评论 -
Dubbo-接口数据序列化Serialization
概念:序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。在Dubbo RPC中,同时支持多种序列化方式:dubbo序列化,阿里尚不成熟的java序列化实现。 hessian2序列化:hessian是一种跨语言的高效二进制的序列化方式,但这里实际不是原生的hessian2序列化,而是阿里修改过的hessian lite,它是...原创 2019-06-10 01:11:49 · 1728 阅读 · 0 评论 -
Dubbo-服务降级
1.开关 先讲一下开关的由来,例如京东在6月18日做店庆促销活动,在交易下单环节,可能需要调用A、B、C三个接口来完成,但是其实A和B是必须的,C只是附加的功能(例如在下单的时候做一下推荐),可有可无,在平时系统没有压力,容量充足的情况下,调用下没问题,但是在类似店庆之类的大促环节,系统已经满负荷了,这时候其实完全可以不去调用C接口,怎么实现这个呢?改代码?no,no,no,这样...原创 2019-06-10 01:11:58 · 149 阅读 · 0 评论 -
Dubbo-并发控制
Dubbo中的并发控制分为客户端并发控制和服务端并发控制1.客户端并发控制 在服务消费方法进行并发控制需要设置actives参数,如下:<dubbo:reference id="userService" interface="com.test.UserServiceBo" group="dubbo" version="1.0.0" ...原创 2019-06-10 01:12:05 · 1126 阅读 · 0 评论 -
Dubbo-Filter机制概述
1.Filter介绍 Dubbo引入过滤器链机制来实现功能的包装(或扩展)。Dubbo很多功能,例如泛化调用、并发控制等都是基于Filter机制实现的,系统默认的Filter在/dubbo-rpc-api/src/main/resources/META-INF/dubbo/internal/com.alibaba.dubbo.rpc.Filter文件中定义,内容如下:ech...原创 2019-06-10 01:12:11 · 1909 阅读 · 0 评论 -
Dubbo协议介绍(6)-thrift协议
当前dubbo支持的thrift协议是对thrift原生协议的扩展,在原生协议的基础上添加了一些额外的头信息,比如服务名称,魔术数字等。 使用dubbo thrift协议同样需要使用thrift的idl编译器编译生成相应的java。依赖<dependency> <groupId>org.apache.thrift</g...原创 2019-06-09 02:49:22 · 981 阅读 · 0 评论 -
Dubbo协议介绍(5)-WebService协议
基于 WebService 的远程调用协议,基于Apache CXF的frontend-simple和transports-http实现。 可以和原生 WebService 服务互操作,即:提供者用 Dubbo 的 WebService 协议暴露服务,消费者直接用标准 WebService 接口调用, 或者提供方用标准 WebService 暴露服...原创 2019-06-09 02:32:15 · 501 阅读 · 0 评论 -
Dubbo协议介绍(4)-Rmi协议
RMI 协议采用 JDK 标准的java.rmi.*实现,采用阻塞式短连接和 JDK 标准序列化方式。注意:如果正在使用 RMI 提供服务给外部访问1,同时应用里依赖了老的 common-collections 包2的情况下,存在反序列化安全风险特性连接个数:多连接 连接方式:短连接 传输协议:TCP 传输方式:同步传输 序列化:Java 标准二进...原创 2019-06-09 02:07:56 · 2371 阅读 · 0 评论 -
Dubbo-Spring+Dubbo+ZooKeeper单机服务
1.ZooKeeper的安装:ZooKeeper的安装很简单,下载架包解压缩,解压缩后的目录下有个conf目录也就是zookeeper的配置文件在该目录下,该目录下有一个zoo_sample.cfg 文件,复制一个修改为zoo.cfg,像我们这里是单服务的所以这里的配置只需要修改dataDir的目录就可以了其他的可以不用修改,dataDir的目录可以自己随便定义!!!2.接口定义模块...原创 2019-06-07 21:50:07 · 192 阅读 · 0 评论 -
Dubbo-开发中使用到的一些服务配置方式
1.group 一个接口有多个实现时可以使用group来区分1.1服务提供者配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/200...原创 2019-06-08 01:10:31 · 226 阅读 · 0 评论 -
Dubbo-多协议,多注册中心配置
1.不同服务在性能上适用不同协议进行传输1.1服务提供者配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...原创 2019-06-08 01:35:25 · 1499 阅读 · 0 评论 -
Dubbo-结果缓存
Dubbo为我们提供给了结果缓存功能,只要进行简单的配置就能实现结果缓存功能!1.服务提供者1.1服务提供者接口package com.test.dubboser; public interface CacheService {String findCache(String id);}1.2服务提供者接口实现类package com.test.dubboser;...原创 2019-06-08 20:12:08 · 1397 阅读 · 0 评论 -
Dubbo-异步调用
整个异步过程图片描述的很清楚,下面来看看代码:1.服务提供者1.1服务提供者接口package com.test.dubboser; public interface ServiceDemo2 {public Person getPerson(String str,int age);}1.2Person 类package com.test.dubboser;...原创 2019-06-08 21:16:41 · 832 阅读 · 0 评论 -
Dubbo协议介绍(1)-dubbo协议
Dubbo 缺省协议采用单一长连接和 NIO 异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。 反之,Dubbo 缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。Transporter: mina, netty, grizzy Serialization: dubbo, hessian2...原创 2019-06-09 00:12:22 · 186 阅读 · 0 评论 -
Dubbo协议介绍(2)-Http协议
基于 HTTP 表单的远程调用协议,采用 Spring 的 HttpInvoker 实现特性连接个数:多连接 连接方式:短连接 传输协议:HTTP 传输方式:同步传输 序列化:表单序列化 适用范围:传入传出参数数据包大小混合,提供者比消费者个数多,可用浏览器查看,可用表单或URL传入参数,暂不支持传文件。 适用场景:需同时给应用程序和浏览器 JS 使用的服务。约...原创 2019-06-09 00:23:04 · 1794 阅读 · 0 评论 -
Dubbo协议介绍(3)-Hession协议
Hessian协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用 Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现。 Dubbo 的 Hessian 协议可以和原生 Hessian 服务互操作,即:提供者用 Dubbo 的 Hessian 协议暴露服务,消费者直接用标准 Hessian 接口调用 或...原创 2019-06-09 01:57:19 · 842 阅读 · 0 评论 -
Dubbo-集群容错
1.前言 在进行系统设计时候,不仅要考虑正常逻辑该如何走,还要考虑异常逻辑。dubbo中当服务消费方调用服务提供方的服务出现错误时候,提供了多种容错方案,缺省为 failover 重试。2.Dubbo集群容错模式2.1 Failover Cluster 重试。当服务消费方调用服务提供者失败后自动切换,重试其它服务提供者。这通常用于读操作或者...原创 2019-06-10 20:13:35 · 176 阅读 · 0 评论