- 博客(15)
- 收藏
- 关注
原创 zookeeper 高可用集群搭建
前言记录Zookeeper集群搭建的过程!什么是 Zookeeper ?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。划重点:分布式应用程序协调服务,在分布式系统中,通常需要一个通用...
2019-01-23 12:27:06
142
原创 从源码的角度再学「Thread」
前言Java中的线程是使用Thread类实现的,Thread在初学Java的时候就学过了,也在实践中用过,不过一直没从源码的角度去看过它的实现,今天从源码的角度出发,再次学习Java Thread,愿此后对Thread的实践更加得心应手。从注释开始相信阅读过JDK源码的同学都能感受到JDK源码中有非常详尽的注释,阅读某个类的源码应当先看看注释对它的介绍,注释原文就不贴了,以下是我对它的总结:...
2019-01-21 10:54:12
85
原创 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
前言记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程!需求背景不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运行,这种方式对于单应用部署还算可以,不会耗费太大时间,但假如分布式项目,拆分为多个微服务部署,那么每个服务都打包部署一遍,发布上线可能会耗时非常久,Jenkins + gitlab + maven ...
2019-01-16 09:44:32
408
原创 这是一次 docker 入门实践
前言其实接触 docker 也有一段时间了,但是一直没有做下总结,现在网上关于 docker 的介绍也有很多了,本着好记性不如烂笔头的原则,还是自己再记录一波吧。实现目标安装 docker ce探索 docker 基本概念及用法环境准备Centos7 64位,内核版本不低于 3.10安装 docker ce以下命令均需在 root 权限下执行。先卸载旧版本docker:...
2019-01-15 10:03:52
84
原创 前后端分离——token超时刷新策略
前言记录一下前后端分离下————token超时刷新策略!需求场景昨天发了一篇记录 前后端分离应用——用户信息传递 中介绍了token认证机制,跟几位群友讨论了下,有些同学有这么一个疑惑:token失效了,应该怎么做?强制定向到登录页?其实理论上如果是活跃用户,token失效后,假如用户正在操作表单,此时突然定向到登录页面,那用户体验太差了。实现目标延长token过期时间活跃用户...
2019-01-11 09:39:42
2337
原创 前后端分离应用——用户信息传递
前言记录前后端分离的系统应用下应用场景————用户信息传递需求缘起照例先看看web系统的一张经典架构图,这张图参考自网络:在 Dubbo 自定义异常,你是怎么处理的? 中已经对该架构做了简单说明,这里不再描述。简单描述下在该架构中用户信息(如userId)的传递方式:现在绝大多数的项目都是前后端分离的开发模式,采用token方式进行用户鉴权:客户端(pc,移动端,平板等)首次登录...
2019-01-10 11:31:30
969
1
原创 Dubbo自定义日志拦截器
前言上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程。那么按照分布式架构中Dubbo服务层的调用过程是否也可以实现统一记录日志?自定义日志拦截器可以实现这个需求。需求场景在使用Dubbo搭建的分布式项目中,服务层代码调用是这样的: @GetMapping(value = "/inf...
2019-01-09 10:23:48
602
1
原创 String 源码浅析————终结篇
写在前面说说这几天看源码的感受吧,其实 jdk 中的源码设计是最值得进阶学习的地方。我们在对 api 较为熟悉之后,完全可以去尝试阅读一些 jdk 源码,打开 jdk 源码后,如果你英文能力稍微过得去,那么源码有相当详细的注释告诉你 api 的含义,具体用法。假设平时在写代码的过程中突然忘记了某个 api 的用法,那么有些新手没读过源码的可能顺手就打开百度或者谷歌,搜索 api 怎么用?哈哈哈...
2019-01-08 16:09:32
87
原创 Spring aop+自定义注解统一记录用户行为日志
写在前面本文不涉及过多的Spring aop基本概念以及基本用法介绍,以实际场景使用为主。场景我们通常有这样一个需求:打印后台接口请求的具体参数,打印接口请求的最终响应结果,以及记录哪个用户在什么时间点,访问了哪些接口,接口响应耗时多长时间等等。这样做的目的是为了记录用户的访问行为,同时便于跟踪接口调用情况,以便于出现问题时能够快速定位问题所在。最简单的做法是这样的: @GetM...
2019-01-07 13:51:22
597
原创 Dubbo 自定义异常,你是怎么处理的?
前言记录Dubbo对于自定义异常的处理方式.实现目标服务层异常,直接向上层抛出,web层统一捕获处理如果是系统自定义异常,则返回{"code":xxx,"msg":yyy} 其中code对应为错误码,msg对应为异常信息如果非系统自定义异常,返回{"code":-1,"msg":"未知错误"},同时将异常堆栈信息输出到日志,便于定位问题项目架构先来张系统架构图吧,这张图来源自网...
2019-01-06 16:36:08
253
原创 String 源码浅析(一)
前言相信作为 JAVAER,平时编码时使用最多的必然是 String 字符串,而相信应该存在不少人对于 String 的 api 很熟悉了,但没有看过其源码实现,其实我个人觉得对于 api 的使用,最开始的阶段是看其官方文档,而随着开发经验的积累,应当尝试去看源码实现,这对自身能力的提升是至关重要的。当你理解了源码之后,后面对于 api 的使用也会更加得心应手!备注:以下记录基于 jdk8 ...
2018-12-30 09:40:29
88
原创 傻瓜式学Python3——列表
前言: 好久不见,突然发觉好久没写博客了,最近迷上了 Python 无法自拔,了解了一下,Python 简单易学,尤其是接触过java的人,入门 Python 更是门槛极低,本着学习记录的原则,边学习边记录,有利于梳理学习的成果,也有利于后期的复盘,所以今天开始 Python 学习之旅的第一篇博客,纯粹只是记录。简单的语法定义就不记录了,从数据结构开始,程序最重要的就是操作数据,学习一门编程语言...
2018-12-28 10:12:39
124
原创 线上CPU100%?看看这篇是怎么排查的!
前言作为后端开发工程师,当收到线上服务器CPU负载过高告警时,你会这么做?重启服务,忽略告警?不过在我看来一个合格的工程师是一定要定位到具体问题所在的,从而 fix 它。下面记录一下线上服务器 CPU 负载过高排查过程,把排查流程理清楚,以后遇到问题将会迅速定位到问题所在,快速解决。什么样的场景会导致线上CPU负载过高?代码层面常见的场景有:程序陷入死循环,不停地消耗CPU线程死锁,线...
2018-12-27 22:17:46
253
原创 解耦技巧——依赖注入!
在之前的一篇博客 Java Builder 模式,你搞懂了么? 中,我们提到了在 oop 编码设计中 只要能拿到类的实例,即对象,就能命令对象做一系列事情了。在 java/android 程序中,每个功能模块都由 n 个 类所组成,而每个类都封装了各自的功能,我们实例化每个类的实例,分别命令他们去完成指定的功能,但是,程序设计中,类之间往往不是单独去完成任务的,他们存在相互依赖的关系,就比如 A ...
2018-12-25 10:46:52
269
原创 Java Builder 模式,你搞懂了么?
前言:最近闲来无事的时候想着看看一些平常用的三方库源码,没想到看了之后才知道直接撸源码好伤身体,一般设计优秀的开源库都会涉及很多的设计模式,就比如 android 开发使用频繁的 okHttp 打开源码一看,纳尼?Builder 模式随处可见,于是乎,这篇文章就来对 Builder 模式进行一个简单总结,主要针对便于分析 android 相关源码,以实际应用出发~在 oop 编码设计中...
2018-12-24 17:04:36
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人