基于Spring Cache实现Caffeine、jimDB多级缓存实战
在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine、ehcache堆外缓存、jimDB三级缓存,利用内存、堆外、jimDB缓存不同的特性提升接口性能,内存缓存采用Caffeine缓存,利用WTinyLFU算法获得更高的内存命中率;同时利用堆外缓存降低内存缓存大小,减少GC频率,同时也减少了网络IO带来的性能消耗;利用JimDB提升接口高可用、高并发;后期通过压测及性能调优999性能<20ms
Wesley13 Wesley13
3年前
mysql事务和事务隔离机制
阅读文本大概需要3分钟。http://arthornye.github.io/2018/mysql/mysql%E4%BA%8B%E5%8A%A1%E5%92%8C%E4%BA%8B%E5%8A%A1%E9%9A%94%E7%A6%BB%E6%9C%BA%E5%88%B6在学习mysql的事务隔离机制的过程中,对mysql的会话和事务的概念有点模糊不
Stella981 Stella981
3年前
30.Docker 控制组
Docker控制组控制组是Linux容器机制的另外一个关键组件,负责实现资源的审计和限制。它提供了很多有用的特性;以及确保各个容器可以公平地分享主机的内存、CPU、磁盘IO等资源;当然,更重要的是,控制组确保了当容器内的资源使用产生压力时不会连累主机系统。尽管控制组不负责隔离容器之间相互访问、处理数据和进程,它在防
Wesley13 Wesley13
3年前
2020年1
前言2020年一半儿快要过去了,总结了上半年各类Java面试题,初中级和中高级都有,包括JavaOOP面试题、Java集合/泛型面试题、Java异常面试题、Java种的IO与NIO面试题、Java反射面试题、Java序列化面试题、Java注解面试题、多线程与并发面试题、JVM面试题、MySQL面试题、Redis面试题、Memcached面试题、Mo
Stella981 Stella981
3年前
MoChat企业微信开源系统,能否成为企业微信开源框架项目中的独角兽?
2020年,国内企业服务SaaS领域因疫情加速驶入快车道,一时间企业服务领域的创业项目从成为了兵家必争的赛道。这其中,基于企业微信生态的私域流量运营SaaS工具尤为引人瞩目,作为企业私域流量运营的重要场景和工具,吸引了大批的服务商和企业,行业进入了百花齐名百家开放的阶段。!(https://uploadimages.jianshu.io/uploa
Wesley13 Wesley13
3年前
Java NIO之缓冲区
JavaNIO之Buffer  Java传统的I/O模型是面向单个字节的,它将输入输出抽象为字节流或字符流。这种单个字节的读取或写入模型的效率比较低,而且不符合操作系统的I/O特点。操作系统的IO是面向字节块的,通常是直接从磁盘中读取一块数据到内存或写入一块数据到磁盘。JavaNIO提供了缓冲区来实现字节块的读写。
Stella981 Stella981
3年前
Redis5.0:简单的集群模式——主从模式详解
主从模式主从模式是最简单的集群模式,其实就是复制基本只能解决读写分离问题,主机服务器一旦宕机基本完蛋,不具备高可用。基本上redis的性能瓶颈主要在于网络IO和内存主频上面,单机版Redis在不考虑高可用的情况下基本满足80%的项目需要,因为单机版Redis可以实现10W/S的请求,除非缓存KV值过大,通过读写分离缓存网卡的压
Stella981 Stella981
3年前
NIO开发Http服务器(5
最近学习了JavaNIO技术,觉得不能再去写一些HelloWorld的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室。我们是做WEB开发的,整天围着tomcat、nginx转,所以选择了一个新的方向,就是自己开发一个简单的Http服务器,在总结JavaNIO的同时,也加深一下对http协议的理解。项目实现了静态资源(
Easter79 Easter79
3年前
Spring的IOC逐层深入——源码解析之IoC的根本BeanFactory(五)
什么是IoC    IoC容器,最主要的就是完成对象的创建以及维护对象的依赖关系等。    所谓控制反转,包括两部分:一是控制,二是反转,就是把传统方式需要由代码来实现对象的创建、维护对象的依赖关系,反转给容器来帮忙管理和实现。所以我们必须要创建一个容器,同时需要一种描述来让容器创建对象与对象的关系。    Io
Wesley13 Wesley13
3年前
ng6中,在HTTP拦截器里,异步请求数据,之后再返回拦截器继续执行用户请求的方法研究
一、问题背景:   上面绕口的标题不知道大家看不看的懂。通常我们用拦截器就是两个目的,1、在请求头里统一添加请求头。2、对响应结果预先处理。   我现在项目就是利用拦截器,在请求头里增加:'Authorization':this.storage.token的请求头。//最精简的一个拦截器。一会儿