前段时间因为用到了Dubbo的接口,所以学习了一下Zookeeper+Dubbo的RPC调用方式,总结了一篇Blog【SpringBoot学习笔记 十四】SpringBoot+Dubbo+Zookeeper集成开发,之前写这篇Blog的时候用的还是Dubbo2.7,今天就来学习下Dubbo的最新版本Dubbo3,实践部分还是基于Dubbo2.7。是什么:Dubbo是什么,基本概念是什么为什么:为什
问题表现:如果consumer-A异步调用provider-B,而provider-B本身又调用了provider-C。当provider-B调用provider-C时,会变成异步。
问题原因:是否异步调用取决于RpcContext中async的值,其次才是服务本身的配置。当A调用B时,会把async=true传给B的RpcContext;B调用C时,虽
转载
2024-06-28 20:58:36
48阅读
学习目标了解应用架构演进过程了解RPC远程调用方式掌握Dubbo框架的架构【重点】掌握Zookeeper注册中心的基本使用掌握Dubbo生产者和消费者的开发【重点】了解Dubbo的管理控制台的使用了解Dubbo的相关配置了解Dubbo的负载均衡(4种)了解Dubbo的配置中心(难点 代码 Watch)1. 应用架构的演进过程 【了解】1.1 主流的互联网技术特点分布式、高并发、集群、负载均衡、高可
概述治理和维护各个分系统参考官网:http://dubbo.apache.org/zh-cn/docs/user/references/registry/introduction.html (可中英文切换) 下载安装Zookeeperlinux 使用docker部署windows: 参考(),下载的zookeeper目录中需要包含lib(内置jar包,否则需要自己导入) 1
1. 安装zookeeper: 官网下载最新的zk, 我这里安装的是apache-zookeeper-3.9.2-bin.tar.gzApache ZooKeeper很简单,上传到指定目录,解压(tar -zxvf apache-zookeeper-3.9.2-bin.tar.gz),到bin目录下执行启动命令#启动
./zkServer.sh start
#查看状态
./zkServer.sh
1 Dubbo启动时检查、集群容错、负载均衡、线程模型的设置以及选项: 启动时检查:(1)Dubbo默认会在启动的时候检查依赖的服务是否可用,不可用时会抛出异常。阻止Spring初始化完成。以便上线时能及早发现问题。(2)默认check="true"dubbo.properties可以直接配置:dubbo.reference.check=false,
转载
2024-02-27 21:17:17
30阅读
两个微服务之间通过dubbo调用时,除了通过在方法中添加参数传递变量之外,如果有些公用变量,如用户session的信息,那么可以通过RpcContext来调用,今天我们来聊一下RpcContext的工作原理。首先看RpcContext中的一段代码:public class RpcContext {
private static final ThreadLocal<RpcContex
转载
2024-04-24 23:13:51
82阅读
文章目录一、前言二、简易demo三、源码分析1. AbstractClusterInvoker2. ConsumerContextFilter3. ContextFilter四、总结1. 个人的疑问 一、前言本系列为个人Dubbo学习笔记,内容基于《深度剖析Apache Dubbo 核心技术内幕》, 过程参考官方源码分析文章,仅用于个人笔记记录。本文分析基于Dubbo2.7.0版本,由于个人理解
转载
2024-05-06 11:02:05
333阅读
package com.ght.park.biz.api.filter;import com.alibaba.fastjson.JSON;import com.ght.park.biz.api.shiro.JwtUtil;imp
原创
2023-02-20 10:35:57
230阅读
什么是灰度发布灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期
转载
2024-08-29 22:50:58
198阅读
JS高级 学习笔记 day28 2021-5-171.2 Express框架特性提供了方便简洁的路由定义方式对获取HTTP请求参数进行了简化处理对模板引擎支持程度高,方便渲染动态HTML页面提供了中间件机制有效控制HTTP请求拥有大量第三方中间件对功能进行扩展2.1 什么是中间件中间件就是一堆方法,可以接受客户端发来的请求、可以对请求作出响应,也可以将请求继续交给下一个中间件继续处理中间件主要有两
这里把ExchangeCodec和DubboCodec放一起来讲解dubbo传输的底层协议组成以及它的编码解码过程。 传输协议协议格式<header><bodydata>协议头 :header 是16个字节的定长数据 = 2 //short类型的MAGIC = (short) 0xdabb+ 1 //一个字节的消息标志位,用来表
转载
2024-03-20 19:54:32
40阅读
服务调用学完了所有的基础知识,终于可以看服务调用的过程了,可以说是对之前学习的各个部分知识的一个串联。Dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。通过一张图了解 Dubbo 服务调用过程首先服务消费者通过代理对象 Proxy 发起远程调用,接着通过网络客户端 Client 将编码后的请求发送给服务提供方的网络层上
转载
2024-10-19 17:15:18
106阅读
RpcContext内部有一个ThreadLocal变量,它是作为ThreadLocalMap的key,表明每个线程有一个RpcContext。 1. RpcContext的一种用法是:存放Future。Future封装了consumer的请求和响应,发送请求时会创建Future对象,此时响应是nu
原创
2022-11-15 15:02:55
48阅读
使用Dubbo的RpcContext居然那么多坑!Dubbo RpcContext如何使用?Dubbo RpcContext实现原理?
原创
2022-08-04 16:32:40
1790阅读
前几天对接公司内部其他部门的系统,用dubbo调用,dubbo看起来很简单,但是却让我们调试了好久啊! 下面是调试纪录:1. 调用该服务时,直接调不通,查看错误为 no provider ? 然后就去查看该部门的服务是不是部署了最新的代码,并重新打包部署。 结果还是不行。然后去查看代码,发现暴露该接口的配置部分,由于某种原因,被注释掉了,哎呀,我去。 将暴露该接口的配置打开,重新部署,
转载
2024-04-05 13:45:50
44阅读
单体架构一个归档包(例如 war 格式或者 Jar 格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。也称之为单体应用架构,这是一种比较传统的架构风格。 单体架构优点:便于开发:只需借助 IDE 的开发,调试功能即可完成易于测试:只需要通过单元测试或浏览器即可完成测试易于部署:打包成单一可执行 jar 或者 war 包,完成 jar 或者 war 部署即可单体架构缺点:复杂性
这几天又学到了新知识:dubbo框架此框架很好的解决了我之前的Netty微服务框架中遇到的服务注册、管理的问题。于是拿来学学官网地址:http://dubbo.io/ 1、服务端的配置:dubbo可以与spring良好的结合,所以服务端的配置就比较简洁:<dubbo:application name="match-provider" />
<dubbo:prot
前言 前几天在测试环境碰到一个非常奇怪的与 dubbo 相关的问题,事后我在网上搜索了一圈并没有发现类似的帖子或文章,于是便有了这篇。 希望对还未碰到或正在碰到的朋友有所帮助。 现象 现象是这样的,有一天测试在测试环境重新部署一个 dubbo 应用的时候发现应用“启动不起来”。 但过几个小时候之后又能自己慢慢恢复,并能够对外提供 dubbo 服务。 但其实经
转载
2024-05-15 06:04:37
164阅读
一.rpm(red hat package manger)安装及移除软件包:rpm-i 安装软件-U 升级旧版本的软件-e 移除/erase(删除)软件-v 显示详细的处理信息-h 显示安装进度,卸载不能用二.rpm查看软件包的信息1.rpm -ivh name 安装软件包2.rpm -qi name 查看软件包的安装信息3.rpm -ql name 查看软件包安装在哪个位置4.rpm