sharedCode源码交流

纯Java技术公众号,sharedCode ,添加微信 daringzyh ,备注 “加群” , 一起成长

ThreadLocalRandom随机数源码分析

ThreadLocalRandom介绍 ThreadLocalRandom是JDK1.7以后提供出来的一个随机数生成工具类,性能比传统的Math.random()更高。 性能比较 ThreadLocalRandom和Math.random()的性能比较,测试步骤如下: public class T...

2019-05-08 18:47:22

阅读数 35

评论数 0

一起了解一下微服务

版权声明:尊重博主原创文章,转载请注明出处 https://blog.csdn.net/eson_15/article/details/83651732 通常而言,微服务架构是一种架构模式或者说一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个...

2018-11-04 15:07:48

阅读数 181

评论数 0

dubbo系列之内核SPI-Protocol扩展类生成(九)

前文回顾 上一篇文章我们讲到,扩展实现类的类上如果写上了@Adaptive注解,则可以直接取得扩展实现类对象,其他的需要通过字节码生成技术来生成对象,接着上文的代码讲解,调用createAdaptiveExtensionClass方法生成扩展实现类对象 createAdaptiveExtensio...

2018-11-01 11:12:28

阅读数 154

评论数 0

dubbo系列之内核SPI-资源解析&依赖注入(八)

前文回顾 上文中,我们了解了dubbo的SPI机制,针对Protocol的SPI实现讲解了一半,讲到了Protocol生成好了ExtensionLoader以及其内部的ExtensionFactory , 本文继续讲解接下来的代码,建议没看过上一篇文章的朋友可以先去看下一,直接看本文会比较懵逼 ...

2018-10-26 10:12:35

阅读数 180

评论数 0

dubbo系列之内核SPI拓展机制初识(七)

前言 dubbo为了适应不同的注册中心,底层通讯协议等功能的扩展,采用SPI的思想,即Service Provider Interface , 也就是我们定义了服务接口标砖,让服务商去实现。 jdk通过ServiceLoader类实现了SPI机制的服务查找功能,有兴趣的可以去网上搜一下jdk的...

2018-10-24 10:22:32

阅读数 149

评论数 0

dubbo系列之ServiceBean介绍(六)

前言 前面几篇文章中,我们了解了spring是如何解析@Service,@Reference注解的,今天主要讲的是服务暴露者的一个非常重要的类,ServiceBean , 每个暴露出去的服务都会生成一个ServiceBean. ServiceBean 该类的继承实现关系如下 public cla...

2018-10-22 10:11:51

阅读数 491

评论数 0

dubbo系列之@Reference注解解析原理(五)

前言 上文中我们讲解了@Service注解的解析原理,了解到Dubbo默认支持两种方式进行解析,一种是通过springboot 自动配置来做的,另外一种是通过DubboComponentScan 注解来解析的,本文继续也是以DubboComponentScan 的方式来讲解的。 源码入口 c...

2018-10-18 10:19:18

阅读数 9276

评论数 0

dubbo系列之@Service注解解析原理(四)

前言 前面几篇文章,讲的是调试环境搭建,配置解析读取,本文讲的是dubbo如何解析@service注解的,了解这些东西对于真正使用dubbo来说,没有直接的东西,但是这个是我后面要写的dubbo核心功能源码解析的前提,前后连贯,这样才能了解的更加清晰一点。 解析入口 @service注解解析入口有...

2018-10-16 10:23:01

阅读数 3825

评论数 0

dubbo系列之spring boot核心配置读取(三)

版本说明 springboot starter : 0.1.1 dubbo版本: 2.6.2 自动配置类 @Configuration @ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled&am...

2018-10-15 10:15:46

阅读数 2246

评论数 0

dubbo系列之xml解析原理NamespaceHandler(二)

前言 上一节中我们基于springboot搭建了dubbo的基本用例,能够使用dubbo的基本功能,在dubbo重新开源之前,大部分人都是通过spring的xml文件进行配置的,基于这个背景,有必要讲一下dubbo是怎么解析xml文件,生成代理对象的。 版本说明 springboot starte...

2018-10-11 10:50:02

阅读数 329

