捉虫大师 捉虫大师
4年前
redis在微服务领域的贡献
本文已收录https://github.com/lkxiaolou/lkxiaolou欢迎star。前言说到redis,可能大家的脑海中蹦出的关键词是:NoSQL、KV、高性能、缓存等。但今天的文章从另一个角度——微服务来展开。这篇文章的起因也是源自一次面试经历,在面试一位来自陌陌的候选人(就是那个交友的陌陌)时,他提到一点让我觉得很有意思,他说red
Stella981 Stella981
3年前
Keepalived+LVS+nginx搭建nginx高可用集群
       nginx是一款非常优秀的反向代理工具,支持请求分发,负载均衡,以及缓存等等非常实用的功能。在请求处理上,nginx采用的是epoll模型,这是一种基于事件监听的模型,因而其具备非常高效的请求处理效率,单机并发能力能够达到上百万。nginx接收到的请求可以通过负载均衡策略分发到其下一级的应用服务器,这些服务器一般是以集群方式部署的,因而在性能不
Wesley13 Wesley13
3年前
mysql数据库设计规范
一、数据库设计规范1.使用innodb引擎2.数据库和表的字符集统一使用utf83.所有表和字段添加注释4.单表数据量控制<500w5.谨慎使用mysql分区,跨区查询影响性能6.冷热数据分离,缓存7.禁止在数据库中存储图片,文件等大的二进制数据8.禁止在线上做数据库压力测试9.禁止从开发和测试环境直接连
Wesley13 Wesley13
3年前
mysql优化
第一优化你的sql和索引;第二加缓存,memcached,redis;第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护;第四如果以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对你的应用是透明的,无需更改代
Stella981 Stella981
3年前
InnoDB脏页刷新机制Checkpoint
我们知道InnoDB采用WriteAheadLog策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页。既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中取数据,那为什么还要刷新脏页到磁盘呢?如果重做日志可以无限增大,同时缓冲池足够大,能够缓存所有数据,那么是不需要将缓冲池中的脏页刷新到磁盘。但是,通常会有以下几
Stella981 Stella981
3年前
Netty 能做什么
作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,会点SSH,写几个MVC,访问数据库和缓存,这些只是初等Java程序员干的事。如果你要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,W
Wesley13 Wesley13
3年前
JAVA + LR实现apache流媒体的性能测试
最近的一个项目,视频点播系统,使用apache实现的流媒体服务器。其实准确的说叫做伪流(HTTPPseudoStreaming),基本原理和概念自行了解吧。让我简单的描述就是仍然是HTTP下载,播放器播放本地缓存。只不过它也实现了一些和正规流媒体服务类似的功能。视频点播类系统的性能测试,说简单了主要就是模拟大量用户去看视频。服务端监控整体性能,客户端
Stella981 Stella981
3年前
Android OpenSL ES 开发:Android OpenSL 录制 PCM 音频数据
一、实现说明OpenSLES的录音要比播放简单一些,在创建好引擎后,再创建好录音接口基本就可以录音了。在这里我们做的是流式录音,所以需要用至少2个buffer来缓存录制好的PCM数据,这里我们可以动态创建一个二维数组,里面有2个buffer,然后每次录音取出一个,录制好后再写入文件就可以了,2个buffer依次来存储PCM数据,这样就可以
Stella981 Stella981
3年前
Linux内核内存管理架构
内存管理子系统可能是linux内核中最为复杂的一个子系统,其支持的功能需求众多,如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等,而且对性能也有很高的要求。本文从内存管理硬件架构、地址空间划分和内存管理软件架构三个方面入手,尝试对内存管理的软硬件架构做一些宏观上的分析总结。内存管理硬件架构
捉虫大师 捉虫大师
3年前
对不起,我错了,这代码不好写
hello,大家好呀,我是小楼。前几天不是写了这篇文章嘛。文章介绍了Sentinl的自适应缓存时间戳算法,从原理到实现都手把手解读了,而且还发现SentinelGo还未实现这个自适应算法,于是我就觉得,这简单啊,把Java代码翻译成Go不就可以混个PR?甚至在文章初稿中把这个描述为:「有手就可以」,感觉不太妥当,后来被我删掉了。过了几天,我想去看看有没有人看