该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-22
前段时间和一些朋友聊过Apache Camel
, 他们都反映一个问题就是有关Camel构架的介绍文档很少。其实在Camel发行包中所带的文档Camel Manual
就有一段对Camel内部设计有一个比较好的介绍。我在这里把其中大部分的内容
翻译成了中文,希望能对大家了解Camel有所帮助。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-01-23
这个东西主要是做什么应用用到呀
|
|
返回顶楼 | |
发表时间:2009-01-24
最后修改:2009-02-04
whaosoft 写道 这个东西主要是做什么应用用到呀
Apache Camel 是一个非常强大的基于规则的路由以及媒介引擎,该引擎提供了一个基于POJO的 企业应用模式(Enterprise Integration Patterns)的实现,你可以采用其异常强大且十分易用的API (可以说是一种Java的领域定义语言 Domain Specific Language)来配置其路由或者中介的规则。 通过这种领域定义语言,你可以在你的IDE中用简单的Java Code就可以写出一个类型安全并具有一定智能的规则描述文件。这与那种复杂的XML配置相比极大简化了规则定义开发。 当然Apache Camel也提供了一个对Spring 配置文件的支持。 Apache Camel 采用URI来描述各种组件,这样你可以很方便地与各种传输或者消息模块进行交互,其中包含的模块有 HTTP, ActiveMQ, JMS, JBI, MINA or CXF API。 这些模块是采用可插拔的方式进行工作的。Apache Camel的核心十分小巧你可以很容易地将其集成在各种Java应用中。 简单来说, 你有一个JMS的应用, 同时有个基于FTP的应用,你现在想把这两个应用连接起来,就是让这两个应用之间能相互传递消息,那用Camel很容易就能帮你实现这个功能 你可以用Java DSL来定义一个路由规则 from("jms://queue:inMessage").to("ftp://YourFTPServer"); 并把Camel Context通过加载这个路由规则并启动之后,所有发往queue:inMessage 这个队列中的消息都会转发到你的FtpServer上,而用户需要做的只是定义这个路由转发规则。 Camel中的Endpoint屏蔽不同的通讯协议,让用户能够直接把精力放在消息路由的业务逻辑中来,这样可以大大提高企业应用集成的开发效率。 |
|
返回顶楼 | |
发表时间:2009-02-01
呵呵,听起来似乎很不错,但是还没有从事过这方面的应用,有时间的话研究研究
|
|
返回顶楼 | |
发表时间:2009-02-01
这几个概念翻译得好,其实所有的ESB差不多都这几个概念.
|
|
返回顶楼 | |
发表时间:2009-02-02
最后修改:2009-02-02
在Camel wiki
中有一个很好的文章Hiding Middleware, 其中道出了Camel的主要工作就是封装不同的中间件, 让用户使用更高层的 EIP 来完成你的应用集成工作。 When writing software these days, its important to try and decouple as much middleware code from your business logic as possible. This provides a number of benefits... * you can choose the right middleware solution for your deployment and switch at any time * you don't have to spend a large amount of time learning the specifics of any particular technology, whether its JMS or JavaSpace or Hibernate or JPA or iBatis whatever For example if you want to implement some kind of message passing, remoting, reliable load balancing or asynchronous processing in your application we recommend you use Camel annotations to bind your services and business logic to Camel Components which means you can then easily switch between things like * in JVM messaging with SEDA * using JMS via ActiveMQ or other JMS providers for reliable load balancing, grid or publish and subscribe * for low volume, but easier administration since you're probably already using a database you could use o Hibernate or JPA to use an entity bean / table as a queue o iBatis to work with SQL o JDBC for raw SQL access |
|
返回顶楼 | |
发表时间:2009-02-04
又见Jnn,哪天出来聚聚,跟你学习学习^_^
|
|
返回顶楼 | |
发表时间:2009-02-04
boyingking 写道 又见Jnn,哪天出来聚聚,跟你学习学习^_^
Ah, 在这碰到你了。 还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把 |
|
返回顶楼 | |
发表时间:2009-02-05
jnn 写道 boyingking 写道 又见Jnn,哪天出来聚聚,跟你学习学习^_^
Ah, 在这碰到你了。 还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把 好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去 |
|
返回顶楼 | |
发表时间:2009-02-05
boyingking 写道 jnn 写道 boyingking 写道 又见Jnn,哪天出来聚聚,跟你学习学习^_^
Ah, 在这碰到你了。 还有就是我现在参加了每个月一次 coding-for-fun活动, 有机会我们可以在那现场hacking一把 好啊,年前那次活动本来想去的,结果没抽出时间来。下次一定去 哈, 那就下次活动的时候见了。 我可以给大家介绍一下正在开发的Camel 2.0 有啥新东西 |
|
返回顶楼 | |