Camel笔记:Camel定时传送数据

Camel笔记:Camel定时传送数据,第1张

本文接上往篇: Camel笔记(从Mysql到本地文件与Kafka队列) - (jianshu.com)

在上篇,已经实现了通过页面请求将Mysql数据发送到本地目录和kafka队列,但对于实时数据,有时候有同步要求,这就要求我们以一定的颂游频率源源不断地将源数据传送到目的野枝销地,也就是要用到定时任务。

定时任务我们采用camel-quartz2组件。我们在上篇的基础上,再添加一个定时任务。

1)准备工作

首先要修改poem文件,添加camel-quartz2依赖

这里要注意一下,上篇我们使用的camel系列组件版本是2.17.0,由于quartz2至少需要2.2以上版本,所以要将所有camel系列组件版本都调整为2.22.1

2)修改EmployeeServiceImpl服务类,添加定时器,在这个定时器里调用前面的"direct:write"这个端点,每5秒钟执行一次

3)重启程序,查看输出

可以看到,定时任务正常搭核运行了,每5秒一次

著名的EIP实现框架Camel最早起源于ActiveMQ内的一些基于消息的集成需求,然后逐渐发展成为一个ActiveMQ的子项目,最后这一块的功能越来越完善,就成为了Apache的顶级项目。

所以,从一开始到现在,ActiveMQ与Camel这两个项目一直都是紧密联系的,可以非常方便的整合使用:比如在ActiveMQ的配置文件中直接按照Spring的配置方式使用Camel来实现ActiveMQ与其他外部系统或中间件的集成。而ActiveMQ中的一些简单的集成功能也越来越倾向于直接去掉或者移植到Camel环境中去实现。

环腊岩境:ActiveMQ 5.9.0、RabbitMQ3.3.0、

一、ActiveMQ与ActiveMQ的集成

实现一个简单的从一个Queue到另一个Queue的消息转发。

1.在activemq.xml中加一句:<import resource="camel.xml"/>

2.加一个简单路由,从队列example.A转发消息到队列example.B,camel.xml的内容为孝笑:

[html] view plaincopy

<span style="font-size:14px"><beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://camel.apache.org/schema/springhttp://camel.apache.org/schema/spring/camel-spring.xsd

http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">

<camelContext id="camel"xmlns="http://camel.apache.org/schema/spring">

<route>

<description>Example Camel Route</description>

<from uri="activemq:example.A"/>

<to uri="activemq:example.B"/>

</route>

</camelContext>

<bean id="activemq"class="org.apache.activemq.camel.component.ActiveMQComponent" >

<property name="connectionFactory">

<beanclassbeanclass="org.apache.activemq.ActiveMQConnectionFactory">

<property name="brokerURL"value="vm://localhost?create=true"/>

<property name="userName"value="${activemq.username}"/>

<property name="password" value="${activemq.password}"/>

</bean>

</property>

</bean>

</beans></span>

3.启动ActiveMQ后,浏览器输入http://localhost:8161/admin/queues.jsp,可以看到自动创建了一个队列example.A,并且加了一个消费者。

4.点击Send To,发送一个消息到example.A,刷新页面,可以看到消息已经被转发:

二、ActiveMQ与RabbitMQ集成

详细的配置参数:http://camel.apache.org/rabbitmq.html

Ø 从RabbitMQ路由消巧局含息到ActiveMQ

1.Camel里添加AMQP的路由如下:

[html] view plaincopy

<span style="white-space:pre"> </span><route>

<from uri="rabbitmq://localhost/t?username=guest&password=guest&exchangeType=topic&autoDelete=false&queue=t"/>

<to uri="activemq:example.fromRMQ"/>

</route>

2.复制camel中的camel-rabbitmq-2.13.0.jar 和rabbitmq-java-client中的rabbitmq-client.jar到apache-activemq-5.9.0\lib\camel下。

3.重启ActiveMQ,在rabbitmq的控制台可以看到自动创建的exchange为t,

1、java没有固定的则燃亮文件名开头,不过有命名规范,驼峰规则。

格式:

单词之间不以空格、段脊连接号或者底线联结(例如不应写成:camel case、camel-case或camel_case形式)。共有两种格式:

1、小驼峰式命名法(lower camel case):

第一个单字以小写字母开始,第二个单字的首字母大写。例如:firstName、lastName。

2、大驼峰式命名法(upper camel case):

每一孙宽个单字的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为 Pascal 命名法。

变种:StudlyCaps,是“驼峰式大小写”的变种。

补充说明,在JAVA中:类名的标识符一般用大驼峰式书写格式,方法和变量的标识符则多用小驼峰式书写格式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12284794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存