-
Notifications
You must be signed in to change notification settings - Fork 0
sgargan/camel-avro
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Avro component module for Apache Camel. This component integrates Apache Avro (http://avro.apache.org) with Apache Camel. It wraps Avro's existing efficient IPC mechanisms into Camel Producers and Consumers allowing creation of routes via Camel's powerful routing DSL. Avro's simple and efficient serialization compliments Camel perfectly. Together they a compelling toolset for creating high throughput, flexible Service Oriented and Domain Event-driven Architectures. Building --------- The current implementation is built against the 1.5.0-SNAPSHOT of Avro and the 2.7.0-SNAPSHOT version of Camel. Avro 1.5 is about to go gold and as soon as it does I will create a branch for this and migrate to the 1.5.1-SNAPSHOT. You may need to build Avro and Camel in order for this build to resolve correctly. Both are available here on github. https://github.com/apache/avro.git https://github.com/apache/camel.git To build this component, Checkout the latest version of the code > git clone git@github.com:sgargan/camel-avro.git > cd camel-avro Run maven. > mvn clean install Usage ------ Like all Camel components, the Avro component uses a specific url prefix in the DSL to invoke the component and create routes; The prefix in this case is 'avro'. Typically when creating a route the next part of the url specifies the transport to be used for example the following DSL snippet will create a consumer that stands up a Netty based Avro server that will forward the payload of each request it receives onto the rest of the route. The format of the payload is defined by an associated Avro protocol that should be passed to the route as a parameter. from("avro:netty://0.0.0.0:4567/?protocol=orderingService").to("direct:avro-payload-processing") Any Avro headers in the request can be forwarded as headers in the exchange message by adding 'forwardHeaders=true' as a url parameter. Most of Avro's transports are available with a notable exception. Due to incompatibilities between the versions of Jetty used by Camel and Hadoop, Avro's http transport has not yet been implemented. You can still use the component via http by fronting it with Camel's Jetty component and an example of this can be found in the unit tests. I'm working on documentation for the Camel wiki, but in the meantime, the unit tests provide examples of using each of the various transports. Give it whirl, kick the tires and tell me how it goes for you. All feedback is greatly appreciated.
About
Avro component implementation for Camel
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published