
————Dubbo
量变决定质变
牢记理想,毋忘奋斗!
展开
-
Dubbo架构演变
随着互联网的发展,网站应用的规模不断扩大 常规的垂直应用架构已经无法应对 分布式服务架构、以及流动计算架构势在必行 急需一个治理系统,确保架构的演进 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本 ORM 用于简化增删改查工作流的,数据访问框架ORM是关键 垂直应用架构 当访问量逐渐增大,单一应用增加机器,带来的加速度越来越小...原创 2018-08-04 20:10:21 · 875 阅读 · 0 评论 -
Dubbo监控中心Windows安装
监控中心 下载文件 Dubbo的GitHub上 Dubbo-monitor 打包 打包完成 target目录下 生成一个jar包 解压 下面的压缩包 复制出来 这个是简易的监控中心 打开conf 配置文件dubbo.properties 注册中心地址,不需要修改 protocol,默认为7070 是其他服务,与监控中心的通信...原创 2018-09-05 23:41:10 · 1012 阅读 · 0 评论 -
Dubbo监控中心配置
监控中心配置 参考官网 http://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-monitor.html 服务提供者 配置标签 <!-- 连接监控中心 --> <dubbo:monitor protocol="registry"></dubbo:monitor> 或者 ...原创 2018-09-05 23:42:58 · 384 阅读 · 0 评论 -
Dubbo生产者消费者配置
引入jar包 生产者、消费者都需要引入jar包 <!-- 引入dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.2</ver原创 2018-09-05 23:44:28 · 4761 阅读 · 0 评论 -
Dubbo的Zookeeper版本
使用dubbo 需要引入相关jar包 <!-- 引入dubbo --> <!-- https://mvnrepository.com/artifact/com.alibaba/dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>...原创 2018-09-05 23:46:11 · 6214 阅读 · 0 评论 -
Dubbo注解版配置
服务提供者 配置文件 <dubbo:application name="gmall-user"></dubbo:application> <dubbo:registry address="zookeeper://118.24.44.169:2181" /> <dubbo:protocol name="dubbo" port="2088原创 2018-09-05 23:48:58 · 2445 阅读 · 0 评论 -
Dubbo注册中心宕机
注册中心宕机 高可用 通过设计,减少系统不能提供服务的时间 zookeeper注册中心宕机 还可以消费dubbo暴露的服务 健壮性 监控中心宕掉 不影响使用,只是丢失部分采样数据 数据库宕掉 注册中心,仍能通过缓存提供服务列表查询,但不能注册新服务 注册中心 对等集群,任意一台宕掉,将自动切换到另一台 注册中心 全部宕掉后,服务提供者和服务消费者,仍能通过本地缓存通讯...原创 2018-09-09 10:05:47 · 2169 阅读 · 0 评论 -
Dubbo权重配置
权重配置 可以直接在服务提供者,配置权重 也可以在管控台,配置权重 服务器提供者 在暴露服务的时候,配置权重 缺点,这样写权重就固定了 实际,都是动态的调整权重 @Service(weight=50)//暴露服务 @Component public class UserServiceImpl implements UserService { @HystrixComma...原创 2018-09-09 10:07:36 · 6731 阅读 · 0 评论 -
Dubbo负载均衡机制
负载均衡 参考文档 http://dubbo.apache.org/zh-cn/docs/user/demos/loadbalance.html 负载均衡机制 Dubbo提供了四种负载均衡机制 默认为,random随机调用 Random LoadBalance 每次请求,根据权重随机发送 随机,按权重设置随机概率 在一个截面上碰撞的概率高,但调用量越大分布越均匀...原创 2018-09-09 10:11:38 · 1040 阅读 · 0 评论 -
Dubbo负载均衡配置
负载均衡 默认随机调用,random 可以配置负载均衡机制 参考文档 http://dubbo.apache.org/zh-cn/docs/user/demos/loadbalance.html 配置方式 可以在服务级别配置 也可以在方法级别配置 服务级别 服务端服务级别 <dubbo:service interface="..." loadbalance="...原创 2018-09-09 10:13:00 · 5027 阅读 · 2 评论 -
Dubbo负载均衡原理
LoadBalance 搜索,Ctrl+Shift+T Dubbo接口 点击,进入NAME 可以看到,默认配置,随机调用 负载均衡机制 选中,AbstractLoadBalance 打开继承树,Ctrl+T 可以看到,提供了四种负载均衡机制 包括负载均衡算法,也在每一种机制中 ...原创 2018-09-09 10:14:20 · 4648 阅读 · 1 评论 -
Dubbo服务降级
服务降级 分布式系统中 提高系统高可用的方式之一 当服务器压力剧增的情况下 根据,实际业务情况及流量 对一些服务和页面有策略的不处理,或者换种简单的方式处理 从而,释放服务器资源以保证核心交易正常运作或高效运作 参考文档 http://dubbo.apache.org/zh-cn/docs/user/demos/service-downgrade.html RegistryF...原创 2018-09-10 21:36:45 · 480 阅读 · 0 评论 -
dubbo配置文件加载顺序
参考文档 http://dubbo.apache.org/zh-cn/docs/user/configuration/properties.html Dubbo提供了三种方式 JVM虚拟机参数的配置方式 XML,自定义dubbo.xml文件方式 Properties,公共配置dubbo.properties文件方式 覆盖策略 就是配置文件的优先顺序 如果,JVM虚拟机参数...原创 2018-09-07 00:09:31 · 1993 阅读 · 0 评论 -
Dubbo超时时间
超时时间 如果,不配置,默认为1秒 参考文档 http://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-consumer.html 配置优先级 适用于所有的配置 以timeout为例 参考文档 http://dubbo.apache.org/zh-cn/docs/user/configuration/xml.ht...原创 2018-09-07 00:15:28 · 1584 阅读 · 0 评论 -
Dubbo启动时检查
启动时检查 Dubbo缺省,会在启动时 检查依赖的服务是否可用 不可用时会抛出异常,阻止 Spring 初始化完成 以便上线时,能及早发现问题,默认 check=”true” 可以配置 关闭某个服务的启动时检查 <dubbo:reference interface="com.foo.BarService" check="false" /> 关闭所有服务的启动时检查 ...原创 2018-09-07 00:17:02 · 452 阅读 · 0 评论 -
Dubbo重试次数
重试次数 不配置,默认重试2次 不算第一个调用,一共会调用三次 参考文档 http://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-consumer.html 轮询机制 相同的服务提供多份 比如 调用订单服务,订单服务提供了三份 默认重试两次 第一次,调用第一份订单服务,调用失败 第二次,会调用第二份订...原创 2018-09-07 00:19:10 · 7209 阅读 · 0 评论 -
Dubbo服务降级配置
服务降级配置 可以在管控台,对消费者进行配置 屏蔽,表示不发起远程调用,直接在客户端返回空对象 容错,表示当远程调用失败时,返回空对象 屏蔽 相当于 mock=force:return+null 容错 相当于 mock=fail:return+null ...原创 2018-09-10 21:38:08 · 933 阅读 · 0 评论 -
Dubbo服务容错
服务容错 当集群调用失败,应该怎么处理 Dubbo提供了多种容错方案 默认为,failover重试 参考文档 http://dubbo.apache.org/zh-cn/docs/user/demos/fault-tolerent-strategy.html 集群容错模式 Failover Cluster 失败自动切换,当出现失败,重试其它服务器 通常,用于读操作,但重试会...原创 2018-09-10 21:43:51 · 1456 阅读 · 0 评论 -
Dubbo管控台Windows安装
管控台 官网,选择GitHub dubbo运维 Dubbo-admin,管控台 Dubbo-monitor,监控中心 安装管控台 点击dubbo ops 下载项目 使用Maven构建 解压 Dubbo-admin 是一个Maven工程 打开pom文件 jar包的方式 打包方式 2.6版本之后,都是jar包 2.5版本之前,都是war包 ...原创 2018-09-05 23:37:32 · 393 阅读 · 0 评论 -
Dubbo服务调用原理
服务调用原理 参考文档 http://dubbo.apache.org/zh-cn/docs/dev/design.html 引用服务 最终,创建一个代理对象 InvokerInvocationHandler Invoke,是一层一层封装的结果 invoker.invoke 执行 MockClusterInvoker invoker.invoke ...原创 2018-09-11 21:40:30 · 3109 阅读 · 0 评论 -
Dubbo服务引用原理
服务引用原理 配置文件 通过Spring容器加载 每一个标签,对应一个解析类 Reference 对应ReferenceBean 实现了FactoryBean FactoryBean 工厂Bean 引用标签,通过往容器中,注入Bean 使用时,从容器中,获取Bean对象 getObject 返回标签配置的Bean对象 Get 获取Bean...原创 2018-09-11 21:37:24 · 1191 阅读 · 0 评论 -
Dubbo的架构
服务治理 架构 节点角色 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数,和调用时间的监控中心 Container 服务运行容器 调用关系 0、服务容器负责启动 加载,运行服务提供者 1、服务提供者在启动时 向注册中心,注册自己提...原创 2018-08-04 20:11:58 · 191 阅读 · 0 评论 -
Dubbo架构的特点
连通性 1、注册中心 负责服务地址的注册于查找 相当于目录服务,服务提供者与消费者 只在启动时与注册中心交互,注册中心不转发请求,压力较小 2、监控中心 负责统计各服务调用次数,调用时间等 统计先在内存汇总后,每分钟一次发送到监控中心服务器,并以报表展示 3、服务提供者 向注册中心,注册其提供的服务 并汇报调用时间到监控中心,此时间不包含网络开销 4、服务消费者 向注册中心...原创 2018-08-04 20:13:57 · 798 阅读 · 0 评论 -
Dubbo系统间通信
系统间通信 远程通信,实现方案 Webservice Restful Dubbo Webservice 基于soap协议,通信效率不高 主要特点,跨语言、跨平台 项目中,不推荐使用 可用于,不同公司之间的接口调用 Restful 基于http协议,形式http+json 一种架构风格,很多项目中应用 如果,服务太多 服务之间调用关系混乱,需要治疗服务 Dubbo ...原创 2018-08-27 09:08:31 · 427 阅读 · 0 评论 -
Dubbo服务调用过程
服务调用过程 生产者,服务提供者、提供端 消费者,服务调用者、调用端 0、start Provider,服务提供者 Container,容器 Spring容器,用来初始化服务 服务发布,需要Spring容器配合 1、register 服务注册 Registry,注册中心 生产者,暴露服务 注册到注册中心 2、subscribe 查询服务 消费者,访问注册中心 ...原创 2018-08-27 09:11:00 · 506 阅读 · 0 评论 -
Dubbo服务发布调用
服务发布调用 Dubbo采用全Spring配置方式 透明化接入应用,对应用没有任何API侵入 只需用Spring加载Dubbo的配置即可 Dubbo基于Spring的Schema扩展进行加载 单一工程 Spring配置,local.xml <bean id="xxxService" class="com.xxx.XxxServiceImpl" /> <bea...原创 2018-08-27 09:14:37 · 371 阅读 · 0 评论 -
Dubbo服务发布调用实现
服务发布调用实现 系统需求 根据商品id,查询商品信息 Dao 单表查询,不需要写代码 使用Mybatis逆向工程生成的代码 Interface 在taotao-manager-interface工程中 创建一个ItemService接口 public interface ItemService { TbItem getItemById(long itemId); }...原创 2018-08-27 09:26:59 · 9936 阅读 · 0 评论 -
Dubbo使用
使用方式 父工程,管理依赖版本 配置dubbo版本 <dubbo.version>2.5.3</dubbo.version> <zookeeper.version>3.4.7</zookeeper.version> <zkclient.version>0.1</zkclient.version> 配置引用 <...原创 2018-08-27 09:33:37 · 198 阅读 · 0 评论 -
Dubbo设置超时时间
Timeout 设置服务调用,超时时间 默认时间1秒,默认单位毫秒 服务调用 服务调用失败,会重新尝试 尝试三次失败之后,不再尝试 抛出异常 使用方式 在服务暴露的时候 配置服务超时时间,比如,设置300毫秒 &lt;!-- 声明需要暴露的服务接口 --&gt; &lt;dubbo:service interface="com.taotao.service.Item...原创 2018-08-27 09:36:31 · 4136 阅读 · 0 评论 -
Dubbo服务调用失败
解决方法 查看管控台 查看注解 查看扫描包 查看发布服务 查看加载配置文件 查看管控台 Dubbo管控台,查找该服务 是否存在,服务状态是否正常 查看注解 @Service 服务类,要使用@Service注解,注入IOC容器 使用Spring的@Service注解,不要使用Dubbo的 import org.springframework.stereotype.S...原创 2018-08-27 09:41:30 · 6482 阅读 · 0 评论 -
Dubbo序列化对象
序列化对象 Dubbo分为服务端,客户端 客户端调用服务,需要将pojo传递给客户端调用者 对象在传输过程中,需要序列化 在表现层,需要反序列化对象 对象序列化 需要实现序列化接口 Pojo里面所有不带Example的类 都应该实现序列化接口 因为,这些对象都有可能参与网络传输 package com.taotao.pojo; import java.io.Serializa...原创 2018-08-27 09:43:01 · 1047 阅读 · 0 评论 -
Dubbo多版本
多版本 参考文档 http://dubbo.apache.org/zh-cn/docs/user/demos/multi-versions.html 版本升级、灰度发布 当某一个接口,出现了不兼容的升级 可以用版本号过渡,版本号不同的服务,相互间不引用 版本迁移 1、在低压力时间段,先升级一半提供者为新版本 2、再将,所有消费者升级为新版本 3、然后,将剩下的一半提供者...原创 2018-09-08 10:17:01 · 2059 阅读 · 0 评论 -
Dubbo本地存根
本地存根 参考文档 http://dubbo.apache.org/zh-cn/docs/user/demos/local-stub.html 本地存根 可以提前验证参数 调用失败之后,伪造容错数据等 消费方 写一个本地存根Stub的实现 必须,提供一个有参构造器 有参构造器,传入的是远程接口的代理实现 不需要去传这个参数,Dubbo默认自动传递进来 可以添加判断 ...原创 2018-09-08 10:19:21 · 1993 阅读 · 0 评论 -
Spring boot配置Dubbo三种方式
方式一 使用注解的方式 导入dubbo-starter 在application.properties配置属性 使用@Service暴露服务 使用@Reference引用服务 使用@EnableDubbo开启注解Dubbo功能 或者配置包扫描 dubbo.scan.base-packages=com.atguigu.gmall 开启注解、包扫描,配置一个即可 这种方式 可...原创 2018-09-08 10:23:50 · 30695 阅读 · 0 评论 -
Dubbo直连
直连 直接调用 绕过注册中心,消费者直接调用服务者 消费者 直接配置服务提供者地址,可以绕过注册中心 直接调用服务提供者 @Service public class OrderServiceImpl implements OrderService { //@Autowired @Reference(url="127.0.0.1:20882") //dubbo直连 ...原创 2018-09-09 10:02:35 · 818 阅读 · 0 评论 -
Dubbo标签解析原理
配置文件 是Spring的配置文件 程序启动,是以Spring的方式 加载配置文件启动 Spring解析,配置文件中的每一个标签 BeanDefinitionParser 标签解析器 搜索,BeanDefinitionParser Ctrl+T,查看继承树 DubboBeanDefinitionParser Dubbo标签解析器 Parse 解析标签 ...原创 2018-09-11 21:23:03 · 494 阅读 · 0 评论 -
Dubbo框架设计原理
框架设计 参考文档 http://dubbo.apache.org/zh-cn/docs/dev/design.html 整体分为三层 Business 业务逻辑层,只有一层Service 面向接口编程,一个接口,对应一个实现 远程调用,通过调用接口,来调用接口实现 RPC 用于完成远程过程调用,分为很多层 Config 配置层 用于封装配置文件中,解析的一些信息...原创 2018-09-11 21:19:25 · 524 阅读 · 0 评论 -
Dubbo服务暴露原理
服务暴露原理 配置文件 IOC容器启动,加载配置文件的时候 Dubbo标签处理器,解析每一个标签 封装成对应的组件 service 解析service标签 将service标签信息,封装成ServiceBean ServiceBean 实现了两个重要机制 InitializingBean Spring的接口 当组件创建完对象之后 会调用In...原创 2018-09-11 21:32:12 · 2092 阅读 · 1 评论 -
Dubbo整合hystrix
整合hystrix Dubbo提供了,集群容错机制 可以通过配置,进行使用 在实际开发中 一般,都是通过整合hystrix,进行集群容错 Hystrix 是Spring cloud中,默认整合的服务容错解决方案 通过,控制那些访问远程系统、服务和第三方库的节点 从而,对延迟和故障提供更强大的容错能力 Hystrix 具备拥有回退机制和断路器功能的线程和信号隔离 请求缓存和...原创 2018-09-10 21:48:36 · 2644 阅读 · 0 评论