后端
KeepTing
java开发工程师
展开
-
【通信协议】笔记之Redis协议抓取分析
RESP(Redis序列化协议)概念Redis底层使用的通信协议是RESP(Redis Serialization Protocol的缩写),RESP协议可以序列化多种类型,比如Simple Strings(简单字符串),Errors(错误类型),Integers(整形),Bulk Strings(批量串)和Arrays(数组),但此协议只适用于Redis客户端-服务端之间的通信,Redis集群中节点间通信使用的另一种协议。一般情况下RESP是一种简单的请求-响应式协议,就是发一条请求,Redis服务原创 2020-10-24 17:23:47 · 1710 阅读 · 0 评论 -
Hystrix线程隔离技术解析-线程池
认识HystrixHystrix是Netflix开源的一款容错框架,包含常用的容错方法:线程隔离、信号量隔离、降级策略、熔断技术。在高并发访问下,系统所依赖的服务的稳定性对系统的影响非常大,依赖有很多不可控的因素,比如网络连接变慢,资源突然繁忙,暂时不可用,服务脱机等。我们要构建稳定、可靠的分布式系统,就必须要有这样一套容错方法。本文主要讨论线程隔离技术。为什么要做线程隔离比如我们现在有...转载 2018-10-25 12:10:05 · 1329 阅读 · 0 评论 -
Hystrix流程分析及断路器工作原理
上一篇转载的文章主要讲了Hystrix的应用场景、基础组件概念以及从源码的角度阐述了基本应用。本篇文章主要借鉴官方文档介绍Hystrix的工作流程及断路器的原理,最后说一下与SpringCloud的简单集成。How it Works先上一个官方的流程图:这个图大概描述了Hystrix的工作流程:按照图中绿色标识的步骤:1、创建一个HystrixCommand或HystrixObs...原创 2018-10-27 17:19:46 · 3161 阅读 · 0 评论 -
关于异步log4j2中location信息打印问题
背景:项目改造过程中将log4j2改成异步,发现行号没有打印,于是扒了下官方文档,大概陈述下:先说一下这个问题是怎么解决的,然后稍微扩展一下其他配置,有兴趣的可以往下看或者溜一遍官方文档解决:在<AsyncLogger>标签中配置includeLocation="true",扩展:1、additivity:这个属性的意思是需不需要打印此logger继承的父logger,如...原创 2018-11-02 09:49:42 · 11575 阅读 · 0 评论 -
Vert.x架构学习之Reactor模式
前言学习Vert.x之前,我们首先需要了解一下几个概念,Reactor设计模式就是其中一个。一、Reactor模式简介我们知道对于应用服务器,通常会涉及到对文件系统、数据库系统或者网络进行IO操作,由于cpu的运行速度远大于IO的速度,所以会发生这种情况:CPU可能会因为IO的操作而阻塞。我们当然不希望这种情况的发生,因为这大大降低了CPU的效率,因此,引进了多现程或多进程进行处理,即多...原创 2018-11-10 09:29:48 · 1084 阅读 · 0 评论 -
JDK8中的HashMap实现原理及源码分析
本篇所述源码基于JDK1.8.0_121在写上一篇线性表的文章的时候,笔者看的是Android源码中support24中的Java代码,当时发现这个ArrayList和LinkedList的源码和Java官方的没有什么区别,然而在阅读HashMap源码的时候,却发现Android中的Java与官方版的出入略大,遂不得不转而用Eclipse导入jdk源码阅读,这里不得不吐槽一句,用惯了IDEA的...转载 2018-11-15 09:21:54 · 3269 阅读 · 6 评论 -
Redis字符串类型内部编码剖析
概述我们平时用 Redis都是处于用户层面,我们可能会不加思索地操作一个 key-value 对来方便地存取数据,感觉方便之至。但你知道这些数据在背后是如何存储以及编码的吗? 了解清楚了这个问题,将对我们更加高效地使用 Redis具有指导意义。本文开始我们将结合 Redis源码来逐个探讨Redis五大数据类型的内部编码机制。实验环境:Redis 4.0.10Redis数据类型内部编码...转载 2018-12-08 12:06:33 · 793 阅读 · 2 评论