摘要: 当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用。 可以按照以下的步骤进行版本迁移: 在低压力时间段,先升级一半提供者为新版本 再将所有消费者升级为新版本 然后将剩下的一半提供者升级为新版本 老版本服务提供者配置: <dubbo:service interface=" 阅读全文
posted @ 2020-11-19 14:46 dong&li 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 超时属性 timeout 默认为 1000ms 以 timeout 为例,下图显示了配置的查找顺序,其它 retries, loadbalance, actives 等类似: 方法级优先,接口级次之,全局配置再次之。 如果级别一样,则消费方优先,提供方次之。 (建议由服务提供方设置超时,因为一个方法 阅读全文
posted @ 2020-11-19 14:45 dong&li 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 远程服务后,客户端通常只剩下接口,而实现全在服务器端,但提供方有些时候想在客户端也执行部分逻辑,比如:做 ThreadLocal 缓存,提前验证参数,调用失败后伪造容错数据等等,此时就需要在 API 中带上 Stub,客户端生成 Proxy 实例,会把 Proxy 通过构造函数传给 Stub [1] 阅读全文
posted @ 2020-11-19 14:44 dong&li 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 重试次数属性 retries 设置值为整数,重试次数不包括本身的调用,比如设置retries = “3” ,那么如果超时的话一共调用四次。 如果有多个提供者服务,那么在重试次数内会轮询调用各个服务。 示例 <dubbo:reference interface="com.atguigu.gmall.s 阅读全文
posted @ 2020-11-19 14:41 dong&li 阅读(459) 评论(0) 推荐(0) 编辑
摘要: Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true"。 可以通过 check="false" 关闭检查,比如,测试时,有些服务不关心,或者出现了循环依赖,必须有一方先启动。 另外,如果你的 S 阅读全文
posted @ 2020-11-19 14:40 dong&li 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 前期准备 创建两个springboot工程,分别为服务提供者和服务消费者,再创建一个maven project 的公共API 公共API bean package com.atguigu.gmall.bean; import java.io.Serializable; public class Us 阅读全文
posted @ 2020-11-19 14:39 dong&li 阅读(618) 评论(0) 推荐(0) 编辑
摘要: 1、安装注册中心 (1)访问 https://downloads.apache.org/zookeeper/stable/ 选择后缀为bin.tar.gz 的压缩包下载解压。 (2)确保电脑配置了jdk系统环境变量。 (3)修改conf 目录下的 zoo_sample.cfg 为 zoo.cfg 因 阅读全文
posted @ 2020-11-19 14:38 dong&li 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 服务追踪的作用 快速定位请求失败原因、优化系统瓶颈、优化链路调用、生成网络拓扑、透明传输数据。 服务追踪系统原理 核心理念就是调用链:通过一个全局唯一的 ID 将分布在各个服务节点上的同一次请求串联起来,从而还原原有的调用关系,可以追踪系统问题、分析调用数据并统计各种系统指标。 要理解服务追踪的原理 阅读全文
posted @ 2020-11-19 14:37 dong&li 阅读(464) 评论(0) 推荐(0) 编辑
摘要: RPC 调用的过程 服务消费者称为客户端,服务提供者称为服务端,两者通常位于网络上两个不同的地址,要完成一次 RPC 调用,就必须先建立网络连接。建立连接后,双方还必须按照某种约定的协议进行网络通信,这个协议就是通信协议。双方能够正常通信后,服务端接收到请求时,需要以某种方式进行处理,处理成功后,把 阅读全文
posted @ 2020-11-19 14:35 dong&li 阅读(1960) 评论(0) 推荐(0) 编辑
摘要: 举个例子:这个问题就跟我想去吃肯德基一样,我可以去谷歌地图上搜索肯德基,然后谷歌地图会返回所有的肯德基店面的地址,于是我选择距离最近的一家去吃。这里面谷歌地图就扮演了一个类似注册中心的角色,收录了所有肯德基店面的地址。 注册中心原理 在微服务架构下,主要有三种角色:服务提供者(RPC Server) 阅读全文
posted @ 2020-11-19 14:32 dong&li 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 服务提供者如何发布一个服务,服务消费者如何引用这个服务。 具体来说,就是这个服务的接口名是什么?调用这个服务需要传递哪些参数?接口的返回值是什么类型?以及一些其他接口描述信息。 最常见的服务发布和引用的方式有三种:RESTful APIXML 配置IDL 文件。 RESTful API 首先来说说 阅读全文
posted @ 2020-11-19 14:26 dong&li 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1、一次正常服务调用的流程 首先服务提供者(就是提供服务的一方)按照一定格式的服务描述,向注册中心注册服务,声明自己能够提供哪些服务以及服务的地址是什么,完成服务发布。接下来服务消费者(就是调用服务的一方)请求注册中心,查询所需要调用服务的地址,然后以约定的通信协议向服务提供者发起请求,得到请求结果 阅读全文
posted @ 2020-11-19 14:21 dong&li 阅读(532) 评论(0) 推荐(0) 编辑