camel 随笔 0-Quick Start

0. 收听一整张专辑的快感谁懂啊

。。。想起来好久没写了,对于这样一个集成框架,估计深入了解的动力挺有限的。相比 Spring Integration 的布局来说,感觉完全是两个产品。


本篇完全就是,官网快速开始文档的一个总结,也就看了两三遍吧

Apache Camel 官方文档

1. THE ENTERPRISE INTEGRATION PATTERNS (E.I.P.) BOOK

Camel Core 基于书中的设计 而实现

2. SUPPORTING DOCUMENTATION

对文档本身的一些说明

3. CREATING YOUR FIRST PROJECT

  • 有几种构建项目的方式
  • 文档介绍了 maven archetypes 模板方式
mvn archetype:generate -B -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-java -DarchetypeVersion=3.14.10 -Dpackage=org.apache.camel.learn -DgroupId=org.apache.camel.learn -DartifactId=first-camel-integration -Dversion=1.0.0-SNAPSHOT
  • 其实也可以直接手动引入依赖构建,依赖不难处理的
  • 并不是所有版本都有对应的mvn项目模板的(比如是新版本,毕竟这项目迭代蛮勤快的)
  • 大部分正在维护的版本、新版本都只支持 jdk11+

4. UNDERSTANDING THE PROJECT

  • 解释demo工程中的code
  • 介绍 camel 的重要术语:

4.1 ENDPOINT

各种协议的实现(jms、ws、ftp …)+pojo

4.2 ROUTES

a route used to connect a src-endpoint to a dest-endpoint

4.2.1 ROUTE CONFIGURATION

::[optinals]
4.2.1.1 A URI (uniform resource identifier) is a URL or a URN.
URN syntax -> urn::
4.2.1.2 THE ENDPOINT ADDRESS

urioptionalcomponent 而异

4.2.1.3 ROUTE CONFIGURATION AND EIPS

route的逻辑参考EIP实现,使用java DSL风格的api组织

4.3 ADDING ROUTES AND RUNNING THE APPLICATION

demo code中使用Main驱动,内部维护了context

5. CONCEPTS AND TERMINOLOGY FUNDAMENTAL TO CAMEL

5.1 CAMELCONTEXT

  • context作为其运行时系统
  • 一般我们不需要直接操作context,但是随着集成,我们需要面对这个问题(简单的看待context的构建过程):
  1. create context
  2. add endpoints
  3. add routes
  4. context.start()
    start() 并不会阻塞 component、endpoint 的行为,而是stop()
  5. context.stop()
    忘记stop(),那么 context 最终可能会以一个不一致的状态停止

5.2 COMPONENTS

  • 对自定义开放

5.3 MESSAGE AND EXCHANGE

  • Message接口 可以是一个 请求、响应、异常 的抽象

  • Message接口 开放了get/set(),允许访问其 id、body、header

  • Exchange接口 Consumer接收请求后创建,维护了Message一些相关的Route信息

  • 相对来说,这俩算是运行中(会话)的实体的抽象概念

5.4 PROCESSOR

  • 唯一的api void process(Exchange exchange)
  • Consumer 用于 process Message 的,比如一些业务逻辑
  • 内置的一些常用的Processor: ChoiceProcess(switch-case)、FilterProcessor

5.5 ROUTES, ROUTEBUILDERS AND JAVA DSL

  • 支持 xml、yml、java DSL 组织 Routes

你可能感兴趣的:(后端)