`
spjich
  • 浏览: 94987 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
文章列表
Watcher部分  这种方式只能监听一次,监听完了需要重新注册watcher   client.getChildren().usingWatcher(new AA2.Watcher()).forPath("/b");   PathChildrenCache 只能监听本层以及第一层子层(监听/b 只能监听到/b/c,不能监听到/b/c/d),且 ...
  不少人会有logback.xml里面root与logger关系,他们之间如何继承如何配置才能达到需求的问题,网上归纳的很凌乱,以下是个人总结的几条黄金法则。   root是公共属性,没有logger时会找root里对应level的appender additivity默认为tru ...
在做业务时经常遇到某些一次性的延迟需求,比如新闻的定时发布,过了一个时间阈值后某个任务的状态置为超时或触发某个接口。 之前实现这种一次性的延迟需求基本会有3种思路。 (1)线程轮询扫库 (2)Timer类 (3)定时框架Quartz 这三种方案都存在各自的问题 对于“线程轮询扫库”,性能开销巨大,实时性差 对于“Timer类”来说,假如项目重启,之前设置的定时就荡然无存 对于“定时框架Quartz”虽然支持DBstore,但是框架太过于重量级。 如何优雅而又高效的实现一个延迟任务呢?前不久看到一篇文章 https://mp.weixin.qq.com/s/eDMV25YqC ...
关于Mybatis一级缓存的介绍 https://yq.aliyun.com/articles/18678 这篇已经介绍的非常详尽了。 但是读完以后我产生了一个疑问,如果在同一个session中2次相同的数据库操作之间,DB里的数据改变了,Mybatis一级缓存如何确保数据一致性,带着以上疑问我做了如下实验:   1.方法级别没有开启@Transactional,Mybatis查询记录如下  测试函数: 在以下函数第四行处会打一个端点,在断点期间,我会手工进行数据库操作 public String getTest() { List<String&g ...
转自:http://www.blogjava.net/xylz/archive/2010/07/06/325390.html AQS AbstractQueuedSynchronizer,简称AQS,是J.U.C最复杂的一个类,导致绝大多数讲解并发原理或者实战的时候都不会提到此类。但是虚心的作者愿意借助自己有限的能力和精力来探讨一二(参考资源中也有一些作者做了部分的分析。)。 首先从理论知识开始,在了解了相关原理后会针对源码进行一些分析,最后加上一些实战来描述。 上面的继承体系中,AbstractQueuedSynchronizer是CountDownLatch/FutureTa ...
项目中一直在使用redis的subscribe功能,偶然会发生订阅断开的问题,一直无法定位,在此之下只能阅读源码定位问题 首先从spring.xml入手观察配置   <bean id="twaListener" class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter"> <property name="delegate" ref="twocAlertListener"/> ...
安装ocaml wget http://caml.inria.fr/pub/distrib/ocaml-4.03/ocaml-4.03.0.tar tar -zvxf ocaml-4.03.0.tar.gz  cd ocaml-4.03.0 ./configure make world opt make install         安装unison tar -zxvf unison-2.48.4.tar.gz  cd src make UISTYLE=text make install   在执行make install的过程中,可能会出现以下错误提示: ...
原公司业务中有sso系统,我当时完成的角色是接入,现在自己动手写了一个sso 项目地址 https://git.oschina.net/spjich/sso-simple.git     模拟sso跨域,同域登录 同域域名oa.ji.comsso.ji.com 跨域域名oa.comsso.com 加密算法 cookie内容加密-ASE服务器间信息验证-RSA证书 同域流程图 跨域流程图 切换模拟时需要修改的配置 ParamConstOaConstsso-oa工程的spring.xml        
disconf之前有搭建过一次但是没有成功,比较纠结它的基于nginx实现动静分离的思想,其实明明可以少一个组件的依赖和配置,或许开发者有其自己的考虑吧。 这次终于搭建完毕并且跑通,下面写几个碰到但是官方文档中没给出的坎。         搭建项目  --就是一个disconf-web 安装依赖软件 安装Mysql(Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using EditLine wrapper) 安装Tomcat(apache-tomcat-7.0.50) 安装Nginx(nginx/1. ...
承接上一篇  http://spjich.iteye.com/blog/2264025   公交位置判断完成以后,模拟测试会比较麻烦,要模拟公交的动态移动,所以我做了一个模拟工具,模拟公交运动 以下是git地址 https://git.oschina.net/spjich/busMonitor.git 运行环境 java1.7/java1.6 tomcat7 redis可选 运行首页 step1.设置模拟线路 在输入框中输入你要模拟的线路,本程序就会模拟一辆bus在该线路上的移动 step2.查看线路路径 这个功能可以查看到在step1中设置的线路的路径 ...
目前网上介绍ThreadLocal类用法的博文很多,看过后我们基本可以得出以下结论 ThreadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。 好了,至此ThreadLocal的概念我们弄清了,它是每个线程的菊部变量(该死的输入法)。但是java有了类的局部变量,这个ThreadLocal是否显得多余,我们为什么或者在什么情况下用这个东西? 先看以下两段代码   代码1.使用ThreadLocal   public class ThreadLocalDemo imple ...
假如你的城市,每台公交车上都装了一个gps,更幸运的是你还可以获得这些gps上报的位置信息,那如何做一款公交位置查询app,或者公交位置监控软件呢? 宏观上:   实时性(每辆车每10秒上报一次位置信息,全市上万量公交 ...
最近在做服务器的高可用性,考虑主从热备初步准备采用keepalive这个工具来完成这个需求,下面主要做了一个keepalive入门实验   测试环境 两台centos 172.171.48.151 主 172.171.48.158 备   keepalive两台机器都要安装     安装前准备工作 keepalive依赖下面几个包  rpm -qa |grep gcc rpm -qa |grep openssl-devel如果没安装的就yum一下   安装keepalive 下载最近的安装包 http://www.keepalived.org/ 本人上传到li ...
网上利用java发送http请求的代码很多,一搜一大把,有的利用的是java.net.*下的HttpURLConnection,有的用httpclient,而且发送的代码也分门别类。今天我们主要来说的是利用httpclient发送请求。 httpclient又可分为 httpclient3.x httpclient4.x到httpclient4.3以下 httpclient4.3以上 不同httpclient版本其请求发送的方式也不一样,下面来做个归纳   httpclient3.x HttpClient client = new HttpClient(); / ...
在 (一)androidpn-server tomcat版源码解析之--项目启动这篇中,已经描述了整个推送服务器的启动过程,并且把握到了消息的入口即XmppIoHandler这个类,今天我将继续往下分析下面的核心代码,主要分为3大块,链接创建,消息的发送,链接关闭。 先贴一段XmppIoHandler的部分代码 /** * Invoked from an I/O processor thread when a new connection has been created. */ public void sessionCreated(IoSession ...
Global site tag (gtag.js) - Google Analytics