- 博客(21)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
Curator使用琐事杂记
Watcher部分 这种方式只能监听一次,监听完了需要重新注册watcher client.getChildren().usingWatcher(new AA2.Watcher()).forPath("/b"); PathChildrenCache 只能监听本层以及第一层子层(监听/b 只能监听到/b/c,不能监听到/b/c/d),且每次生成时,假如节点存在,会被重复...
2018-03-02 14:57:43
264
logback配置黄金法则
不少人会有logback.xml里面root与logger关系,他们之间如何继承如何配置才能达到需求的问题,网上归纳的很凌乱,以下是个人总结的几条黄金法则。 root是公共属性,没有logger时会找root里对应level的appenderadditivity默认为true,为true时会忽略level限制并继承root节点中配置的所有属性说明:additivity...
2018-01-12 16:41:42
194
更优雅的延迟执行实现---环形队列
在做业务时经常遇到某些一次性的延迟需求,比如新闻的定时发布,过了一个时间阈值后某个任务的状态置为超时或触发某个接口。之前实现这种一次性的延迟需求基本会有3种思路。(1)线程轮询扫库(2)Timer类(3)定时框架Quartz这三种方案都存在各自的问题对于“线程轮询扫库”,性能开销巨大,实时性差对于“Timer类”来说,假如项目重启,之前设置的定时就荡然无存对于“...
2017-03-20 14:09:50
1046
关于Mybatis一级缓存
关于Mybatis一级缓存的介绍 https://yq.aliyun.com/articles/18678 这篇已经介绍的非常详尽了。但是读完以后我产生了一个疑问,如果在同一个session中2次相同的数据库操作之间,DB里的数据改变了,Mybatis一级缓存如何确保数据一致性,带着以上疑问我做了如下实验: 1.方法级别没有开启@Transactional,Mybatis查询记录如...
2017-01-17 14:41:56
483
原创 Java concurrent 之 AQS
转自:http://www.blogjava.net/xylz/archive/2010/07/06/325390.htmlAQSAbstractQueuedSynchronizer,简称AQS,是J.U.C最复杂的一个类,导致绝大多数讲解并发原理或者实战的时候都不会提到此类。但是虚心的作者愿意借助自己有限的能力和精力来探讨一二(参考资源中也有一些作者做了部分的分析。)。首先从理论...
2016-12-30 17:58:33
151
原创 spring-data-redis消息订阅RedisMessageListenerContainer源码解读
项目中一直在使用redis的subscribe功能,偶然会发生订阅断开的问题,一直无法定位,在此之下只能阅读源码定位问题首先从spring.xml入手观察配置 <bean id="twaListener" class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">...
2016-11-07 15:40:43
15002
1
使用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...
2016-07-29 17:53:12
191
原创 自己动手实现sso
原公司业务中有sso系统,我当时完成的角色是接入,现在自己动手写了一个sso项目地址https://git.oschina.net/spjich/sso-simple.git 模拟sso跨域,同域登录同域域名oa.ji.comsso.ji.com跨域域名oa.comsso.com加密算法cookie内容加密-ASE服务器间信息验证-RSA证书同域流...
2016-05-09 17:42:34
205
分布式配置文件管理工具disconf部署以及运用
disconf之前有搭建过一次但是没有成功,比较纠结它的基于nginx实现动静分离的思想,其实明明可以少一个组件的依赖和配置,或许开发者有其自己的考虑吧。这次终于搭建完毕并且跑通,下面写几个碰到但是官方文档中没给出的坎。 搭建项目 --就是一个disconf-web安装依赖软件安装Mysql(Ver 14.12 Distrib 5.0.45, for...
2016-04-27 17:59:12
320
原创 公交位置模拟工具
承接上一篇 http://spjich.iteye.com/blog/2264025 公交位置判断完成以后,模拟测试会比较麻烦,要模拟公交的动态移动,所以我做了一个模拟工具,模拟公交运动以下是git地址https://git.oschina.net/spjich/busMonitor.git运行环境java1.7/java1.6tomcat7redis可选...
2015-12-22 15:37:31
317
让人困惑的ThreadLocal
目前网上介绍ThreadLocal类用法的博文很多,看过后我们基本可以得出以下结论ThreadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。好了,至此ThreadLocal的概念我们弄清了,它是每个线程的菊部变量(该死的输入法)。但是java有了类的局部变量,这个ThreadL...
2015-12-16 11:01:12
213
实时公交位置系统的实现
假如你的城市,每台公交车上都装了一个gps,更幸运的是你还可以获得这些gps上报的位置信息,那如何做一款公交位置查询app,或者公交位置监控软件呢?宏观上: 实时性(每辆车每10秒上报一次位置信息,全市上万量公交,个接口的吞吐量以及实时性是一个考验) 准确性(如何准确判断每辆车的位置,以及行驶方向)微观上: 火星坐标系的转换(gps上报的是原生坐...
2015-12-14 17:30:27
2403
keepalive做HA热备
最近在做服务器的高可用性,考虑主从热备初步准备采用keepalive这个工具来完成这个需求,下面主要做了一个keepalive入门实验 测试环境两台centos172.171.48.151 主172.171.48.158 备 keepalive两台机器都要安装 安装前准备工作keepalive依赖下面几个包 rpm -qa |grep gcc ...
2015-09-07 17:20:18
637
HttpClient 4.3与4.3版本以下版本比较
网上利用java发送http请求的代码很多,一搜一大把,有的利用的是java.net.*下的HttpURLConnection,有的用httpclient,而且发送的代码也分门别类。今天我们主要来说的是利用httpclient发送请求。httpclient又可分为httpclient3.xhttpclient4.x到httpclient4.3以下httpclient4.3以上...
2015-07-16 16:46:05
851
(二)androidpn-server tomcat版源码解析之--push消息处理
在 (一)androidpn-server tomcat版源码解析之--项目启动这篇中,已经描述了整个推送服务器的启动过程,并且把握到了消息的入口即XmppIoHandler这个类,今天我将继续往下分析下面的核心代码,主要分为3大块,链接创建,消息的发送,链接关闭。先贴一段XmppIoHandler的部分代码/** * Invoked from an I/O process...
2015-07-10 11:03:45
150
(一)androidpn-server tomcat版源码解析之--项目启动
最新项目在搞安卓推送,选用的xmpp协议,用了一套androidpn推送框架服务端是tomcat的版本的androidpn-server,网上对于这套服务端源码的理解比较少,于是我抽空把源码给解析了一遍并且了解到了整个服务的启动过程。下面是项目的git地址:https://github.com/msdx/androidpn/tree/master/androidpn-server-bin-...
2015-07-09 15:31:08
244
两种启动监听器ApplicationListener和ServletContextListener
引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器 ServletContextListener 特点: 依赖于sevlet容器,需要配置web.xml使用方法:public class StartListener implements ServletCo...
2015-07-08 10:13:47
1857
原创 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火狐浏览...
2015-07-07 15:47:56
353
基于HAproxy的 session同步实践
首先安装,启动,配置HAproxy的方法网上已经有很多的介绍,此处不再作过多阐述推荐2个比较有用的安装配置资料:安装说明http://blog.chinaunix.net/uid-17291169-id-4744949.html配置文件说明http://www.linuxidc.com/Linux/2012-07/65350.htm 另附简单操作代码重启 关闭 ...
2015-06-29 16:10:05
444
原创 nginx配置文件粗解
#运行用户#user nobody;#启动进程,通常设置成和cpu的数量相等worker_processes 2;#全局错误日志及PID文件#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;#工作模...
2015-06-29 11:40:10
123
eclipse利用maven创建Sevlet3.0项目
创建maven的webapp项目 修改项目路径下的 org.eclipse.wst.common.project.facet.core.xml文件由 <?xml version="1.0" encoding="UTF-8"?><faceted-project> <fixed facet="wst.jsdt.web"/&g..
2015-06-29 11:21:30
135
关于sevlet3.0异步的问题
2015-06-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人