Curator使用琐事杂记 Watcher部分 这种方式只能监听一次,监听完了需要重新注册watcher client.getChildren().usingWatcher(new AA2.Watcher()).forPath("/b"); PathChildrenCache 只能监听本层以及第一层子层(监听/b 只能监听到/b/c,不能监听到/b/c/d),且每次生成时,假如节点存在,会被重复...
logback配置黄金法则 不少人会有logback.xml里面root与logger关系,他们之间如何继承如何配置才能达到需求的问题,网上归纳的很凌乱,以下是个人总结的几条黄金法则。 root是公共属性,没有logger时会找root里对应level的appenderadditivity默认为true,为true时会忽略level限制并继承root节点中配置的所有属性说明:additivity...
更优雅的延迟执行实现---环形队列 在做业务时经常遇到某些一次性的延迟需求,比如新闻的定时发布,过了一个时间阈值后某个任务的状态置为超时或触发某个接口。之前实现这种一次性的延迟需求基本会有3种思路。(1)线程轮询扫库(2)Timer类(3)定时框架Quartz这三种方案都存在各自的问题对于“线程轮询扫库”,性能开销巨大,实时性差对于“Timer类”来说,假如项目重启,之前设置的定时就荡然无存对于“...
关于Mybatis一级缓存 关于Mybatis一级缓存的介绍 https://yq.aliyun.com/articles/18678 这篇已经介绍的非常详尽了。但是读完以后我产生了一个疑问,如果在同一个session中2次相同的数据库操作之间,DB里的数据改变了,Mybatis一级缓存如何确保数据一致性,带着以上疑问我做了如下实验: 1.方法级别没有开启@Transactional,Mybatis查询记录如...
Java concurrent 之 AQS 转自:http://www.blogjava.net/xylz/archive/2010/07/06/325390.htmlAQSAbstractQueuedSynchronizer,简称AQS,是J.U.C最复杂的一个类,导致绝大多数讲解并发原理或者实战的时候都不会提到此类。但是虚心的作者愿意借助自己有限的能力和精力来探讨一二(参考资源中也有一些作者做了部分的分析。)。首先从理论...
spring-data-redis消息订阅RedisMessageListenerContainer源码解读 项目中一直在使用redis的subscribe功能,偶然会发生订阅断开的问题,一直无法定位,在此之下只能阅读源码定位问题首先从spring.xml入手观察配置 <bean id="twaListener" class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">...
使用unsion完成机器文件夹容灾备份 安装ocamlwget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tartar -zvxf ocaml-4.03.0.tar.gz cd ocaml-4.03.0./configuremake world optmake install 安装unisontar -zxvf...
自己动手实现sso 原公司业务中有sso系统,我当时完成的角色是接入,现在自己动手写了一个sso项目地址https://git.oschina.net/spjich/sso-simple.git 模拟sso跨域,同域登录同域域名oa.ji.comsso.ji.com跨域域名oa.comsso.com加密算法cookie内容加密-ASE服务器间信息验证-RSA证书同域流...
分布式配置文件管理工具disconf部署以及运用 disconf之前有搭建过一次但是没有成功,比较纠结它的基于nginx实现动静分离的思想,其实明明可以少一个组件的依赖和配置,或许开发者有其自己的考虑吧。这次终于搭建完毕并且跑通,下面写几个碰到但是官方文档中没给出的坎。 搭建项目 --就是一个disconf-web安装依赖软件安装Mysql(Ver 14.12 Distrib 5.0.45, for...
公交位置模拟工具 承接上一篇 http://spjich.iteye.com/blog/2264025 公交位置判断完成以后,模拟测试会比较麻烦,要模拟公交的动态移动,所以我做了一个模拟工具,模拟公交运动以下是git地址https://git.oschina.net/spjich/busMonitor.git运行环境java1.7/java1.6tomcat7redis可选...
公交位置模拟工具 承接上一篇 http://spjich.iteye.com/blog/2264025 公交位置判断完成以后,模拟测试会比较麻烦,要模拟公交的动态移动,所以我做了一个模拟工具,模拟公交运动以下是git地址https://git.oschina.net/spjich/busMonitor.git运行环境java1.7/java1.6tomcat7redis可选...
让人困惑的ThreadLocal 目前网上介绍ThreadLocal类用法的博文很多,看过后我们基本可以得出以下结论ThreadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。好了,至此ThreadLocal的概念我们弄清了,它是每个线程的菊部变量(该死的输入法)。但是java有了类的局部变量,这个ThreadL...
实时公交位置系统的实现 假如你的城市,每台公交车上都装了一个gps,更幸运的是你还可以获得这些gps上报的位置信息,那如何做一款公交位置查询app,或者公交位置监控软件呢?宏观上: 实时性(每辆车每10秒上报一次位置信息,全市上万量公交,个接口的吞吐量以及实时性是一个考验) 准确性(如何准确判断每辆车的位置,以及行驶方向)微观上: 火星坐标系的转换(gps上报的是原生坐...
keepalive做HA热备 最近在做服务器的高可用性,考虑主从热备初步准备采用keepalive这个工具来完成这个需求,下面主要做了一个keepalive入门实验 测试环境两台centos172.171.48.151 主172.171.48.158 备 keepalive两台机器都要安装 安装前准备工作keepalive依赖下面几个包 rpm -qa |grep gcc ...
HttpClient 4.3与4.3版本以下版本比较 网上利用java发送http请求的代码很多,一搜一大把,有的利用的是java.net.*下的HttpURLConnection,有的用httpclient,而且发送的代码也分门别类。今天我们主要来说的是利用httpclient发送请求。httpclient又可分为httpclient3.xhttpclient4.x到httpclient4.3以下httpclient4.3以上...
(二)androidpn-server tomcat版源码解析之--push消息处理 在 (一)androidpn-server tomcat版源码解析之--项目启动这篇中,已经描述了整个推送服务器的启动过程,并且把握到了消息的入口即XmppIoHandler这个类,今天我将继续往下分析下面的核心代码,主要分为3大块,链接创建,消息的发送,链接关闭。先贴一段XmppIoHandler的部分代码/** * Invoked from an I/O process...
(一)androidpn-server tomcat版源码解析之--项目启动 最新项目在搞安卓推送,选用的xmpp协议,用了一套androidpn推送框架服务端是tomcat的版本的androidpn-server,网上对于这套服务端源码的理解比较少,于是我抽空把源码给解析了一遍并且了解到了整个服务的启动过程。下面是项目的git地址:https://github.com/msdx/androidpn/tree/master/androidpn-server-bin-...
两种启动监听器ApplicationListener和ServletContextListener 引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器 ServletContextListener 特点: 依赖于sevlet容器,需要配置web.xml使用方法:public class StartListener implements ServletCo...
div设置半透明效果 为div设置如下样式: div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;} 说明:1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opacity:对mozilla firefox火狐浏览...
div设置半透明效果 为div设置如下样式: div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;} 说明:1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opacity:对mozilla firefox火狐浏览...