自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

maven搭建模块工程

maven搭建模块工程,建立项目依赖,并且实现web工程项目上的分层

2015-04-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除