如何使用JAVA程序将消息从文件路由到Azure事件中心
它与ActiveMQ配合使用效果良好 我想用Azure事件中心编写相同的java程序。文件必须由Camel读取并路由到Azure事件中心如何使用JAVA程序将消息从文件路由到Azure事件中心,java,azure,events,apache-camel,Java,Azure,Events,Apache Camel,它与ActiveMQ配合使用效果良好 我想用Azure事件中心编写相同的java程序。文件必须由Camel读取并路由到Azure事件中心 //SimpleRouteBuilder import org.apache.camel.builder.RouteBuilder; public class SimpleRouteBuilder extends RouteBuilder{ @Override public void configure() throws Excepti
//SimpleRouteBuilder
import org.apache.camel.builder.RouteBuilder;
public class SimpleRouteBuilder extends RouteBuilder{
@Override
public void configure() throws Exception {
from("file:d:/InputFolderForCamel").split().tokenize("\n").to("jms:queue:javainuse");
}
//MainClass
SimpleRouteBuilder routeBuilder = new SimpleRouteBuilder();
CamelContext ctx = new DefaultCamelContext();
//configure jms component
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://0.0.0.0:61616");
ctx.addComponent("jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
try {
ctx.addRoutes(routeBuilder);
ctx.start();
Thread.sleep(5 * 60 * 1000);
ctx.stop();
}
catch (Exception e) {
e.printStackTrace();
}
URI格式:azure eventhubs://[namespace/eventHubName][?选项]
如果提供connectionString,则不需要namespace和eventHubName,因为这些选项已包含在connectionString中
例如:azure-eventhubs://camel/camelHub?sharedAccessName={您的SASpolicyName}&sharedAccessKey={您的SASaccessKey}
如果您想使用原始连接字符串,它将是azure eventhubs:?connectionString=Endpoint=sb://{your namespace name}.servicebus.windows.net/;SharedAccessKeyName={您的SASpolicyName};SharedAccessKey={您的SASaccessKey};EntityPath={event hub name}
您可以从Azure门户->您的事件中心命名空间->共享访问策略刀片获取sharedAccessName
和sharedAccessKey
值
阅读有关Camel事件中心URI的更多信息。是。我已经看过这些文件了。我正在尝试将文件放在一个特定的位置,它应该由camel读取,并将发送到azure事件中心。我对RouteBuilderfrom(“文件:d:/InputFolderForCamel”).split().tokenize(“\n”).to(“azure”)的to()方法中使用的URI模式感到困惑-eventhubs://VEventHub1/events?SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=/U3KTW4QP3LNTE3GJPGH5GVN2PC8XR3ILB4TIQ23C4=“);它也不起作用。它显示了从(“文件:d:/InputFolderForCamel”).split().tokenize(“\n”).to(“azure事件集线器:?connectionString=Endpoint=sb://vhub1.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=/U3KTW4QP3LNT3GJPGH5GVN2PC8XR3ILB4TIQ23C4=”)未检测到的端点;两者都错了!。第一个应该是azure-eventhubs://VEventHub1/events?sharedAccessName=RootManageSharedAccessKey;sharedAccessKey=/u3kTw4qp3lntET3gJPGh5gVn2pc8Xr3iLB4tIq23c4=“第二个(连接字符串)未定义
实体路径。它应该是Endpoint=sb://vhub1.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=/U3KTW4QP3LNTE3GJPGH5GVN2PC8XR3ILB4TIQ23C4=;EntityPath={event hub name}
from("file:d:/InputFolderForCamel").split().tokenize("\n").
to("azure-eventhubs://[namespace/eventHubName][?options]");