Apache Camel:Mina组件简单介绍
apache camel mina component是camel支持tcp、udp互通的一个组件。利用它你可以实现客户端与多个通讯服务器及多个通讯服务器之间的互通。但是缺省条件下实现不了这个目的,该插件仅仅默认提供了MinaConsumer和MinaProducer,通过配置camel路由可以实现MinaConsumer到MinaProducer的数据传送,但是对于MinaProducer到MinaConsumer的数据传送则没有代码提供,下面对其实现做一些简单介绍:
首先介绍两个概念
1、MinaConsumer,消费者的代表,它的主要作用是接受来自客户端的连接和负责与客户端的数据传输。当然了,方法是活的,你也可以让一个服务器主动连接过来。
2、MinaProducer,生产者的代表,它的主要作用是连接到通讯服务器并与之进行数据交互。当然了,如果一个客户端有侦听功能,你也可以连接过去。
现在我们介绍下代码上的实现
1、首先在MinaEndpoint类里添加一个MinaConsumer集合:
private static final CopyOnWriteArrayList<DefaultConsumer> consumers = new CopyOnWriteArrayList<DefaultConsumer>();
同时添加三个函数
public List<DefaultConsumer> getConsumers() {
return consumers;
}
public void addConsumer(DefaultConsumer consumer){
consumers.add(consumer);
}
public void removeConsumer(DefaultConsumer consumer){
consumers.remove(consumer);
}
2、在MinaConsumer类中doStart()函数里添加如下代码:
endpoint.addConsumer(this);
同时在doStop()函数里添加如下代码:
endpoint.removeConsumer(this);
3、在MinaProducer类的内部类ResponseHandler的messageReceived函数里修改部分代码为如下:
try {
int size = endpoint.getConsumers().size();
if (size == 0) {
LOG.warn("No consumers available on endpoint: "
+ endpoint + " to process " + exchange);
} else if (size == 1) {
DefaultConsumer consumer = endpoint.getConsumers()
.get(0);
// AsyncProcessor processor =
// AsyncProcessorTypeConverter.convert(consumer.getProcessor());
consumer.getProcessor().process(exchange);
} else if (size > 1) {
for (DefaultConsumer consumer : endpoint.getConsumers()) {
consumer.getProcessor().process(exchange);
}
}
} catch (Exception e) {
e.printStackTrace();
}
通过以上三步就可以实现MinaProducer到MinaConsumer的数据传送了,然后通过配置camel路由就可以实现我们上面所说的互通了。
转载于:https://my.oschina.net/u/2332347/blog/637867
分享到:
相关推荐
ApacheCamel-JDBC Apache Camel JDBC组件 代码样例Demo
Apache Camel 开发使用指南中文版
Apache Camel - FTP组件 Apache Camel - CXF组件(Code First and WSDL File First) Apache Camel - JMS/ActiveMQ组件 Apache Camel - Jetty组件 Apache Camel - Timer组件 Apache Camel - JDBC组件 Apache Camel - ...
Apache Camel 七大集成组件,包括activemq http jdbc jetty mail mybatis sql;耗时一个月翻译,下载后别忘记好评。。
ApacheCamel-FTP ApacheCamel-FTP Apache Camel FTP组件 Demo 样例
apache骆驼23核心组件下载,bean browse calss contreol bus date format 等等等等23核心组件,谷歌翻译后手动修改常用语法,耗时一个月成果,markdown文件
简化软件集成:一个ApacheCamel教程在本教程中,您将了解集成大型软件的一些最大挑战,以及ApacheCamel如何轻松解决这些难题。在您的软件工程中,您可能至少做了一次以下操作:1.确定应启动数据发送的业务逻辑片段。...
05-ApacheCamel-CXF-WebService Apache Camel 集成 CXF组件,包含服务端、测试客户端
通过Spring Boot学习Apache Camel Framework通过Spring Boot学习Apache Camel Framework。 使用Active MQ,Kafka和REST API实施EI体系结构模式。 企业集成非常复杂。 微服务和云的发展使企业整合变得更加复杂。 您...
该文档来自阿帕奇2015中国路演。姜宁发表了题为“我和Apache Camel这些年/Years of Apache Camel and I”的主题演讲,欢迎下载!
01-ApacheCamel-HelloWorld Apache Camel Http helloworld Demo
camel direct http jdbc mybatis 等等组件 骆驼 camel部分源码分析
camel-idea-plugin, Apache camel IntelliJ IDEA 插件 Apache camel IDEA插件 IntelliJ IDEA的插件,为代码编辑器提供一组 Apache camel 相关的功能。插件包括:Java,XML,属性或者yaml文件中驼峰终结点的代码完成...
09-ApacheCamel-Timer Apache Camel Timer组件 定时器 代码Demo
An advanced guide to Enterprise Integration using Apache Camel About This Book Integrate your applications with Apache Camel and enhance efficiency and scalability Master all the EIPs supported by ...
骆驼开发指南,企业集成,路由表达式和判断,camel高级编程,api组件框架,耗时半年翻译成果,全部为markdown文档!!!
apache camel for windows