骆驼通过jms和休息来调解服务

时间:2014-01-23 02:28:10

标签: java apache-camel

在我的公司,我们开始使用网络服务。我的计划是通过2个协议http和jms提供对服务的访问。任何外部访问(公司网络外的客户端)到服务通常都是通过http和json通过一个宁静的URL,但在内部如果服务需要调用另一个服务,它将通过jms来完成,主要是为了将服务相互分离。

我的问题是关注

  1. 骆驼可以提供抽象,这样我就可以编写没有http,json和jms依赖的服务代码吗?我想驼峰处理http到java,json到java和jms到java转换通过一些中介和调用我的服务应该简单地通过一个java方法接受一个java对象作为请求。请记住,虽然http是同步模型,但jms必须模拟请求 - 响应。如果是,请您指出一个演示此设置的示例。

  2. 同样地,我希望camel将我的服务的响应转换为json并将响应返回给客户端。

  3. 最后,我如何在此模型中进行扩展。对于JMS,可以轻松启动多个实例并让它们侦听队列。如何利用相同的实例跨http接口进行负载均衡?我希望服务具有位置透明性,因此,他们不应该关心调用“jms”特定集群与“http”特定集群?

1 个答案:

答案 0 :(得分:0)

我认为你可以通过Camel实现所有这一切。

  1. 通过data formats处理不同对象表示之间的编组。您可以从可以封装服务的Camel路由中调用POJOs
  2. 查看数据格式。
  3. Camel附带clusteringload-balancing支持。但是如果你只有HTTP类型的端点来进行负载均衡,那么我个人认为你应该使用更加以http为中心的方法,比如使用httpd作为反向代理/负载均衡器。