自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hashcon

曾任职于顺丰,华为,网易等公司,从Java小白,成长为资深开发与项目组首席架构师。喜欢源码与开源,曾贡献 MyCat1.6 与 JFRUnit 核心源码,贡献过Spring Cloud,Apache RocketMQ,Apache Bookeeper,Du

  • 博客(10)
  • 收藏
  • 关注

原创 Spring Cloud Eureka 全解 (7) - 生产配置最佳实践

本文基于SpringCloud-Dalston.SR5可以实现比较快的服务上下线:EurekaServer配置:#eureka server刷新readCacheMap的时间,注意,client读取的是readCacheMap,这个时间决定了多久会把readWriteCacheMap的缓存更新到readCacheMap上#默认30seureka.server.respons

2018-01-24 17:47:46 63015 9

原创 Spring Cloud Eureka 全解 (6) - 一些热门QA

本文基于SpringCloud-Dalston.SR5Eureka服务实例启动时,是否会立刻向EurekaServer注册?是的,立刻会。EurekaClient在每次实例状态发生改变时,有一个Listener:statusChangeListener = new ApplicationInfoManager.StatusChangeListener() { @Ov

2018-01-24 17:44:02 16049 2

原创 Spring Cloud Eureka 全解 (5) - 自我保护机制

本文基于SpringCloud-Dalston.SR5自我保护机制 关闭自我保护机制(默认是打开的):eureka.server.enable-self-preservation=false自我保护机制:默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务

2018-01-24 17:07:36 62452 6

原创 Spring Cloud Eureka 全解 (4) - 核心流程-服务与实例列表获取详解

本文基于SpringCloud-Dalston.SR5关于服务与实例列表获取EurekaClient端我们从Ribbon说起:EurekaClient也存在缓存,应用服务实例列表信息在每个EurekaClient服务消费端都有缓存。一般的,Ribbon的LoadBalancer会读取这个缓存,来知道当前有哪些实例可以调用,从而进行负载均衡。这个loadbalancer同样也有缓

2018-01-24 16:29:58 34340

原创 一次由于YoungGC引起的性能问题分析

问题现象应用用druid连接池,设置慢SQL时间为500ms。在线上应用报了一些但是不多的慢查询日志,并且这个慢查询日志居然是单条插入的语句。后台数据库是MySQL,有查询统计日志监控,并没有发现很慢的插入语句。觉得很奇怪,需要仔细定位下问题定位为了确认问题,搭建压测环境,并在应用和MySQL所在的机器上进行抓包分析。压测开始后,又发现了很多是单条插入语句的慢查询日

2018-01-19 12:26:26 12578

原创 Log4j2一些tips与最佳实践

Log4j2相对于log4j来说扩展了多种接口,并重新定义了日志记录流程,并且引入了一些框架例如Disruptor来加速。Log4j2无论在日志记录上,还有效率速率上都相对于log4j有很大的进步,下面我们来看一些比较有意思的使用和配置的最佳实践。使用Tip1.方法参数使用Java8 lambda表达式:在java8之前,有时候log日志的参数是某个方法,可能很耗时,为了提高性

2018-01-15 18:23:33 14093

原创 Tomcat容器下Zuul网关加解密后的第一次请求出现400错误的问题

问题现象某些前端发来的请求会在前端加密发送到网关,并在网关解密之后发到真正的微服务,并将结果加密返回给前端。 实现网关加密后,发现一次加密请求后,紧接着的非加密GET请求,就会出现400的错误。再发一次相同的GET请求,就会正常,观察后端微服务的收到网关请求的accessLog,发现接收到的请求解析有问题:## 400的请求- - - [04/Jan/2018:19:48:30 +

2018-01-05 17:37:32 16440 1

原创 Lambda表达式最佳实践(1)入门与介绍

Java8引入了Lambda表达式特性,这些是通过java.util.function这个包实现的。所有的Lambda表达式都是这个包下的其中一类。我们来看下这个包java.util.function:可以看到很多有@FunctionalInterFace的接口,@FunctionalInterFace代表这个接口只有一个抽象方法。从命名,我们可以猜测出一些接口的作用。比如,Pre

2018-01-16 16:31:30 4178

原创 异常堆栈转为String以及运行时获取调用栈

纯Java实现public class ExceptionUtils { public static String getStackTrace(Exception e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printSta

2018-01-02 20:40:10 6571 3

原创 Java NIO2包WatchService解析与运用

背景我们在用IDE写代码,或者某些文本编辑器的时候,在外部如果修改了这个文件,通常这些编辑器都能感知到,有些还会提示你是否要重新加载,例如notepad++: 这些特性都是基于文件系统的文件变化通知实现的。我们可以通过一些方式监控某些文件或者文件夹的变化,但是很难做到ScalableJava7之后的NIO2包的WatchService提供了一种Scalable的方式监控文件与文件夹变化代码解析pu

2018-01-02 16:54:38 5718

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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