Wesley13 Wesley13
3年前
javaNio 通道和缓冲区
/大多数操作系统可以利用虚拟内存将文件或文件一部分映射到内存中,然后这个文件就可以被当做内存数组一样被访问;避免底层IO的开销<p【通道】是一种用于磁盘文件的一种抽象;<br它使我们可以访问诸如内存映射,文件加锁机制以及文件间快速数据传递等特性;@date:2018年7月5日
Stella981 Stella981
3年前
Netty系列之Netty高性能之道
1\.背景1.1.惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用Netty4Thrift压缩二进制编解码技术,他们实现了10WTPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化BIO(同步阻塞IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不感到惊讶,根据我5年
Wesley13 Wesley13
3年前
Java NIO
简介引入NIO的原因1.因为BIO都是阻塞的IO,为了使Java能支持非阻塞I/O,JDK引入了NIO,可以将NIO理解成是NonblockI/O.(也有书说是newIO)2.BIO编程中,每当有一个新的客户端请求过来时,服务器端必须创建一个新的线程处理新接入的客户端链路,一个线程只能处理一个客户端连接,在并发量
Stella981 Stella981
3年前
Redis全面解析
1、什么是Redis?Redis是BSD协议,是一个高性能的keyvalue非关系型数据库。2、redis单线程问题所谓的单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程。redis采用多路复用机制:即多个网络socket复用一个io线程,实际是单个线程通过记录跟踪每一个S
Stella981 Stella981
3年前
Docker运行时的监控
linux的容器依赖cgroups,cgroups不光追踪进程、还跟踪CPU、内存、块IO等使用信息,你可以访问这些度量信息,并且获得网络使用情况的度量信息,这些在纯粹的LXC上可以使用的同样也可以在docker上使用。cgroups通过一个虚假的操作系统暴露出来,在最近的linux发行版中,你可以在操作系统的/sys/fs/cgroup目录下发现这些。在
Stella981 Stella981
3年前
Redis pipeline(12)
常规的连接客户端一般有3种请求方式:1.Client2.Pipeline3.事务三中模式的区别Client模式:就是客户端发送一个命令,阻塞等待服务端执行,然后读取返回结果。Pipeline模式:是一次性发送多个命令,最后一次取回所有的返回结果,这种模式通过减少网络的往返时间和io读写次数,大幅度提高通信性能。事
Wesley13 Wesley13
3年前
mysql数据库设计规范浅谈
《mysql设计规范》数据结构设计:逻辑设计–物理设计实际工作中:逻辑设计物理设计物理设计:表名,字段名,字段类型磁盘IO和操作系统类型,对mysql的性能是非常大的一.数据库命名规范所有的数据库对象名称必须使用小写字母并用下划线表示,因为默认情况下,mysql对大小写敏感,mysql数据库本质上是linux
Wesley13 Wesley13
3年前
Java并发编程:Java 序列化的工作机制
JDK内置同步器的实现类经常会看到java.io.Serializable接口,这个接口即是Java序列化操作,这样看来序列化也是同步器的一种机制。 关于序列化本文主要分析Java中的序列化机制,并看看AQS同步器的序列化,掌握序列化机制才能完整理解JDK内置的同步工具的实现。在程序中为了能直接以Java对象的形式进行保存,然后再
Stella981 Stella981
3年前
Python asyncio 与 aiohttp 使用简单记录
asyncio的基本概念asyncio是在python3.4中被引进的异步IO库。你也可以通过python3.3的pypi来安装它。它相当的复杂,而且我不会介绍太多的细节。相反,我将会解释你需要知道些什么,以利用它来写异步的代码。简而言之,有两件事情你需要知道:协同程序和事件循环。协同程序像是方法,但是它们可以在代码中的特定点暂停和继
Stella981 Stella981
3年前
LiteHttpServer 2.0 Feature
占坑,2.0版本应该具备一下特性:1.引入高性能异步io2.Lua高并发支持3.引入http解析库,更完整的支持http协议4.更智能的文件缓存策略5.引入redis的支持6.更强大的高性能异步策略7.支持重定向到其他http服务器,形如nginx的代理功能.有空再开发,并且开源1.0版本URL:http