dubbo
文章平均质量分 76
cxylikui
这个作者很懒,什么都没留下…
展开
-
mac m1使用docker安装zookeeper无法启动
mac m1使用doker安装zookeeper后启动报错原创 2022-08-23 20:21:26 · 1197 阅读 · 0 评论 -
dubbo学习笔记(8):注册中心源码剖析
核心流程前面在服务暴露与引用分析的时候,我们是基于直连的方式,没有使用注册中心,这就需要将url写死,这显然不符合我们的实际开发。实际开发中,rpc的核心流程应该是这样的:代理协议有了注册中心后,就引出了RegistryProtocol这个概念,它继承了Protocol,但是它并不具备远程通信的能力,所以在它内部代理了一个Protocol,所以它是一个代理协议。通过下图来看看它和注册中心,DubboProtocol的关系此时的url就类似于下面这种"zookeeper://192.168.6原创 2021-03-28 23:12:10 · 266 阅读 · 1 评论 -
dubbo学习笔记(7):服务暴露与引用
功能架构首先通过一张图来了解整个功能架构下面是rpc的核心流程服务暴露首先分析服务暴露的过程,通过源码来理解通过协议的方式来暴露服务: String urlText="dubbo://127.0.0.1:20880/cxylk.dubbo.UserService?timeout=6000"; // 暴露服务测试 @Test public void exportTest() throws IOException, IOException { Dub原创 2021-03-28 23:01:44 · 277 阅读 · 0 评论 -
dubbo学习笔记(6):dubbo服务治理
控制后台监控中心搭建dubbo-admin就是后台服务,不过这里使用旧版本,也就是2.6以前的。它包括:控制后台,监控中心,简单注册中心。而新版的话是控制后台,控制后台包含了服务节点和前台,采用了前后端分离,但是不太稳定。下载:目前是到github上的dubbo-admin模块下载分支0.2.0的代码下载完后进入dubbo-monitor-simple目录,使用以下命令打包:mvn clean -Dmaven.test.skip=true package打包之后会生成一个target目录,在该原创 2021-03-28 22:44:57 · 116 阅读 · 0 评论 -
dubbo学习笔记(5):远程传输协议和序列化
RPC协议在一个典型的RPC使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件,其中RPC协议就指明了程序如何进行网络传输和序列化。也就是说一个RPC协议的实现就等于一个非透明的远程调用实现。通过下面一张图来理解:RPC协议组成分别说下每个部分的作用:1.地址:服务提供者的地址和端口2.运行服务:用于网络传输实现,常用的服务有:nettyminaRMI服务servlet容器(jetty、Tomcat、Jboss)3.报文编码:协议报文编码,分为请求头和请求体两部分原创 2021-03-20 17:55:30 · 676 阅读 · 0 评论 -
dubbo学习笔记(4):dubbo调用机制和容错策略
先通过一张图来了解大概的关系远程调用机制基本过程:客户端向服务端发送参数,并等待获取结果。如果调用过程出错则需要对异常进行处理。dubbo默认是使用同步调用的,还支持异步调用、并行调用、广播调用。同步调用对远程接口方法调用就属于同步调用。原理:向远程服务端发送参数后,整个线程将会阻塞,知道服务端将结果返回。dubbo远程调用传输是由专门的IO线程(非阻塞)完成的,调用线程把结果传递给IO线程后,会构建一个CompletableFuture,并通过它阻塞当前线程去等待结果返回,当服务端返回结原创 2021-03-17 17:15:15 · 880 阅读 · 0 评论 -
dubbo学习笔记(3):dubbo负载均衡算法
负载均衡dubbo支持的几种负载均衡算法一共有5种:算法名称配置值随机+权重random轮询+权重roundrobin最短响应short est response最少连接least active一致性哈希consistent hash权重默认为100public interface Constants { ... String WEIGHT_KEY = "weight"; int DEFAULT_WEIGHT = 10原创 2021-03-09 20:16:16 · 659 阅读 · 0 评论 -
dubbo学习笔记(2):注册中心zookeeper与redis
redis注册中心服务发布/dubbo/{服务名}/providers {提供者url1}: {有效期} {提供者url2}: {有效期}服务订阅/dubbo/{服务名}/consumers {订阅者url1}: {有效期} {订阅者url2}: {有效期}⼀个注册中⼼存储了多个服务、每个服务对应多个提供者和订阅者。每个服务的提供者的URL 作为接⼝map中的⼀个Key,与之对应的value 就是该提供者的有效期。有效期通常只有30 秒,dubbo通过⼀个维护线程,每隔30更新该时间。发布/订原创 2021-03-09 20:06:32 · 774 阅读 · 0 评论 -
dubbo学习笔记(1):dubbo与springboot集成
配置传递服务端设置超时时间超时时间配置为1000ms,但是睡眠了1110ms,然后启动服务端。客户端不做任何更改,然后启动客服端后访问服务,比如在命令端输入curl命令来访问接口地址。这时服务端并不会报超时异常,但是客服端会报超时异常org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer进入docker启动的zk客户端,进入bin目录,输入zkCli.sh原创 2021-03-09 19:50:33 · 125 阅读 · 0 评论 -
dubbo连接zookeeper报错Caused by: java.lang.IllegalStateException: zookeeper not connected
今天刚接触的时候使用dubbo连接zookeeper的时候报错,明明服务器开启了zookeeper服务的,最后想到可能是连接超时,所以将timeout属性设置大些 RegistryConfig registryConfig=new RegistryConfig("zookeeper://192.168.63.128:2181"); registryConfig.setTimeout(10000);//设置超时时间 serviceConfig.setRegist原创 2021-03-02 23:16:14 · 646 阅读 · 0 评论