评论数 0

dubbo系列之springboot 调试环境搭建(一)

前言 本文是dubbo系列的第一篇,在正式讲解dubbo的源码之前,需要搭建一套dubbo的样例,用于我们阅读源码以及理解dubbo的核心功能,本文是以springboot为基础的,其他的通过xml配置的太麻烦了。 版本说明 springboot starter : 0.1.1 dubbo版本: ...

2018-10-10 10:19:47

阅读数 650

评论数 0

zipkin+sleuth基于apollo配置中心动态刷新采样率(十四)

前言 前文我们介绍过,自定义采样率,但是为了满足项目的灵活性,我们最好可以提供在程序运行过程中,可以动态的修改 采样率等信息,如此才能应对项目运行当中碰到的各种问题。 项目运行过程中,我们可能会遇到下面这些问题。 1.某个接口的采样率现在比较高? 我想调低一点怎么办? 2.这个接口太频繁,并且没有...

2018-09-29 10:13:23

阅读数 457

评论数 0

sleuth+zipkin系列之异常处理(十三)

前言 本文的异常处理分为两种,第一种讲的是zipkin原生的异常处理,第二种就是针对实际业务做异常处理的扩展,本文的重点讲的是如何根据自身的实际情况定制异常处理。 zipkin通过对span打tag,打上error的tag表示这次调用出错了。 zipkin异常处理 zipkin的默认会捕获没有被应...

2018-09-28 10:01:54

阅读数 492

评论数 0

zipkin+sleuth定时任务生成全局调用链(十二)

问题背景 github提供的方式,是一个zipkin-dependencies-xxx.jar ,通过启动这个jar包生成调用链,这个jar包启动后,执行一次线程就会自动结束了,这在生产环境是不可忍受的。 准备 在github上下载最新的 release源码。 https://github.com...

2018-09-26 10:12:56

阅读数 349

评论数 3

sleuth+zipkin请求URI路径动态参数-改造方案(十一)

前言 上一节我们了解到,如果URI上面有动态参数,那么默认的sleuth拿到的不是真实的接口路径,这会导致后续我们做接口调用链的统计的时候会有问题,本文基于 sleuth1.2.6版本, 低于这个版本,这种方案无效。 新建Filter 新建traceLocalFilter , 该类继承Trace...

2018-09-25 10:25:15

阅读数 307

评论数 0

sleuth+zipkin请求URI路径参数问题(十)

问题背景 应用系统中controller代码如下 @RequestMapping("/test/{id}") public String test(@PathVariable("id")Inte...

2018-09-21 11:34:32

阅读数 329

评论数 0

sleuth+zipkin自定义采样率(九)

问题背景 zipkin原生提供的采样率设置,仅能针对全局进行设置,无法做到精细化设置,比如,有些接口我们觉得比较重要,所以想采样率高一点,有些接口很简单,我们希望不采集或者采集率设置低一点,原生是没办法做到的,需要完成这个功能,需要我们重写他的采样率计算器。 配置重写 下面的是他原生的配置,由于它...

2018-09-20 13:55:34

阅读数 885

评论数 3

sleuth+zipkin系列之禁用URI调用链(八)

问题背景 在实际生产中,我们有可能会碰到有些接口,有些URI我们不想追踪,不想产生追踪数据,这个时候可以使用sleuth的追踪跳过的机制,默认sleuth已经禁用了如下URI,下面的URI访问系统的时候是不会被追踪的。 spring: sleuth: web: skip-p...

2018-09-18 10:19:59

阅读数 532

评论数 0

sleuth+zipkin核心配置源码解析(七)

源码入口 直接查看sleuth的starter包,找到spring.factories文件,基于springboot的自动配置机制 # Auto Configuration org.springframework.boot.autoconfigure.EnableAutoConfigura...

2018-09-17 11:21:54

阅读数 626

评论数 0

sleuth+zipkin日志输出traceId(五)

日志配置 在需要追踪的示例应用中,修改日志配置,这里使用springboot构建,logback作为日志输出工具 <property name="FILE_LOG_PATTERN" value=&am...

2018-09-14 10:17:09

阅读数 2274

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