Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud...

26
Riding Apache Camel on Cloud [email protected] blog: https://willemjiang.github.io weibo: willemjiang 2019-03

Transcript of Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud...

Page 1: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Riding Apache Camel on [email protected]

blog: https://willemjiang.github.io weibo: willemjiang

2019-03

Page 2: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

About Me

Open Source Developer in Huawei

Apache Camel Committer since 2008

Apache Member

Page 3: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Agenda

Cloud native and Integration

Apache Camel Introduction

Apache Camel-K

Demos

Page 4: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Digital Transfomation

Page 5: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

SOA to Cloud Native

https://www.infoq.com/articles/microservices-post-kubernetes

Page 6: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Composite Services as Integration tool

µ µ µ µ µ µ

Composite Service

API Gateway

Composite Service

Page 7: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Apache Camel

Open Source integration framework based on known Enterprise Integration Pattens

Started as a subproject of ActiveMQ from ServiceMix EIP module

r519901 | jstrachan | 2007-03-19 11:54:57 +0100 (Mon, 19 Mar 2007) | 1 line

Became the Top Level Project of Apache in 2009

A Camel can carry 4 times as much load as other beasts of burden!

Page 8: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Why Camel

EIP implementation

300+ Components

Easy to run

Amazing Community

Page 9: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Enterprise Integration Patterns

https://www.enterpriseintegrationpatterns.com/patterns/messaging/

Page 10: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Message Routing

Page 11: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Simple Routing

from("file:src/data?noop=true"). to("jms:queue:myqueue");

xxx://endpoint/address?accessToken=xxxxx&delay=30scheme relation path parameters

Page 12: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Multicast Routing

from("file:src/data?noop=true"). multicast("ibatis://xxx", "sftp://xxx", "smtp://xxx");

Page 13: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Message Routing

Page 14: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Enterprise Integration Patterns

Page 15: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Camel ComponentXXXComponent

XXXEndpoint

XXXConsumer XXXProducer

XXXApplication Camel Processors XXXApplication

Page 16: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Camel Components

350+ components

Page 17: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

How to run the camel ApplicationCamelContext context = new DefaultCamelContext();context.addRoutes(new RouteBuilder() { () -> { from(“direct:start”).to(“mock:result”) }; });context.start();

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:start"/> <from to="mock:result"/> </route> </camelContext>

Start a JVM which holds right dependencies

Page 18: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Community

Page 19: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Spring boot

https://start.spring.io/ -> choose camel

Write your own builder

Add the components you want

Running the application

Page 20: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Demo Time https://github.com/WillemJiang/camel-elasticsearch-demo

Page 21: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Apache Camel-K

Running Camel Application natively on Kubernetes and Openshift.

Designed for serverless and microservice architectures.

Leveraging the Operator SDK

Building with Knative Eventing and Knative Serving

Page 22: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Running Camel on Kubernetes

Pod1 Pod2 Pod3

Service Service

Customer Define Resource

Page 23: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Camel Routes

Pod1 Pod1

Page 24: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Reference

https://camel.apache.org

http://planet.jboss.org/post/camel_and_enterprise_integration_patterns

https://access.redhat.com/documentation/en-us/red_hat_fuse/7.2/html/apache_camel_development_guide/

Page 25: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Camel Architecture

Page 26: Riding Apache Camel on Cloud - Willem Jiang‘s Blog · Riding Apache Camel on Cloud willem.jiang@gmail.com blog: weibo: willemjiang 2019-03. About Me Open Source Developer in Huawei

Message and Exchange

Message

Headers

Body

Attachments

Exchange ID

In Message Out Message

Exception Properties

MEP

Exchange