ApachecameV1
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Endpoint C
Message
14
Multicast
IBatis
Endpoint B
SMTP
Endpoint A
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed magna urna, varius a facilisis nec, sagittis eget eros. Mauris scelerisque justo et ipsum scelerisque aliquam. In at auctor diam. Suspendisse ut justo sed diam
Lightweight Enterprise Integration Patterns Frameworks:
▶ ▶ ▶
Camel MuleESB Spring Integration WPS (Websphere Process Server) Biztalk Server
6
Process Servers, EAI, …
Endpoint B
Message
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed magna urna, varius a facilisis nec, sagittis eget
Endpoint D
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed magna urna, varius a facilisis nec, sagittis eget eros. Mauris scelerisque justo et ipsum scelerisque aliquam. In at auctor diam. Suspendisse ut justo sed diam
7
Camel compared to Mule
You don't need to create a lot of XML config files with inbound/outbound stuff like you have to do in Mule. The routing in Mule is not so intuitive and not appear directly in the XML or DSL
▶ ▶
Java DSL (or Fluent API) Spring Xml Configuration files.
3
What is camel ?
Apache Camel uses URIs
▶
Works with any kind of transport or messaging such as:
8
The basics
9
Message Routing
Endpoint A
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed magna urna, varius a facilisis nec, sagittis eget eros. Mauris scelerisque justo et ipsum scelerisque aliquam. In at auctor diam. Suspendisse ut justo sed diam
Built-in BAM Features
Extendable
12
Simple Routing
Endpoint A
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed magna urna, varius a facilisis nec, sagittis eget eros. Mauris scelerisque justo et ipsum scelerisque aliquam. In at auctor diam. Suspendisse ut justo sed diam
▶ ▶
Camel compared to Mule
Both based on Spring + POJO They can run in standalone mode or embedded in an OSGI server, application server They are not based on based on JBI specification
16
Message filter: Java DSL
package com.acme.quotes; import org.apache.camel.builder.RouteBuilder; public class MyRouteBuilder extends RouteBuilder { public void configure() { // forward widget quotes to MQSeries from("activemq:topic:Quotes"). filter().xpath("/quote/product = ‘widget’"). to("mqseries:WidgetQuotes"); } }
17
Content Based Router: Java
from("activemq:NewOrders"). choice().when().xpath("/quote/product = 'widget'"). to("activemq:Orders.Widgets"). choice().when().xpath("/quote/product = 'gadget'"). to("activemq:Orders.Gadgets"). otherwise(). to("activemq:Orders.Bad");
CXF
▶ ▶ ▶
ServiceMix
▶
▶ ▶
Open source ESB (Enterprise Service Bus) Web site: Current versions: 3.3.2 / 4.2.0 (OSGI Based)
Apache Mina ...
2
What is camel ?
A powerful Spring based Integration Framework It implements Enterprise Integration Patterns
Hale Waihona Puke Routing and mediation rules configured using :
Endpoint B
Jms
Message
File
13
Pipeline
Endpoint A
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed magna urna, varius a facilisis nec, sagittis eget eros. Mauris scelerisque justo et ipsum scelerisque aliquam. In at auctor diam. Suspendisse ut justo sed diam
A Java library with minimal dependencies:
▶
easy embedding in any Java application.
4
Camel and friends
ActiveMQ
▶
▶
▶
Open source messaging provider (JMS provider). Web site: Current version: 5.3.2 Open Source Service Framework (WebServices) Web site: Current version: 2.2.9
A powerful Spring based Integration Framework It implements Enterprise Integration Patterns Routing and mediation rules configured using :
▶
▶
Java DSL (or Fluent API) Spring Xml Configuration files.
Taking Camel for a ride
Apache Camel
Hands on Hands on
Sidney Xiao
What is camel ?
It stands for :
▶
▶
Concise Application Message Exchange Language (i.e. the Java DSL for routing) Its is a routing and mediation framework
» HTTP, ActiveMQ, JMS, MINA or CXF Bus API, … » Working with pluggable Data Format options
▶
Works with the same API regardless which kind of Transport used.
Endpoint B
File
Message
SFTP
Endpoint B
15
Message filter: Spring XML
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xmlns:schemaLocation="…"> <camelContext xmlns="/camel/schema/spring"> <route> <from uri="activemq:topic:Quotes" /> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes" /> </filter> </route> </camelContext> </beans>
Endpoint B
Message
10
Camel Components
11
Kick Ass features
Integrates with almost everything … Support for:
▶
Scripting languages
» Groovy » Scala
▶ ▶
Google App Engine & Google APIs …
▶
Where the messages send over the bus are XML normalized messages
Camel has more components than Mule now Camel proposes a DSL Language Mule has better monitoring & management tools
18
Content Based Router: Spring XML
5
Competitors and Families of products
ESB (Entreprise Service Bus):
▶
▶
▶ ▶
ServiceMix (JBI compliant, integrates Apache Camel) JbossESB WebSphereESB (SCA compliant) SonicESB, OpenESB, Petals...