- 博客(13)
- 问答 (2)
- 收藏
- 关注
原创 dubbo采坑集锦:dubbo消费者端catch异常失败 及 ExceptionFilter分析
问题描述:消费者端调用服务者端的接口,服务端抛出一个自定义异常,该异常继承了RuntimeException,但是消费者端Debug发现catch到的是RpcException,RpcExcetion为dubbo的异常,为什么服务提供者的返回的是自定义异常却变成了RpcException?原因分析:代码1. 服务端代码接口:public interface DubboExcepti...
2019-10-24 12:33:24 2531
原创 dubbo源码分析目录
step1浅谈jdk-spi与dubbo-spistep2dubbo-spi源码分析step3dubbo源码分析:服务暴露step4dubbo源码分析:服务引用step5dubbo源码分析:服务调用
2019-09-10 10:02:51 464 1
原创 guava-RateLimiter实现限流
@TOC限流的几种方式(1)信号量Semaphore:主要是限制代码块内线程执行数(2)Redis计数器(3)通过线程池的拒绝策略(4)guava-RateLimiter。。。在这里主要讲解一下guava-RateLimiter实现的限流方式限流的两种算法令牌桶算法令牌桶算法只限制放令牌匀速放(桶的最大量限制),不限制怎么取令牌,令牌取完了也就达到了限流的操作,拿到一个令牌才...
2019-08-26 17:29:08 1114
原创 dubbo源码分析:服务调用
文章目录1. 服务调用方式2. 服务消费方发送请求2.1. 发送请求2.2 请求数据编码3. 服务提供者端接受请求3.1. 请求数据解码3.2. 调用服务3.2.1. 线程派发模型3.2.2. 调用服务3.3. 服务提供方返回调用结果4. 服务消费方接收调用结果4.1. 响应数据解码dubbo 服务调用过程比较复杂,包含众多步骤,比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及...
2019-08-07 12:20:12 1759
原创 ReentrantLock源码分析:非公平锁与公平锁
1. AQS分析ReentrantLock是基于AQS的,先来分析下AQS(1)AQS/** 头指针 */private transient volatile Node head;/** 尾指针 */private transient volatile Node tail;/** 表示资源的可用状态,每次线程加锁state会加1,通过cas来操作state,初始值为0...
2019-08-02 10:38:55 4462
原创 你真的了解dubbo配置优先级吗?
我们经常会遇到的一个问题是,多个地方设置timeout配置,到底以哪个配置为准?来看下边这张图,一目了然。其他配置属性同理:retries, loadbalance…dubbo配置的优先级:(1)方法 > 接口:方法级别的配置总是优于接口级别的配置,很显然,提供者端的方法配置优先级要高于消费者端的接口配置(2)消费者 > 提供者(3)全局配置优先级最低...
2019-08-01 11:21:24 7224
原创 dubbo源码分析:服务引用
服务引用的方式(1)服务直连的方式引用服务(2)基于注册中心引用服务服务引用的入口(1)饿汉式:spring容器启动时调用ReferenceBean#afterPropertiesSet()#getObject(),可以通过dubbo:reference 的 init=true开启饿汉式,默认为懒汉式(2)懒汉式:默认为懒汉式,服务被注入到其他类中时引用,ReferenceBea...
2019-08-01 11:19:26 11394 1
转载 一套图 彻底明白了“时间复杂度”
https://blog.csdn.net/qq_40061421/article/details/84103264
2019-07-27 18:00:44 956
原创 dubbo源码分析:服务暴露
服务暴露以一个demo为例:Provider:public interface ProviderExport { String providerExport(String name);}public class ProviderExportImpl implements ProviderExport { @Override public String pro...
2019-07-27 11:44:39 8025
原创 dubbo-spi源码分析
1.1. ExtensionLoader getExtensionLoader(Class type)/** * 根据扩展接口获取ExtensionLoader,一个扩充接口只会对应一个ExtensionLoader * 整体逻辑: * (1)校验扩展接口是否有@SPI注解 * (2)从缓存中获取与拓展接口对应的ExtensionLoader * (3)若缓存未命中,则创建一个新的实例...
2019-07-26 11:37:46 6516 1
原创 浅谈jdk-spi与dubbo-spi
关于SPI:关于SPI的概念,此处不再过多撰述,一句话:接口的实现的发现机制我们直接来看两个案例1. jdk-spi示例:定义一个接口:Animalpublic interface Animal { void say();}定义两个实现类public class Cat implements Animal { @Override public void ...
2019-07-11 22:50:51 6883 1
原创 Disconnected from the target VM, address: '127.0.0.1:57362', transport: 'socket'
启动项目出现如下问题启动失败但未报错。。。原因分析启动失败,理论上是应该会有日志的,突然想到可能是异步日志导致,主线程结束了,异步日志也无法打印了解决暂时禁用异步日志,再次启动,如下...
2019-05-22 17:25:04 10539 2
原创 Failed to process import candidates for configuration class [.........Application] .... AutoConfigu
这里写自定义目录标题问题:springboot启动时报如下错误原因分析解决方案问题:springboot启动时报如下错误Failed to process import candidates for configuration class […Application] … AutoConfigure cycle detected between TransactionAutoConfigur...
2019-05-16 11:56:55 63891 2
空空如也
关于hash_hmac("MD5", "aa=11&bb=2&c=lai")
2017-08-20
在java官网什么地方能查看到java运行时候的内存说明或图解说明
2017-05-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人