基于Spring Cache实现Caffeine、jimDB多级缓存实战
在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine、ehcache堆外缓存、jimDB三级缓存,利用内存、堆外、jimDB缓存不同的特性提升接口性能,内存缓存采用Caffeine缓存,利用WTinyLFU算法获得更高的内存命中率;同时利用堆外缓存降低内存缓存大小,减少GC频率,同时也减少了网络IO带来的性能消耗;利用JimDB提升接口高可用、高并发;后期通过压测及性能调优999性能<20ms
Wesley13 Wesley13
3年前
mysql基础之mysql双主(主主)架构
一、概念在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加mysql入口,增加高可用。不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能
Wesley13 Wesley13
3年前
HTTP API网关选择之一Kong介绍
转自张开涛的博客(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%2FLIq2CiXJQmmjBC0yvYLY5A)Kong是Mashape开源的高性能高可用API网关和API服务管理层。它基于OpenResty,进行API管理,并提供了插件
Wesley13 Wesley13
3年前
IM开发快速入门(一):什么是IM系统?
本文在编写时参考了博客作者“鹿呦呦”和在线课程“即时消息技术剖析与实战”的相关资料,一并表示感谢。1、系列文章引言IM系统看似简单(没错,很多土老板认为开发个qq和微信也就是几万块钱的事... ),实责是众多技术的应用合体,包括网络编程、移动开发、后端开发、高并发、高可用、高安全等技术范畴,再加上多端使用不同的编程语言,想要凑齐一个
Wesley13 Wesley13
3年前
1 缓存架构意义
缓存是什么?将各种繁琐或简单的东西全部提取都一个大格子箱里面,下次拿的时候不需要慢慢找,直接快速的就能拿到。这是博主简单粗暴的理解。(没有那么多官方定义,有需要的可以去搜索一下),目的是它解决性能问题,同时能够支撑高并发,高可用。缓存场景放到软件开发里面,可以小到存储一些固定信息,定时保存数据、大到小型电商的页面静
Wesley13 Wesley13
3年前
2020年写的文章整理到了这里,请查收!
写在前面2020年默默地还是写了很多东西的,微信有了标签功能之后,整理起文章来还是比较方便的。从去年到今年准备写几个专辑,围绕于自己做交易系统或是一些通用解决方案的,当然自己平时爱叨叨的毛病也整理了一个专辑,回顾起来还比较有意思。复杂度治理系统变大之后,对应的复杂度就上来了,除了需要解决各种高性能、高可用、高并发的“规模
Wesley13 Wesley13
3年前
MySQL主从复制与读写分离
MySQL主从复制(MasterSlave)与读写分离(MySQLProxy)实践Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。因此,一般来说都是通过主从复制(MasterS
Stella981 Stella981
3年前
Spring3 @ResponseBody注解引起头部Accept
默认情况下StringHttpMessageConverter.writeInternal()会将所有可用字符集回写到response响应头中中,从而导致整个response的头部变大,实测占了大概2K的空间,在高并发的情况下,会造成网络拥塞解决方法:在springmvc配置文件中,加下以下配置,关闭默认的writeAcceptCharset