āđāļāļ·āđāļāļĄāļāđāļāļāļļāļāļĢāļ°āļāļ āļŠāđāļāļāđāļāļĄāļđāļĨāļāļļāļāđāļŠāđāļāļāļēāļāļāļĒāđāļēāļāđāļĢāđāļĢāļāļĒāļāđāļ
āđāļĢāļĩāļĒāļāļĢāļđāđāđāļāļĢāļāļŠāļĢāđāļēāļāļāļ·āđāļāļāļēāļāļāļāļ Apache Camel āļĢāļ°āļāļāđāļāļ·āđāļāļĄāļāđāļāļāđāļāļĄāļđāļĨāļĢāļ°āļāļąāļāđāļĨāļāļāļĩāđāļāļāļāđāļāļāļĄāļēāđāļŦāđāļāļāđāļĄāđāļĄāļĩāļāļ·āđāļāļāļēāļāđāļāđāļēāđāļāļāđāļēāļĒāļāđāļēāļāļ āļēāļāđāļĨāļ°āđāļāđāļāļāļąāļ§āļāļĒāđāļēāļ
1. āļāļĪāļĐāļāļĩāđāļĨāļ°āļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļāļīāļāļĨāļķāļ (Deep Theory & Architecture)
āļāļģāļāļ§āļēāļĄāļĢāļđāđāļāļąāļāļāļĨāļąāļāļāļāļ Open Source Integration Framework āļāļąāđāļāđāļāđāļāļĩ 2007
1.1 Apache Camel āļāļ·āļāļāļ°āđāļĢ āđāļĨāļ°āļāļģāđāļĄāļāļāļāđāļāļĢāļĢāļ°āļāļąāļāđāļĨāļāļāļķāļāđāļĨāļ·āļāļāđāļāđ?
Apache Camel āļāļ·āļ Open Source Integration Framework āļ āļēāļĒāđāļāđāļĨāļīāļāļŠāļīāļāļāļīāđ Apache License 2.0 āļāļąāļāļāļēāļĄāļēāļāļąāđāļāđāļāđāļāļĩ 2007 āļĄāļĩāļāļļāļĄāļāļāļāļđāđāļāļąāļāļāļēāļāļ§āđāļē 1,500+ āļāļāļāļąāđāļ§āđāļĨāļ āļŠāđāļĨāđāļāļāļŦāļĨāļąāļāļāļ·āļ "Connect anything. Route everything." āļāđāļ§āļĒāđāļāđāļāļąāļāļŦāļēāļāļĢāļ°āļāļđāļāļāļīāđāļāđāļāđāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļĢāļ°āļāļāļāļĩāđāļāđāļēāļāļ āļēāļĐāļē āļāđāļēāļāđāļāļĢāđāļāļāļāļĨ āđāļāļĒāđāļĄāđāļāđāļāļāđāļāļĩāļĒāļāđāļāđāļāļāđāļģāļāđāļāļāđāļŦāļĄāđāļāļąāđāļāđāļāđāļāđāļ (No boilerplate code)
1.2 āđāļŠāļēāļŦāļĨāļąāļ 4 āļāļĢāļ°āļāļēāļĢāļāļāļ Apache Camel
- 350+ Connectors (Components): āļŦāļąāļ§āļāđāļāļŠāļģāđāļĢāđāļāļĢāļđāļāđāļāļ·āđāļāļĄāļāđāļāļāļąāļ Kafka, Database, AWS, Salesforce āļŊāļĨāļŊ
- 3 DSLs: āđāļĨāļ·āļāļāđāļāļĩāļĒāļāđāļŠāđāļāļāļēāļāļāđāļāļĄāļđāļĨ (Route) āđāļāđāļāļąāđāļāļ āļēāļĐāļē Java, YAML āļŦāļĢāļ·āļ XML
- Flexible Deployment Runtimes: āļāļĢāļąāļāđāļāđāđāļāđāļāļąāđāļāđāļāđāļ§āļēāļāļĢāļ°āļāļāļāļ Camel CLI, Spring Boot āđāļāļāļāļāļķāļ Quarkus
- AI-Ready Integration: āļĢāļāļāļĢāļąāļ MCP Server āļŠāļģāļŦāļĢāļąāļ AI Coding Assistants āđāļĨāļ°āļāļģāļŠāļąāđāļ trace/test
1.3 āļ āļēāļāļĢāļ§āļĄ Ecosystem
āļāļĢāļ°āļāļāļāļāđāļ§āļĒ Camel Core (āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļŦāļĨāļąāļ), Camel Kamelets (āļāļĨāļąāđāļāļāļīāļāļŠāļģāđāļĢāđāļāļĢāļđāļ), Camel K (āļĢāļąāļāļāļ Kubernetes āđāļāļ Serverless), āđāļĨāļ° Camel Karavan (Low-code Visual Tool āļĨāļēāļāļ§āļēāļāļāđāļēāļāļ āļēāļ)
1.4 āļāļļāļāļĄāļēāļāļļāļāđāļĄāļĒ (Analogy) & āļ āļēāļāļāļēāļĢāļāļģāļāļēāļ
āļāļāļīāļāļēāļĒāđāļŦāđāļāļāđāļĄāđāļĄāļĩāļāļ·āđāļāļāļēāļāđāļŦāđāļāļ āļēāļāļāļąāļāđāļāļāđāļŦāļĄāļ·āļāļāļĻāļđāļāļĒāđāļāļĢāļ°āļāļēāļĒāļŠāļīāļāļāđāļē
āđāļāļĢāļĩāļĒāļ Apache Camel āđāļāđāļ "āļĻāļđāļāļĒāđāļāļĢāļ°āļāļēāļĒāļŠāļīāļāļāđāļēāđāļĨāļ°āļŦāļąāļ§āđāļāļĨāļāļāļĨāļąāđāļāđāļāļāđāļāļāļāļĢāļ°āļŠāļāļāđ" āđāļĄāđāļ§āđāļēāļāļąāļŠāļāļļāļāļ°āļĄāļēāļāļēāļāđāļĢāļ·āļāļŦāļĢāļ·āļāđāļāļĢāļ·āđāļāļāļāļīāļ āļ āļēāļĐāļēāđāļāļāļŠāļēāļĢāļāļ°āđāļāđāļ JSON āļŦāļĢāļ·āļ XML āļĢāļ°āļāļ Camel āļāļ°āđāļāļĨāļāđāļĨāļ°āļāļģāļŠāđāļāļāļĨāļēāļĒāļāļēāļāđāļŦāđāļāļąāļāđāļāļĄāļąāļāļī
kafka:orders â Camel āļāļķāļāđāļāļĨāļāļāđāļāļĄāļđāļĨ JSON â āļāļąāļāļāļķāļāļĨāļ PostgreSQL āđāļĨāļ°āđāļāđāļāđāļāļ·āļāļ Salesforce CRM āļāļąāļāļāļĩāļāđāļ§āļĒāđāļāđāļāļŠāļąāđāļāđ
2. āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļāļāļĢāļīāļ (3 āļĢāļđāļāđāļāļ DSL)
āđāļāļāļĒāđāđāļāļĩāļĒāļ§āļāļąāļ: āļĢāļąāļāļāļēāļ Kafka â āđāļāļĨāļ JSON â āļāļąāļāļāļķāļāļĨāļ SQL
camel run kafka-to-db.yaml- route:
from:
uri: kafka:orders
steps:
- unmarshal:
json: {}
- to:
uri: sql:INSERT INTO orders (id, amount) VALUES (:#id, :#amount)
ðïļââïļ āđāļāļāļĒāđāļāļķāļāļāļāļīāļāļąāļāļīāļāļĢāļ°āļāļģāļ§āļąāļ (Hands-on Drill)
āļāļāļĨāļāļāļĨāļāļĄāļ·āļāļāļģāļāđāļ§āļĒ Camel CLI āļāļāđāļāļĢāļ·āđāļāļāļāļāļāļāļļāļ
- āļāļīāļāļāļąāđāļ Camel CLI:
curl -fsSL https://camel.apache.org/install.sh | sh - āļŠāļĢāđāļēāļāđāļāļĨāđāđāļāļĢāđāļāļāļāđ:
camel init main-route.yaml - āļāļąāđāļāļāđāļēāļĢāļąāļāļŠāļąāļāļāļēāļāļāļēāļ
timer:trigger?period=2000āđāļĨāđāļ§āļŠāđāļāļāđāļāļāļ§āļēāļĄ"Hello Apache Camel Integration!"āļāļāļāđāļāļāļĩāđlog:info - āļĢāļąāļāļāļģāļŠāļąāđāļ:
camel run main-route.yaml
ð āđāļāļāļāļāļŠāļāļāļāļāļāļ§āļāļāļ§āļēāļĄāļĢāļđāđ (āļāļāļāļāļļāđāļ āļĢāļđāđāļāļĨāļāļąāđāļ)
āđāļĨāļ·āļāļāļāļģāļāļāļāļāļĩāđāļāļļāļāļāļīāļāļ§āđāļēāļāļđāļāļāđāļāļ āļĢāļ°āļāļāļāļ°āđāļŠāļāļāļāļĨāļĨāļąāļāļāđāđāļĨāļ°āļāļģāļāļāļīāļāļēāļĒāļāļąāļāļāļĩ