摘要: SPI全称Service Provider Interface,即服务提供接口 java中: ServiceLoader serviceLoader = ServiceLoader.load(RedisClient.class); for(RedisClient redisClient: servi 阅读全文
posted @ 2018-11-15 21:11 j.liu windliu 阅读(165) 评论(0) 推荐(0) 编辑
摘要: transactions redis的事务并不能回滚,即使执行失败了,后面的命令一样会执行 exec命令触发前面被queue的命令原子执行 最后:transaction最终将被scripts替代,因为它们提供了原子性,原子性可以理解为redis单线程执行命令自带的原子性,并且更快,script命令仍 阅读全文
posted @ 2018-11-11 20:05 j.liu windliu 阅读(103) 评论(0) 推荐(0) 编辑
摘要: ##why 在5.6以前,mysql会对每个连接创建一个线程,请求结束后销毁线程。在高并发的情况下,为了避免频繁创建和释放线程,可以通过thread-cache将线程缓存起来,请求来了先尝试从cache中获取,重复利用线程资源。 show global status like 'thread%' s 阅读全文
posted @ 2018-10-26 14:52 j.liu windliu 阅读(1160) 评论(2) 推荐(1) 编辑
摘要: Mysql jdbc的queryTimeout分析 === Mysql的jdbc driver com.mysql.jdbc.Driver 设置queryTimeout方法 com.mysql.jdbc.StatementImpl.setQueryTimeout StatementImpl实例有一个 阅读全文
posted @ 2018-10-22 15:50 j.liu windliu 阅读(2078) 评论(0) 推荐(0) 编辑
摘要: Java网关服务 AIO(三) ==== 概述 前两节中,我们已经获取了body的总长度,剩下的就是读出body,处理请求 ChannelServerHandler ChannelServerHandler即从channel中读取请求,也向channle输出结果,因此它实现了InboundHandl 阅读全文
posted @ 2018-10-17 15:40 j.liu windliu 阅读(2832) 评论(0) 推荐(0) 编辑
摘要: Java网关服务 AIO(二) ==== 概述 AIO的特点就是用户程序注册一个事件后就可以做其他事情,当事件被内核执行并得到结果后,我们的CompletionHandler会在I/O回调线程中被自动调用,有点类似观察者模式;因此我们的服务端会有很多个CompletionHandler Handle 阅读全文
posted @ 2018-10-17 15:38 j.liu windliu 阅读(420) 评论(0) 推荐(0) 编辑
摘要: Java网关 AIO(一) === aio:声明一个byteBuffer,异步读,读完了之后回调,相比于Future.get(),可以减少阻塞、减少线程等待,充分利用有限的线程 nio:声明一个byteBuffer,自己同步读出来,再做业务 概述 作为一个网关,一般可以代理某个后端的功能,暴露出更容 阅读全文
posted @ 2018-10-17 15:37 j.liu windliu 阅读(1184) 评论(0) 推荐(0) 编辑
摘要: public class ServerNio { public static void main(String[] args) throws IOException, InterruptedException { //打开一个selector Selector selector = Selector 阅读全文
posted @ 2018-10-09 19:32 j.liu windliu 阅读(222) 评论(0) 推荐(0) 编辑
摘要: redis4.0.9 SET\GET方法 从哪里开始 server.c里面有每个redis命令对应的执行方法 如 struct redisCommand redisCommandTable[] = { {"module",moduleCommand, 2,"as",0,NULL,0,0,0,0,0} 阅读全文
posted @ 2018-09-29 17:30 j.liu windliu 阅读(1206) 评论(0) 推荐(0) 编辑
摘要: Nginx有两类进程,一类称为Master进程(相当于管理进程),另一类称为Worker进程(实际工作进程)。 利用epoll模型,基于事件响应,监听某个事件,处理后接着监听其他事件,直到事件到达后处理,不会一直等着,比如等一个http请求从建立连接到响应,占用一个线程,nginx可以一个线程处理多 阅读全文
posted @ 2018-09-29 17:26 j.liu windliu 阅读(112) 评论(0) 推荐(0) 编辑