Redis Cluster FlushAll失败
问题背景Flush是一个极少用到的操作,不过既然碰到过诡异的现象,也记录在此。 问题场景是在Reids Cluster中使用主从模式,向主节点发送flush命令,预期主从节点都会清空数据库。但是诡异的现象出现了,我们得到的结果是主从节点发生了切换,并且数据并没有被清空。 问题分析分析以上case,Redis采用单线程模型,flush操作执行的时候会阻塞所有其它操作,包括集群间心跳包。当Redis中有大量数据的时候,flush操作会消耗较长时间。所以该节点较长时间不能跟集群通信,当达到一定阈值的时候,集群会判定该节点为fail,并且会切换主从状态。 Redis采用异步的方式进行主从同步,flush操作在主节点执行完成之后,才会将命令同步到从节点。此时老的从节点变为了主节点,它不会再接受来自老的主节点的删除数据的操作。 当老的主节点flush完成的时候,它恢复与集群中其它节点的通讯,得知自己被变成了从节点,所又会把数据同步过来。最终造成了主从节点发生了切换,并且数据没有被清空的现象。 解决方案解决方式:临时调大集群中所有节点的cluster-node-timeout参数 123456...
MyBatis Mapper变量引用方式#{}与${}差别
前言众所周知,SQL存在注入的风险,所以mybatis 在默认情况下会使用预编译的方式,并会设置PreparedStatement参数,并进行了必要的安全检查和字符的转义。 PreparedStatement预编译1. Mapper配置,默认是预编译1<select id="getList" resultType="Map" >select * from A where age = #{age} ORDER BY #{age}</select> 2. SQL举例1select * from A where age = #{age} 3. 解释参数:age=>5解析后执行的SQL:select * from A where age = ?然后在SQL的执行中进行值的替换。 Statement直接拼接1. Mapper配置 statementType1<select id="getList" resultTy...
2016 该有个总结
2016年是一个不平凡的一年,也是感情生活丰富的一年,也是工作事业步入正轨的一年。收获了一枚女友,也如愿进入了梦想的公司,找到了自我。一切慢慢的变得好起来,也慢慢的循着我的5年小目标在前进。一切都是最好的安排,一切都是最好的选择,你今年总结了么?
企业级Redis环境部署
哨兵配置文件参考: 哨兵配置文件: etc/redis/sentinel.conf 12345678910111213sentinel monitor test1 10.10.10.152 6386 1sentinel down-after-milliseconds test1 5000sentinel failover-timeout test1 900000sentinel can-failover test1 yessentinel parallel-syncs test1 2sentinel config-epoch test1 45sentinel leader-epoch test1 45sentinel known-slave test1 10.10.10.155 6387port 26379dir "/usr/local/etc"sentinel current-epoch 45 备注: 12redis哨兵10.10.10.155, 哨兵端口(26379)test1 10.10.10.152 6386 ...
监控系统工具对比
测试一flume端口监控时 java cpu 负载 在10%~13%左右 logstash端口监控时 java cpu 负载 在8%~10%左右 1相比较而言,在cpu负载方面,logstash更佳。 测试二flume请求shenzhenlong.newvip.youku.com页面,nginx生成的access.log 的log日志,请求10000次,耗费时间为1768.1288728714s,平均每请求一次耗时 0.1768s logstash请求shenzhenlong.newvip.youku.com页面,nginx生成的access.log 的log日志,请求10000次,耗费时间为1637.932365179s,平均每请求一次耗时 0.1637s 1相比较而言,在请求延时方面,logstash更佳。 测试三flume利用rpc方式 直接写入flume ,请求10000次,发送时间为8.922s 发送时间:8.922s 收集时间:55.007 - 45.471 = 9.536s 1rpc方式直接写入flume 效率是 9.536 - 8.922 =...