- 博客(13)
- 收藏
- 关注
MetaQ技术内幕——源码分析(八)
上一篇以及上上篇基本介绍了MetaQ如何使用Gecko框架在网络上传输数据,今天将继续进一步介绍在Broker,各种命令的处理逻辑(暂时将不涉及到事务处理)。 依旧是在MetaMorphosisBroker的registerProcessors()方法中,我们可以注意到一点,每个Processor的实例在构造的时候都注入了一个brokerProcessor的变量,该变量的类型为Comma...
2013-09-04 09:57:12
160
MetaQ技术内幕——源码分析(七)
前面介绍了Broker在网络传输过程中使用的数据结构,同时也介绍了MetaQ使用了Gecko框架作为网络传输框架。 有人会问,Gecko什么调用MetaEncodeCommand的encode()方法,让命令变成可见的明文在网络传输,Gecko又在什么时候将网络传输的数据包装成一个个Command对象? 或许有人已经注意到了笔者在介绍Broker启动类MetaMorphosisB...
2013-09-03 09:33:48
189
MetaQ技术内幕——源码分析(六)
前几天不小心茶水泼到了笔记本上,这两天才修好,就赶紧写上一篇。 前面介绍过MetaQ使用gecko框架作为网络传输框架,Gecko采用请求/响应的方式组织传输。MetaQ依据定义了请求和响应的命令,由于命令Client和Broker均需要使用,所以放在了common工程的类MetaEncodeCommand中: public String GET_CMD = "get"...
2013-09-02 10:32:14
160
MetaQ技术内幕——源码分析(五)
Broker接收从Producer(Client端)发送的消息,也能够返回消息到Consumer(Client),对于Broker来说,就是网络输入输出流的处理。 Broker使用淘宝内部的gecko框架作为网络传输框架,gecko是一个NIO框架,能够支持一下特性: 1、 可自定义协议,协议可扩展、紧凑、高效 2、 可自动管理重连,重连由客户端发起 3、 需进行心跳检测,及时发现...
2013-08-27 22:44:02
204
MetaQ技术内幕——源码分析(四)
前面,我们已经把Broker存储最重要的一个类具体分析了一遍,接下来,我们分析一下其删除的策略。前面介绍过Messagestore采用的多文件存储的组织方式,而存储空间不可能无限大,得有一定的删除策略对其进行删除以腾出空间给新的消息。 MetaQ允许自定义删除策略,需要实现接口DeletePolicy,默认提供了两种删除策略:过期删除(DiscardDeletePolicy)和过期打包...
2013-08-26 18:04:09
159
原创 MetaQ技术内幕——源码分析(三)
前面忘了先介绍一下Broker消息存储的组织方式,我们前面知道了一条消息属于某个Topic下的某个分区,消息存储的组织方式是按照此方式进行组织的,结构图如下: 所以对于每个Topic而言,分区是最小的元素,对外API主要由MessageStore提供,一个MessageStore实例代表一个分区的实例,分区存储具体的内容。在MetaQ中,分区的存储采用的多文件的方式进行组合,即M...
2013-08-23 16:32:03
196
原创 MetaQ技术内幕——源码分析(二)
消息,是MetaQ最重要的资源,在分析MetaQ之前必须了解的概念,我们所做的一切都是围绕消息进行的,让我们看看MetaQ中消息的定义是怎样的,MetaQ的类Message定义了消息的格式: public class Message implements Serializable { private long id; //消息的ID private String topic;...
2013-08-22 14:14:48
213
原创 JMX协议连接方式
JMX协议的实现由IIOP和JMXMP,其连接方式有所不同: IIOP如下: Hashtable<String, Object> env = new Hashtable<String, Object>(); String prividerUrl = "iiop://" + host + ":" + port; String[] credentials = n...
2013-08-21 17:42:54
1249
原创 Spring中的事务控制学习中(转)
1.1. 有关事务(Transaction)的楔子 1.1.1. 认识事务本身 1.1.2. 初识事务家族成员 1.2. 群雄逐鹿下的Java事务管理 1.2.1. Java平台的局部事务支持 1.2.2. Java平台的分布式事务支持 1.2.2.1. 基于JTA的分布式事务管理 1.2.2.1.1. JTA编程事务管理 1.2.2.1.2. JTA声明性事务管理 1.2.2.2...
2013-08-21 17:35:14
199
原创 MetaQ技术内幕——源码分析(一)
笔者最近在业务上需要使用到MetaQ,也借此阅读了MetaQ的相关源码,准备分享MetaQ源码分析。先扫扫盲,如果读者对MetaQ已经较为熟悉,可以跳过下一段落。 一、MetaQ简介 MetaQ(全称Metamorphosis)是一个高性能、高可用、可扩展的分布式消息中间件,,MetaQ具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志...
2013-08-21 17:31:41
306
原创 统一身份证自定义协议(2)
上一篇文章介绍了自定义协议,但是从某种角度来看,上面的自定义协议并不是一个完全可靠的协议,为何?待我慢慢道来。 简单的来讲,统一身份认证应该分为两块,一是身份认证,一是统一认证(可以理解为sso),如果要集成多协议,比如SAML、CAS,是在统一认证进行集成,而不是身份认证。 图1 1)何为身份认证,我们从图1 的过程来阐述。假设用户没有登陆过任何系统,某用...
2013-04-27 18:04:15
354
原创 统一身份证自定义协议(1)
在阅读本文前,需有一定的统一身份认证的知识,最好阅读或者使用过cas或者kerberos 1. 原理和协议 从结构上看,自定义协议包括SP、IDP Server和IDP Engine三部分(UA为浏览器)。其中IDP Server和IDP Engine独立部署,主要负责对用户进行认证,SP负责处理客户端受保护资源的访问请求,需要登录时,重定向到IDP Server。如下图所示: ...
2013-04-27 17:03:19
473
原创 flex编译—加入主题参数
在使用flashbuilder开发flex程序的过程中,有时我们会为了支持某种主题而在flex编译器->附加的编译器参数下加入如下语句:-locale en_US -theme=${flexlib}/themes/Halo/halo.swc。但是我们不能直接使用flashbuilder生成出来的swf或者swc(存在版权问题),必须使用ant构建自己的swf或者swc。将语句-loc...
2012-09-19 10:43:22
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人