- 浏览: 50247 次
- 性别:
- 来自: 杭州
最新评论
-
comedsh:
这个问题其实是需要在你的代码(选主的代码)中去控制的;任何时候 ...
ZooKeeper全局锁WriteLock选举的BUG -
不爱吃鱼的猫:
很好,很强大
简捷强大的单文件XML操作工具类 -
sdtm1016:
hi,大神,想问下这个文件我可以在项目中直接用么?
简捷强大的单文件XML操作工具类 -
weiboxie:
session_id 应该是一直增加的,所以后启动的机器4 的 ...
ZooKeeper全局锁WriteLock选举的BUG -
carver:
这个不是ZK正式发行包里面的,是扩展包,官方没有修复,我自己改 ...
ZooKeeper全局锁WriteLock选举的BUG
文章列表
经常看到有人写这样的代码:new String(“乱码”.getBytes(“GBK”),”UTF-8”),能写出这种代码其实是对编码原理一点都没有理解,这种写法根本没有任何作用,浪费资源。
Java编码涉及到的就两个对象:string和byte,编码涉及的也 ...
最近项目中采用ZK去选择分布式集群的Master/Slave,生产环境运行一段时间中,经常出现同时存在多个Master的问题,然后去阅读了一下ZK扩展包的源码,发现两个BUG:
BUG:多机器同时获取WriteLock全局锁时有可能会有多个机器成为Leader。
原因分析:WriteLock创建临时自增节点是采用x-session_id-sequece_no的方式,在选举Leader时,通过TreeSet对节点进行排序,最小的节点就会被选为Leader,其它的会被选为Follower。由于ZNodeName的compareTo方法的实现问题,WriteLock获取的锁时并不是按sequ ...
一键跑完工程中所有单元测试的方法
- 博客分类:
- Java
研究了一下午,费话少说,直接上代码,依赖commons-io,有兴趣的朋友自己深究:
package com.carver;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons ...
把Unicode转换为原始字符的方法
- 博客分类:
- Java
支持任何Unicode字符串的转换。
源代码:
private static final Pattern REG_UNICODE = Pattern.compile("[0-9A-Fa-f]{4}");
public static String unicode2String(String str) {
StringBuilder sb = new StringBuilder();
int len = str.length();
for (int i = 0; i < len; i++) {
char c1 = str.charAt ...
JBOSS日志错误解决方案
- 博客分类:
- Java
在JBOSS启动的时候,相信很多人都见到过下面这个日志错误:
[STDERR:152] - log4j:ERROR Could not instantiate class [org.jboss.logging.appender.FileAppender].
[STDERR:152] - java.lang.ClassNotFoundException: org.jboss.logging.appender.FileAppender
[STDERR:152] - at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
...
HashMap学习随笔
- 博客分类:
- Java
今天看了一下HashMap的实现,记录一下心得:
一、HashMap采用普通数组来保存元素
二、HashMap中添加元素的操作步骤
public V put(K key, V value) {
if (key == null)
return putForNullKey(value);
int hash = hash(key.hashCode ...
TOP生产环境最近频频发生日志丢失事件,上了三拨人去解决,过了一段时间又出现了,太诡异了!具体现象如下:
1. 有一半的机器日志正常生成,而另一半的机器几乎没有生成日志。
2. 在日志丢失的机器上,所有普通logger配置 ...
1. 安装ASP.NET MVC3
http://download.microsoft.com/download/1/4/C/14C0533D-2299-42CD-898C-10AA5156E243/AspNetMVC3Setup.exe
2. 注册ASP.NET 4.0到IIS
3. Web共享工程文件夹到IIS站点
4. 配置站点工程的ASP.NET版本为:4.0
5. 设置站点URL后缀映射(.*)
注:一定不能勾选“check that file exists”
6. 设置本地依赖MVC3库:System.Web.Abstractions. ...
经过同样的缓存优化后,JSON解释器在性能上要比微软自带的XML解释器慢10倍左右[XML为0.15ms,JSON为1.56ms],不过由于JSON的返回结果要比XML小一些,相对于网络IO的性能,这个1毫秒级别的性能差距也就可以忽略不计了
/// <summa ...
字符串长度限制终极解决方案
- 博客分类:
- Java
1. 利用String类的length属性
int length = "我是字符串".length();
这种方法只能计算字符串的长度,一般情况下都会比数据库中规定的长度要大。
2. 利用正式表达式匹配中英文的字符数
3. 利用String的getBytes方法获得字节数
int length = "我是字符串".getBytes("GBK").length;
这种方法常用于保持和数据库一致的字条串长度限制。
性能比较:
public static void main(String[] args) throws Exception {
System.out.println("======Begin Test======");
test1();
test2();
System.out.println("======End Test======");
}
public static void test1() {
Pattern pattern = Pattern.compile("\\.(jpg|png| ...
/// <summary>
/// 获取文件的真实后缀名。目前只支持JPG, GIF, PNG, BMP四种图片文件。
/// </summary>
/// <param name="fileData">文件字节流</param>
/// <returns>JPG, GIF, PNG or null</returns>
public static string GetFileSuffix(byte[] ...
基于泛型的对象实例构造方法
- 博客分类:
- .NET
如何创建泛型空对象实例:
default(T)
如何创建泛型对象实例:
Activator.CreateInstance(typeof(T))
如何创建动态泛型对象实例:
Type listType = typeof(List<>).MakeGenericType(new Type[] { type });
IList listObjs = Activator.CreateInstance(listType) as IList;
工程地址:http://code.google.com/p/top4net/
- 2009-08-05 01:35
- 浏览 2263
- 评论(0)
装饰模式概念
Decorator模式是构造型的设计模式之一,它可以动态地改变一个对象方法的行为。
装饰模式类图
Component
原有类的接口ConcreteComponent
功能实现类。Component的具体实现类Decorator
装饰抽象类。与ConcreteComponent一样都继承了Component接口,但实现的方式与ConcreteComponent有区别。ConcreteComponent通过单纯继承的方式来实现;而Decorator则通过对Component对象的封装与动作委让方式来实现。
ConcreteDecoratorA与Con ...
- 2009-08-04 23:02
- 浏览 1206
- 评论(0)