Java远程通讯可选技术及原理——转在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,...
分类:
编程语言 时间:
2014-09-08 01:00:56
阅读次数:
755
上篇讲到启动Consumer,调用了DefaultCamelContext.startService(service)方法,下面是方法源码:
private void startService(Service service) throws Exception {
if (service instanceof StartupListener) {
StartupListener liste...
分类:
其他好文 时间:
2014-09-07 17:20:15
阅读次数:
209
路由启动由CamelContext的start()方法开始,在该方法中调用了super.start(),即调用父类ServiceSupport的start()方法,ServiceSupport的start()方法中调用了doStart()方法又回到CamelContext的doStart()方法,该方法中调用了doStartCamel()方法,在doStartCamel()方法中有两个最重要的方法...
分类:
其他好文 时间:
2014-09-07 11:03:15
阅读次数:
231
Camel添加路由一般情况下是调用CamelContext的addRoutes(RoutesBuilder builder)方法实现的,下面我们看看该方法是如何实现路由的添加的:
public void addRoutes(RoutesBuilder builder) throws Exception {
//调用RouteBuilder的addRoutesToCamelContext方法,并...
分类:
其他好文 时间:
2014-09-06 20:03:13
阅读次数:
1327
个人认为Camel中最重要的两大块,一是路由的构建过程,二是路由构建完成后的执行过程。
下面就参数前面的Camel示例来说说路由的构建细节。
其实这里说的路由构建其实是构建路由定义,对应Camel中的RouteDefinition类,一个RouteDefinition对象规定了或者说指定了一个消息从哪里产生,中间要经过什么样的处理,最后路由到什么地方。RouteDefinition有点类似ja...
分类:
其他好文 时间:
2014-09-06 17:26:03
阅读次数:
504
在前面的Camel示例中,路由的构建中调用了RouteBuilder的from,to方法,该方法的参数为一个uri字符串。Camel运行是由组件(component)进行组织的,而我们传递的参数为一字符串,所以Camel要根据这个uri字符串来查找到对应的组件,即要维护uri到组件之间的映射关系。
查找组件的过程是调用DefaultCamelContext中的getComponent(Str...
分类:
其他好文 时间:
2014-09-06 16:10:53
阅读次数:
308
Endpoint:即节点,即消息经过的地方
Camel支持的EndPoint
1.JMS队列
2.web service
3.文件
4.FTP服务
5.email地址
6.POJO
在基于Camel的应用中,你会创建一些EndPoint然后用路由将这些EndPoint连接起来。Camel定义了一个名这EndPoint的接口,每一个Camel支持的EndPoint都有一个类实现了该E...
分类:
其他好文 时间:
2014-09-06 01:08:32
阅读次数:
198
这是一个很简单的Camel例子,代码如下:
public static void main(String[] args) throws Exception {
//创建Camel上下文
DefaultCamelContext camelContext = new DefaultCamelContext();
//添加一个路由,参数为路由建造者
camelContext.addRoutes...
分类:
其他好文 时间:
2014-09-06 01:07:52
阅读次数:
215
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、 Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础...
分类:
编程语言 时间:
2014-09-05 17:48:21
阅读次数:
155
项目整体结构是这样的:
通过一些设备,实时检测各种类型的数据,新的数据以消息的形式通过Shuttle ESB传输。
Shuttle 服务器接收到消息,它会按照需求要求,对数据进行一定的加工处理,然后将消息注册到消息管理器(注意:这里的消息管理器,就是观察者中的主题)。而每一个显示终端就是一个观察者,当消息注册到消息管理器时,显示终端就会自动更新最新消息,然后在根据要求,进行显示。...
分类:
其他好文 时间:
2014-09-05 14:26:31
阅读次数:
315