- 浏览: 1236007 次
- 性别:
- 来自: 北京
最新评论
-
longxitian:
https://www.cnblogs.com/jeffen/ ...
万恶的Mybatis的EnumTypeHandler -
asialee:
ddnzero 写道博主请问FileUtils这个类是哪个包的 ...
使用mockftpserver进行ftp测试 -
ddnzero:
博主请问FileUtils这个类是哪个包的?还是自己的呢?能放 ...
使用mockftpserver进行ftp测试 -
yizishou:
为什么会intMap.get("bbb") ...
浅谈System.identityHashCode -
liguanqun811:
感觉LogManager打开了所有的LogSegment(文件 ...
jafka学习之LogManager
文章列表
今天用maven遇到两小个问题
1. 上传失败,根据提示才发现是需要填写distributionManagement的repository和snapshotRepository。
代码如下:
<distributionManagement>
<repository>
<id>xxx_local</id>
<name>XXXX Local Repository</name>
<url>http://maven.scm.xxx.com:8 ...
接下来我们来看bcs里面的实体对象。在介绍这个之前,我们首先来看一下bcs api都可以干什么。从官方文档我们可以看到,有三类api,分别是针对bucket的,针对object的,针对acl操作类的。
云存储Bucket可以看成是命名空间,开发者上传的任何数据必须是属于某个Bucket。上传任何数据之前请先确认是否已经创建Bucket,有关Bucket命名限制请参考约束与限制创建Bucket,分别有三个接口。分别为创建,删除,List Bucket。
Put Bucket 创建bucket,传递bucket名称和以及相应的acl信息(不是必须的)
L ...
本身想写一个例子程序的,发现官方的文档比较简单,所以想写一系列的java sdk阅读文章加强对bcs api和参数的认识,然后再写一个例子出来,今天我们先看一下操作的安全部分的代码实现,它位于:com.baidu.inf.iis.bcs.auth包下面,类也很简单,但是之前对java安全和加解密不熟悉,所以还花了点时间,今天将这个阅读过程记录下来。
首先我来看最简单的三个类,即就是BCSCredentials.java、BCSSignCondition.java、SigningAlgorithm.java,这个就不详细讲解了,BCSCredentials里面 ...
由于项目中多次使用到云存储方面的东西,特此总结一下,希望能更多的人使用百度BCS服务。关于如果申请开发者账号等问题,我这里就不再罗嗦了,大家去官方文档看一下即可:开发者中心,这个里讲的很好。
...
今天在排查一个问题,涉及到可变参数,目测已经判空,结果还是报了错误,于是写了个小例子分享下:
public class Test {
public static void main(String[] args) {
int a = 1;
String b = null;
testA(a,b);
}
private static void testA(int a, String... b) {
System.out.println(b == null);
System.out.println(b.length);
...
今天我们来记录mongodb的安装,从此踏入nosql世界。
在windows下面安装
首先我们应该去官方网站去下载相应的安装包: http://www.mongodb.org/downloads, 这个里面选择一个合适的安装包,一般来说我们在windows下面就是学习用的 ...
解压后有两个文件,一个为压缩包,另外一个为配置说明。 将压缩包中的两个文件:jrebel.jar,jrebel.lic 放到TOMCAT的BIN文件夹中(注:TOMCAT的路径最好不要带有空格,如D:\programe file\..) 在ECLIPSE中TOMCAT配置中选择JDK,加上以下这段话: -noverify -javaagent:D:/apache-tomcat-6.0.20/bin/jrebel.jar (注:前面留一个空格)
eclipse的配置如下: 修改后台java文件后自动热加载,如下所示:
在看了FrameDecoder后,我们接下来再看ReplayingDecoder,我们首先分析下为什么我们已经有了功能非常强大的FrameDecoder了,还行ReplayingDecoder呢,就从下面的例子看起。
假设消息结构是这样的:
VERSION - 1 byte
TYPE - 1 byte
PAYLOAD_LENGTH - 4 bytes
PAYLOAD - N bytes (depends on the value read at PAYLOAD_LENGT ...
我们接下来看一个也是比较重要的的解码器LengthFieldBasedFrameDecoder,这个和DelimiterBasedFrameDecoder比起来没有那么难理解,所以我们简单的看一下。
和之前一样,我们先来看一下局部变量。
private final int maxFrameLength;
private final int lengthFieldOffset;
private final int lengthFieldLength;
private final int lengthFieldEndO ...
前面我们分析了FrameDecoder的实现,我们接下来看看它的子类实现吧!
我们首先来看DelimiterBasedFrameDecoder的实现,个人认为这个类实现的真的很牛,有些变量的含义作者没有增加注释,有时候可能不容易猜到意图。首先我们来看一下这个类的成员变量:
private final ChannelBuffer[] delimiters;
private final int maxFrameLength;
private final boolean stripDelimiter;
private ...
项目中用到了ZeroClipboard,但是按照文档操作后发现不行,所以就研究了一下ZeroClipboard的源码,经过一番努力后就搞定,将排错过程记录下来,希望对大家有所帮助。
ZeroClipboard的原理就是后面隐藏一个透 ...
我们接下来就看和业务息息相关的解码器,首先我们来看FrameDecoder,这个东西应该是所有的解码器都会实现这个,所以我们来重点看一下。
FrameDecoder产生的根源就是TCP/IP数据包的传输方式决定的,包在传输的过程中会分片和重组,
正如javadoc里面所说的:
客户端在发送的时候的序列如下:
+-----+-----+-----+
| ABC | DEF | GHI |
+-----+-----+-----+
服务器端在接受到后可能会变成下面的序列:
+----+-------+---+---+
| AB | CDE ...
在netty里面所有的nio相关的操作都是异步的,返回一个channelfuture对象,这个里面可以添加一些listener,然后再相关操作完成后进行触发,最主要的是通过这个对象可以查询相关操作的执行情况,是成功了,还是失败了。
我们来就来看看DefaultChannelFuture的实现就好,我们应该能猜到netty的思想,里面有一个listener的集合,addListener会添加listener到集合里面,然后再真正的io操作完成之后来触发相应的listener,这里面有很多关于多线程的程序,这个还不是很了解,应该后面多恶补恶补。
...
看了ChannelHandler我们就来看ChannelPipeline,这个类实现了责任链模式,我们就直接来看这个类的实现吧,看完后我们再看看javadoc的,这个写的很详细。
static final InternalLogger logger = InternalLoggerFactory.getInstance(DefaultChannelPipeline.class);
static final ChannelSink discardingSink = new DiscardingChannelSink();
priv ...
netty里面最重要的应该是ChannelHandler,这个里面也是用户编程直接打交道的接口,也是串行于ChannelPipeLine里面执行相应的业务逻辑。
从类结构来看,一个handler应该有一个ChannelHandlerContext,ChannelHandler是处在上层的一个标识接口,下面有两个接口分别来处理Upstream event和一个Downstream event。
ChannelHandler比较好理解,我们重点来看DefaultChannelHandlerContext的实现类。
vola ...