7 夜宿山寺

尚未进行身份认证

利剑无意,软剑无常,重剑无锋,木剑无滞,无剑无式

等级
TA的排名 2w+

log4j是如何拖慢你的系统的

log4j 引起的线上事故1 问题起因这个是在生产环境中发生的问题,第一次事故因为别人把大量的请求打来过来,猜测是机器扛不住,后来量少后发现问题不存在了,大致把问题定位是因为量的问题,也就准备后续的扩容,大概过了几个月,线上又发生了一次事故,事故的特征排查之后的特征就是打印log的速度非常慢,而且nginx处理速度也慢,同一个请求两个条日志之间间隔了好几秒, 经过运维排查后,是

2017-11-21 16:04:30

google authenticator 工作原理

google authenticator TOTP文档https://tools.ietf.org/html/rfc6238实现源码 Google authenticator版本https://github.com/google/google-authenticator-android1.拿到HMACSHA1计算之后的签名static Signer getSigningOracle(String s

2017-08-29 17:49:54

SpringBoot中级教程之SpringBoot自定义配置(十一)

SpringBoot中级教程之SpringBoot自定义配置(十一)前言首先力推下我的开源项目http://git.oschina.net/wangkang_daydayup/swagger-doc 这是一个完全利用spring boot开发的项目,拯救了springfox-swagger污染代码的问题,完全利用java-doc来实现,学习成本几乎是01.介绍在Spring的代码中随处可见的@Ena

2017-07-18 16:14:43

swagger-doc 让你high起来的swagger

