09 2017 档案
摘要:众所周知,redis是单线程的。 多个客户端发来的所有指令会按接受到的顺序一个个的执行。 那么multi,exec的作用是什么呢?和pipeline区别在哪? 如果只是简单的认为,multi可以在客户端打包要执行的命令批量的提交到服务端,从而减少每条指令每次发送的网络通讯。那么和pipeline有何
阅读全文
摘要:众所周知LongAdder在高并发场景下比AtomicLong高效很多,在低并发时基本持平,其原理就不说了,很多文章都有提到。 那么问题来了,既然如此iAtomicLong还有使用的必要吗? 我们来看看一个最常见的应用场景:多线程获取一个唯一的递增id。 AtomicLong提供 long incr
阅读全文
摘要:The readConcern option is available for the following operations: find command aggregate command and the db.collection.aggregate() method distinct com
阅读全文
摘要:mysql事务具有原子性,隔离性,一致性的特点。 redis提供multi, exec,watch来支持事务: 原子性,一致性: redis保证在multi,exec之间的语句作为一个整体执行,redis在exec后,是无法回滚的,会出现部分成功,部分失败情况。 隔离性(mysql默认可重复读:事务
阅读全文
摘要:思路一,基于docker.io/java基础镜像,打一个新的镜像,修正时间 编写一个docker file FROM docker.io/javaMAINTAINER linsRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 生成一个新的
阅读全文
摘要:hbase的数据模型从逻辑上可以分类为键值存储或者是有序映射的映射。物理数据模型是基于列族的列式数据库,单个记录以键值形式存储。 HBase把数据记录保存在HFile里,这是一种不能更改的文件格式。因为记录一旦写入就不能修改,新值将保存在新 HFile里。在读取数据和数据合并时,数据视图需要在内存中
阅读全文
摘要:在京东的亿级流量网站架构一书,175页介绍缓存有这样一段话 仅就这段代码来看,在高并发情况下,实际上并不能阻止大量线程调用loadSync函数 当然这个书里的代码是作者的简写,这里探讨只是针对书中这段代码,实际生成代码应该有考虑这个问题,另外loadSync函数的逻辑看不到,也可能有考虑到到这个问题
阅读全文
摘要:业务需求:用户每次修改数据,都要记录修改留痕信息; 形如:【订单号】由1001改为1002,【备注】由空改为 “客户要求修改订单号” 之前做法是业务代码主动写结合aop统一拦截写日志。 动手开始做技术预研: 简化的order数据表结构如下: 偶然看到canal后,立刻想到,可以借助canal实现这个
阅读全文
摘要:select、poll、epoll之间的区别总结[整理] select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O
阅读全文
摘要:传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到
阅读全文
摘要:新上线的区域病例系统,在阿里云环境间断性的出错 查看后台微服务日志,发现访问数据库偶尔会出现异常: 测试环境和开发环境都没这个错误 经过查询,应该是连接池的连接一段时间没有活动筋骨,mysql服务端会单方面断开这个连接。客户端继续使用这个僵尸连接就会出错。 查看mysql实例的配置my.cnf,其中
阅读全文