java
文章平均质量分 58
人在码途~
攻城狮一个,搞搞技术,谢谢代码
展开
-
java中的spi原理
摘要 系统里抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。面向的对象的设计里,我们一般推荐模块之间基于接口编程,模块之间不对实现类进行硬编码。一旦代码里涉及具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。 为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。java spi就是提供...原创 2018-08-30 18:41:02 · 1540 阅读 · 0 评论 -
使用Guava RateLimiter限流以及源码解析
前言在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流缓存 缓存的目的是提升系统访问速度和增大系统处理容量降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理常用的限流算法漏...原创 2018-08-28 17:43:46 · 1958 阅读 · 0 评论 -
Spring中的ApplicationContextAware接口的使用
Spring中的ApplicationContextAware接口的使用这个接口的作用当一个类实现ApplicationContextAware接口后,当这个类被spring加载后,就能够在这个类中获取到spring的上下文操作符ApplicationContext,通过ApplicationContext 就能够轻松的获取所有的spring管理的bean。使用详解通过实现...原创 2018-08-29 10:13:58 · 4149 阅读 · 0 评论 -
以16进制的形式查看java class二进制文件
首先创建java文件 HelloWorld.javapublic class HelloWorld { public static void main(String[] args) { String s = "Hollo World"; }}编译javac HelloWorld.java生成class文件 HelloWorld.class查看cl...原创 2018-11-02 17:11:39 · 7222 阅读 · 0 评论 -
Hystrix超时逻辑源码分析
问题:Hystrix的超时时间,是否包含任务在队列里的等待时间回答:包含解析如下:在把任务加入线程池中,先开启计时器,延迟超时时间检查任务状态。在哪开启的,截图中的HystrixObservableTimeoutOperator的添加timer开启定时器,到达超时时间执行listener.tick() , 也就是上层中的tick()实现中。最后通过fallback()将超时异常返...原创 2019-04-19 10:04:12 · 813 阅读 · 0 评论