swagger-doc重点先说说这个项目解决了什么问题这个项目跟swagger有着很大的联系,总得来说是给swagger解决了大部分人不想用swagger的问题,污染代码。大家可以来看看这是我之前用swagger的时候的代码@GetMapping("/v1/index/banner")@ApiOperation(value = "获取首页Banner", response = BannerJso

2017-07-13 19:16:03

C开发第一章配置Vim编辑器

开篇前言工欲善其事,必先利其器,我是一个C的小白,要说学过c语言,只能是大一上学期学了一个月,经过这几年的工作,发现基础比较重要,而且在java上感觉进步也不是太大了,想多了解一些底层原理和语言之间的差别,也许有人问为什么不学go,其实我也想过,不过仔细思考了现在自己的一个程度,其实语言并不是什么问题,因为在这之前简单的搞过python、php、js等语言,基本到能写业务代码也就几天而已。学c是为了

2017-01-12 16:49:11

SpringBoot初始教程之SpringBoot-Metrics监控(十)

SpringBoot初始教程之SpringBoot-Metrics监控(十)1.介绍Metrics基本上是成熟公司里面必须做的一件事情,简单点来说就是对应用的监控,之前在一些技术不成熟的公司其实是不了解这种概念,因为业务跟技术是相关的当业务庞大起来,技术也会相对复杂起来,对这些复杂的系统进行监控就存在必要性了,特别是在soa化的系统中,完整一个软件的功能分布在各个系统中,针对这些功能进行监控就更

2016-11-21 17:12:06

SpringBoot初始教程之Tomcat、Jetty优化以及Https配置(九)

SpringBoot初始教程之Tomcat、Jetty优化以及Https配置(九)1.介绍在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署。 2. 方便项目启动,不需要下载Tomcat或者Jetty在目前的公司已经把内置的Jetty部署到了线上项目中,目前来说并无太大问题,内置就算有一些性能损失,

2016-11-21 11:38:03

SpringBoot初始教程之测试(八)

SpringBoot初始教程之测试(八)1.介绍在为参加工作之前也写过测试用例,当时主要是针对外包项目的,其实总的来说主要是用来跑数据当做main方法使用,但基本不经常写,随着工作年限的增长。 渐渐的写了很多测试用例,主要是针对以下两种原因:项目代码量庞大,每次迭代的任务不是很多。公司有发布系统,每次提交代码到git都会触发编译,部署。为了保障改了之后的代码能够正常运行,至少不报明显错误。

2016-11-19 14:23:15

SpringBoot初始教程之Servlet、Filter、Listener配置(七)

SpringBoot初始教程之Servlet、Filter、Listener配置(七)1.介绍通过之前的文章来看,SpringBoot涵盖了很多配置,但是往往一些配置是采用原生的Servlet进行的,但是在SpringBoot中不需要配置web.xml的 因为有可能打包之后是一个jar包的形式,这种情况下如何解决?SpringBoot 提供了两种方案进行解决2.快速开始2.1 方案一方案一采用原生

2016-11-10 16:07:31

SpringBoot初始教程之数据库连接池(druid)(六)

SpringBoot初始教程之数据库连接池(druid)(六)1.介绍Druid是一个JDBC组件库,包括数据库连接池、SQL Parser等组件。DruidDataSource是最好的数据库连接池。SpringBoot支持任何一种数据库链接池的配置,在这里用druid作为例子进行讲解2.快速开始这块先以Spring的JdbcTemplate为列子进行讲解pom.xml <?xml vers

2016-11-09 12:00:56

SpringBoot初始教程之热部署(五)

SpringBoot初始教程之热部署(五)1.介绍SpringBoot提供了一个maven插件来支持热部署spring-boot-devtools,仅仅是在开发环境中使用,如果已经打包了就无法使用。 <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

2016-11-08 16:06:48

SpringBoot初始教程之Redis集中式Session管理(四)

SpringBoot初始教程之Redis集中式Session管理(四)1.介绍有关Session的管理方式这里就不再进行讨论,目前无非就是三种单机Session(基于单机内存,无法部署多台机器)、基于Cookie(安全性差)、基于全局的统一Session管理(redis、mysql)等多种方式 针对于像淘宝这种超大型网站来说Session如何管理的就无从得知了、但是可以通过yy的方式想象一下,这种

2016-11-08 16:06:15

SpringBoot初始教程之统一异常处理(三)

SpringBoot初始教程之统一异常处理(三)1.介绍在日常开发中发生了异常,往往是需要通过一个统一的异常处理处理所有异常,来保证客户端能够收到友好的提示。SpringBoot在页面 发生异常的时候会自动把请求转到/error,SpringBoot内置了一个BasicErrorController对异常进行统一的处理,当然也可以自定义这个路径application.yamlserver:

2016-11-08 11:54:57

SpringBoot初始教程之日志处理(二)

SpringBoot初始教程之日志处理(二)1.介绍SpringBoot默认是采用logback进行日志处理、Logback是由log4j创始人设计的又一个开源日志组件。Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。

2016-11-07 23:00:44

SpringBoot初始教程之项目结构(一)

SpringBoot初始教程之项目结构1 简介Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take an opinionated view of the Spring platform and third-

2016-11-07 19:49:14

Spring 源码解析之DispatcherServlet源码解析(五)

Spring 源码解析之DispatcherServlet源码解析(五)前言 本文需要有前四篇文章的基础,才能够清晰易懂,有兴趣可以先看看详细的流程,这篇文章可以说是第一篇文章,也可以说是前四篇文章的的汇总,Spring的整个请求流程都是围绕着DispatcherServlet进行的类结构图根据类的结构来说DispatcherServlet本身也是继承了HttpServlet的,所有的请求都是

2016-05-30 22:27:22

Spring 源码解析之ViewResolver源码解析(四)

Spring 源码解析之ViewResolver源码解析(四)1 ViewResolver类功能解析1.1 ViewResolver Interface to be implemented by objects that can resolve views by name. View state doesn’t change during the running of the applic

2016-05-25 14:49:53

Spring 源码解析之HandlerAdapter源码解析(三)

Spring 源码解析之HandlerAdapter源码解析(三)前言 这篇文章主要是解决上篇遗留的问题,主要是因为内容比较多Spring 源码解析之HandlerAdapter源码解析(二)遗留问题1. WebAsyncManager 和AsyncWebRequest 这些都是异步请求的管理? 先来看看使用的方式上有什么不同 @RequestMapping("/call")

2016-05-24 15:25:34

Spring 源码解析之HandlerAdapter源码解析(二)

Spring 源码解析之HandlerAdapter源码解析(二)前言 看这篇之前需要有Spring 源码解析之HandlerMapping源码解析(一)这篇的基础,这篇主要是把请求流程中的调用controller流程单独拿出来了解决上篇文章遗留的问题getHandler(processedRequest) 这个方法是如何查找到对应处理的HandlerExecutionChain和Handl

2016-05-20 12:44:45

Spring 源码解析之HandlerMapping源码解析(一)

Spring 源码解析之HandlerMapping源码解析1.HandlerMapping功能分析HandlerMapping是spring中最重要的一个类,主要功能就是为请求找到合适的处理器,现在Controller只是处理器的一种,目前我们自己公司自己实现了一套框架,前端js可以直接调用后端 soa service,忽略controller的存在,适合一些无用户状态的场景,比如说

2016-05-19 10:48:09

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!