- 博客(26)
- 资源 (5)
- 收藏
- 关注

原创 深度解析dubbo源码系列
以下文章均基于dubbo v2.6.1持续更新中…dubbo spi 扩展技术,框架基石《深度解析dubbo扩展技术dubbo spi(注解)》《深度解析dubbo扩展技术dubbo spi(实现二)》《深度解析dubbo扩展技术dubbo spi(自适应实现)》《深度解析dubbo扩展技术dubbo spi(自动激活实现)》服务暴露《深度解析dubbo服务本地暴露(injvm)》《深度解析dubbo服务远程暴露(一)》《深度解析dubbo服务远程暴露(二)》《深度解析dubbo
2020-07-27 16:48:33
1714
原创 深度解析dubbo过滤器之ContextFilter
本文基于dubbo v2.6文章目录1.RpcContext2. 使用RpcContext2.1 公共接口2.2 服务调用者端2.3 服务提供者2.4 测试2.5 这个能干啥3.原理解析1.RpcContextdubbo提供了一个调用上下文用来给服务提供者或者服务调用者传递一些信息,它只会在当前这个调用链上生效,比如说我服务调用者的某个方法中有两个rpc调用,然后分别调用同一个或者不同的服务提供者的某个方法,这个两个rpc调用就会有两个context,你可以往对应的context中塞东西,然后对应的服
2020-07-31 23:57:21
331
原创 深度解析dubbo过滤器之回声测试
本文基于dubbo v2.6.1文章目录1.什么是回声测试2. 回声测试使用2.1 服务提供者编码2.2 服务调用者编码2.3 调用测试3. 原理解析3.1 服务调用者端3.2 服务提供者端1.什么是回声测试我这里引用官方的解释:回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否通畅,可用于监控。我们可以看出来这个回声测试其实就是检测服务是否可用的,看看调用是否畅通。2. 回声测试使用我这里使用注解的方式使用一下这个回声测试,如果想了解xml配置的方式可以
2020-07-30 22:44:07
104
原创 深度解析dubbo过滤器Filter
本文基于dubbo v2.6.1阅读本篇文章需要有dubbo 服务暴露,服务引用,dubbo spi 机制的基础,如果没有,还请移步《深度解析dubbo源码系列》将这三部分内容吃透,本文在讲解的过程中尽量上下联系起来,造成不适还请谅解。文章目录1. 介绍2. Filter链形成时机2.1 Filter接口2.2 服务提供者2.3 服务调用者2.4 ProtocolFilterWrapper1. 介绍当我们使用服务提供者调用服务提供者的时候,会经过一系列的Filter链,注意,这个Filter链在
2020-07-29 21:51:47
400
原创 深度解析dubbo注册中心(api)
本文基于dubbo v2.6.11.注册中心module预览在2.6版本,注册中心模块是以子项目的形式存在的,我们先来看看dubbo-registry 子项目的目录(加粗黑的的是本版的实现的,其他是高版本实现的)其中 dubbo-registry-api模块主要是定义了注册中心的接口与注册中心Factory,再就是RegistryDirectory与RegistryProtocol类还有一些周边support本篇主要就是介绍注册中心的接口定义2.接口介绍2.1 RegistryService
2020-07-27 17:45:56
284
原创 深度解析dubbo在线运维Qos
***注:本文基于dubbo v2.6.1 ***1. dubbo的QosQoS的英文全称为"Quality of Service",中文名为"服务质量"。在dubbo 2.5.8 新版本增加了 QOS 模块,提供了新的 telnet 命令支持。dubbo管它叫在线运维命令,我们可以通过它能够看到服务提供者状态,服务调用者状态,现在dubbo提供了 ls , online,offline,help ,quit命令。命令用途ls能够列出来该实例服务提供者与调用者状态onlin
2020-07-24 18:44:47
1049
4
原创 Spring Cloud Alibaba之nacos注册中心使用篇
文章目录1.环境准备1.1 nacos server单机部署1.2 代码环境2. 简单集成使用2.1 父工程改造2.2 订单服务改造2.2.1 pom 依赖2.2.2 配置文件2.2.3 主启动类2.2.4 对外提供服务2.2.5 启动服务2.3 用户服务改造2.3.1 常规改造2.3.2 controller 改造2.3.2.1 fegin方式调用2.3.2.2 restTemplate方式调用2.3.3 启动注册2.4 调用测试本文基于 spring cloud alibaba v2.1.0
2020-07-21 23:47:42
496
原创 深度解析dubbo服务调用请求处理流程(提供者端)
注:本文基于dubbo v2.6.1在前几篇文章《深度解析dubbo服务invoke响应处理流程(调用者端)》《深度解析dubbo服务调用invoke流程(调用者端)》分别讲解了消费者端 调用流程与处理提供者端响应的流程,下图红色箭头这两部分。本篇文章将对服务提供者的请求流程以及处理流程进行解析。(图1)首先我们看下服务提供者 netty server 调用链(图2)以服务提供者者为基准,请求信息 属于input ,也就是按照顺序执行,先执行decode,然后再执行NettyServerHan
2020-07-21 19:05:01
445
原创 深度解析dubbo服务invoke响应处理流程(调用者端)
注:本文基于dubbo v2.6.1在上篇《深度解析dubbo服务调用invoke流程(调用者端)》我们介绍了调用者端从代理类到netty发送消息整个invoke流程(下图 黄色箭头部分)。那么本篇将介绍服务提供者端响应回来结果我们调用端是怎么处理的,也就是下图红色箭头的部分本文不会讲太细节的东西,只是过下整个流程。在上文中我们讲过,NettyClient往netty的pipe中添加了三个handler,我们说过in的时候netty的handler是顺序执行的。在这里也就是先decoder ,接着
2020-07-20 23:41:07
605
原创 深度解析dubbo服务调用invoke流程(调用者端)
注:本文基于dubbo v2.6.1当我们在调用某个服务提供者暴露出来的接口的时候,实际上调用的是dubbo框架帮我们生成的代理类,例如我们现在有个服务提供者暴露的接口public interface IHelloProviderService { String getName(Integer id);}我们在启动服务的时候,dubbo会帮我们生成一个Proxy代理类,我们可以看下这个代理类的样子(之前我们在《深度解析dubbo服务远程引用(创建Proxy流程)》这篇文章中末尾曾经说过,现
2020-07-20 18:17:22
1081
4
原创 深度解析dubbo服务远程引用(创建Proxy流程)
注:本文基于dubbo2.6.11.com.alibaba.dubbo.config.ReferenceConfig#createProxy在《深度解析dubbo服务本地引用(injvm)》一文中,我们分析了dubbo的本地引用,本文接着ReferenceConfig#createProxy 方法下下半部分接着分析。if (isJvmRefer) {// jvm ...} else { if (url != null && url.length() > 0) { /
2020-07-16 22:38:26
521
原创 SpringCloud之Config配置中心理论篇
1.分布式配置中心1.1 什么是分布式配置中心首先我们可以先理解下配置中心,配置中心就是集中管理配置文件的一个系统,分布式配置中心就是管理分布式项目配置文件的系统,将各个项目中的配置文件抽出来,然后集中管理,比如说我们的数据源配置,redis配置,mongodb配置,kafka配置等等这些配置信息抽离出来,然后交给分布式配置中心来管理这些配置信息。1.2 出现的背景随着微服务架构的普及,服务根据不同的拆分粒度拆分的越来越多,服务的管理难度就会增大,配置信息的管理就在其中,比如说我们有这么一个需求,需
2020-07-14 23:22:48
460
原创 单体架构多数据源事务解决方案
单体架构多数据源事务解决方案文章目录1. 本文适合场景2. 解决方案3. 使用演示1. 本文适合场景2. 解决方案3. 使用演示
2020-07-13 23:34:35
270
原创 SpringCloud之Zuul网关使用篇
文章目录1. 环境准备2.使用2.1 路由介绍2.2 过滤器介绍1. 环境准备2.使用2.1 路由介绍2.2 过滤器介绍
2020-07-11 23:33:58
639
2
原创 SpringCloud之Sleuth+Zipkin链路追踪使用篇
1.环境准备1.1 mysql准备由于本篇需要使用zikpin对链路信息进行保存,需要使用到mysql环境,mysql安装链接:《linux下安装mysql-5.7.25详细步骤》1.2 服务准备我们本篇文章还将继续使用《SpringCloud之Gateway使用篇》文中环境,如果没有还可以根据服务清单准备环境服务清单:服务解释端口spring-cloud-parent父工程,管理依赖版本与公共依赖,下面服务皆是子模块,springcloud版本Greenwich.REL
2020-07-11 12:46:50
1103
原创 SpringCloud之Stream学习篇
1. springcloud stream介绍1.1 mq产品介绍我们在项目开发或多或少的用过或者听说过mq吧,官方名称叫消息中间件哈,现在主流的mq产品有activemq,rabbitmq,rocketmq,kafka,它们主要被用来应用解耦,流量削峰,消息传递,异步处理,日志处理等等。我们先来看一下传统消息中间件的模型由消息生产者,消息中间件产品,消息消费者组成。消息生产者:顾名思义,就是生产消息的,也是消息的投递者,将消息投递给消息中间件。消息中间件:这个其实就是咱们上面说的那些具体的产
2020-07-09 23:40:04
1443
1
原创 RabbitMQ安装
1. linux安装1.1 下载erlang wget http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm1.2 安装erlangrpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm1.3 下载socatwget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rp
2020-07-09 19:32:28
145
原创 详解分布式ID解决方案
1.为什么使用分布式ID2.UUID生成分布式ID3.数据库主键4.雪花算法5.Redis的incr生成6.zookeeper生成
2020-07-05 11:57:52
1328
原创 SpringCloud之Feign使用篇
SpringCloud之Feign使用篇1.环境准备2.简单使用3.负载均衡配置4.熔断器配置5.压缩配置6.日志配置
2020-07-04 00:03:24
1572
原创 集群环境下时间同步问题解决
1.场景介绍比如说我现在项目部署在若干的服务器上面,然后构成整个集群,如果我们每台服务器的时间不一致,我们在业务代码里面拿到的时间也就不一致,这时候不管我们往数据库插入数据的create_time 还是修改数据update_time 还是我们使用时间计算,定时任务等等都会发生错乱,造成数据错乱,所以我们需要对集群下的服务器时间进行同步。我们对时间同步分为两种情况,一是所有的服务都能连接外网,二就是有一台服务器能够连接外网,其余服务器能够与这台机器内网通信2. 服务器均能连接外网所有机器都能够访问外网
2020-07-02 22:44:17
2370
原创 SpringCloud之Hystrix使用高级篇
1.环境准备2.Hystrix高级应用3.Hystrix Dashboard监控仪表盘4.Hystrix Turbine聚合监控
2020-07-01 22:29:42
2718
2
JAVA核心知识点整理
2020-10-19
RocketMQ可视化控制台
2020-10-19
java线上诊断工具arthas
2020-07-03
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