Camel
文章平均质量分 71
阿湯哥
用心生活!爱每一天!
展开
-
Camel Quartz Component创建QuartzScheduler的过程
首先创建Quartz配置,然后创建StdSchedulerFactory,然后创建StdScheduler。然后在Spring配置文件中进行配置,例如如果要调整Quartz线程池的大小可以参考下面的配置。在QuartzComponent启动时会对QuartzScheduler进行初始化。在创建QuartzScheduler之前首先要创建SchedulerFactory。如果使用Spring Boot可以引入自动配置包。原创 2023-03-27 20:29:16 · 433 阅读 · 1 评论 -
Camel FTP Component中的任务调度实现原理
之前我们介绍了和。今天介绍一下再Camel的FtpComponent组件中是如何实现任务调度的,如果有了以上两篇文章做基础,下面的内容将会非常简单了。其中重点留意以下两个参数,这两个参数的意思是使用Quartz任务调度,使用cron触发器,每5分钟执行一次任务。那么Camel是如何将这两个endpoint的配置项转换为具体的QuartzScheduler的呢?我们知道Camel的endpoint可以创建consumer和producer。原创 2023-03-27 21:17:00 · 439 阅读 · 0 评论 -
Camel - Bean: parameter type convertor (single parameter)
Camel - Bean: parameter type convertor1. create invocation2. evaluate parameter expression3. type convert: change body to specified classall fallback convertersPredication:Camel has chosen the best matched method;The chosen method has only one paramete原创 2021-05-10 17:38:35 · 147 阅读 · 0 评论 -
Camel - Rest: request/response data type judgement
Camel - Rest: request data type bindingbinding modeunmarshalmarshalbinding modeorg.apache.camel.reifier.rest.RestBindingReifier#createRestBindingAdvicepublic RestBindingAdvice createRestBindingAdvice() throws Exception { RestConfiguration config原创 2021-05-10 16:16:37 · 199 阅读 · 0 评论 -
Camel - Bean: parameter binding
Camel - Bean: parameter bindingSingle parameter bindingMultiple parameter bindingWorking with multiple parameters (best practices)built-in typescamel annotationscamel language annotationsSingle parameter bindingThe bean component (BeanProcessor) uses th原创 2021-05-10 14:33:40 · 199 阅读 · 0 评论 -
Camel - Bean: Method selection algorithm
Camel - Bean method selection algorithmThe bean component uses a complex algorithm to select which method to invoke on a bean.Here’s how the algorithm selects the method to invoke:If the Camel message contains a header with the key CamelBeanMethodName原创 2021-05-10 14:10:53 · 168 阅读 · 0 评论 -
Camel - Bean: Look up bean and invoke
Remember, Camel acts as a service activator using the bean component, which sits between the caller and the bean. At compile time, there are no direct bindings, and the JVM can’t link the caller to the bean; Camel must resolve this at runtime.Figure below原创 2021-05-10 13:58:17 · 123 阅读 · 0 评论 -
Camel - Bean: Service Activator Parttern
Service Activator PartternThe Service Activator pattern is an enterprise pattern described in Hohpe and Woolf’s Enterprise Integration Patterns book. It describes a service that can be invoked easily from both messaging and non-messaging services.This s原创 2021-05-10 13:06:01 · 153 阅读 · 0 评论 -
Spring Boot中如何添加自定义 Servlet
Spring Boot中如何添加自定义 Servlet示例 - Camel中的应用参考如果想在SpringBoot启动的应用中添加自己的Servlet,首先需要了解 Servlet Container(默认Tomcat)的启动过程,与 Servlet Container 启动相关的初始化类参考下面的文章。Spring Web - 与 ServletContainer 初始化相关的 Initializer如果需要添加Servlet配置,需要编写ServletRegistrationBean的实现类并注册原创 2021-04-14 15:54:57 · 712 阅读 · 0 评论 -
Camel - Rest Component 集成 Swagger UI
Camel - Rest Component 集成 Swagger1. Spring boot 集成 swagger ui1.1 pom配置1.2 访问swagger ui2. Camel配置并启用Rest服务2.1 pom配置2.2 配置并启动jetty服务2.3 启动并获取swagger api信息3. 测试参考1. Spring boot 集成 swagger ui1.1 pom配置通过webjar的方式集成swagger ui.<dependency> <group原创 2021-04-12 15:13:57 · 808 阅读 · 3 评论 -
Camel异常策略匹配逻辑
Camel异常策略匹配逻辑route 优先级大于 context匹配逻辑注意区分包装与继承获取异常包装层级遍历异常匹配处理策略获取最终的匹配策略代码Test Coderoute 优先级大于 context优先匹配 route 级别的异常策略, 然后匹配 context 级别的异常策略;匹配逻辑注意区分包装与继承包装:ConnectException异常抛出后被包装成OrderFailedException异常,然后OrderFailedException异常又被包装成RuntimeCamelExc原创 2021-03-05 15:45:14 · 507 阅读 · 0 评论 -
Camel异常处理策略
Camel异常处理策略核心类核心类org.apache.camel.processor.errorhandler.DefaultExceptionPolicyStrategy#getExceptionPolicy原创 2021-03-04 17:22:03 · 1968 阅读 · 2 评论 -
Camel - RedeliveryErrorHandler
Camel - RedeliveryErrorHandlerorg.apache.camel.processor.errorhandler.RedeliveryErrorHandler.RedeliveryTask#doRunprivate void doRun() throws Exception { // did previous processing cause an exception? if (exchange.getException() != null) { handleEx原创 2021-02-10 17:53:26 · 248 阅读 · 0 评论 -
Camel - DefaultAsyncProcessorAwaitManager
DefaultAsyncProcessorAwaitManager主要用于路由异步处理时,等待另一个线程处理结束后,继续后续处理。等待过程中,会择机执行积压任务。如果当前任务一直被阻塞,会记录阻塞信息,并记录阻塞时间、总阻塞时间、最短阻塞时间、最长阻塞时间,阻塞中位数等信息。AsyncProcessAwaitManager utilization[blocked=%s, interrupted=%s, total=%s min=%s, max=%s, mean=%s]org.apache.cam原创 2021-02-10 17:44:19 · 173 阅读 · 0 评论 -
Camel - DefaultReactiveExecutor
Camel - DefaultReactiveExecutorDefaultReactiveExecutor作用:用于创建Worker,并对监控Worker的运行情况;监控内容包括:已创建Worker正在执行的Worker当前挂起的任务数一个Worker 对应一个Thread。每个Worker创建时会记录自己的编号,并且会创建一个双端队列(Deque),如果是异步消息往队列头部添加任务,如果是同步消息往尾部添加任务。org.apache.camel.impl.engine.Defaul原创 2021-02-10 17:25:50 · 148 阅读 · 0 评论 -
Camel Error Handler
Camel Error Handler1. 实现原理2. Handler简介2.1 DefaultErrorHandler2.2 DeadLetterErrorHandler2.3 TransactionErrorHandler3. 重试3.1 示例3.2 重试情况记录4. ErrorHandler的作用域4.1 Context级别的ErrorHandler4.2 路由级别的ErrorHandlerCamel主要支持以下几种ErrorHandler,Camel 默认预置 DefaultErrorHandl原创 2021-01-28 17:25:38 · 633 阅读 · 0 评论 -
使用camel-component-maven-plugin生成camel的配置类和元数据信息
使用camel-component-maven-plugin生成camel的配置类和元数据信息参考利用camel-component-maven-plugin可以方便第三方组件开发,通过该组件可以生成用于Camel3.x配置的元数据和相关Java类。如果希望该插件正常工作,需要在开发组件时添加必要的注解。如,为你的Componet类添加@Component注解,为你的endpoint类添加@Endpoint注解,以及@UriParams等。可以通过查看现有组件实现来了解各注解的使用方法,或者通过Cam原创 2021-01-27 11:39:40 · 365 阅读 · 0 评论 -
Camel如何由路由导出xml-dsl
Camel如何由路由导出xml-dsl原创 2020-12-14 14:13:34 · 409 阅读 · 0 评论 -
New exception while handling exception
New exception while handling exception原创 2020-12-14 14:08:58 · 164 阅读 · 0 评论 -
Camel Service的生命周期管理
Camel Service的生命周期管理Camel Version 3.6.0Camel 3.6.0的代码逻辑比2.20.1清晰了不止一点点,代码看起来还是比较舒适的。Service在Camel中是一个非常重要的概念,了解Service的声明周期对于源码解读和了解Camel实现有非常大的帮助。/** * Optional build phase of the service. This method will only be called by frameworks which suppo原创 2020-10-30 10:51:09 · 320 阅读 · 0 评论 -
CamelContext3.6.0启动过程
CamelContext3.6.0启动过程1. 构建CamelContext2. 初始化CamelContext2.1 start route definitions2.1.1 create route2.1.1.1 get endpoint2.1.2 warm up route service3. 启动CamelContext3.1 start or resume routes3.1.1 safely start route service3.1.1.1 warm up route serviceCam原创 2020-10-27 10:44:00 · 665 阅读 · 0 评论 -
Camel使用多个from()定义RouteDefinition
Camel使用多个from定义RouteDefinition参考在一个RouteDefinition里可以定义多个from(),相当于创建多个消费者。示例:创建一个路由,消费三个阻塞队列a, b, c的消息,并将消息内容输出到日志。public class MultiFromRouteTest extends CamelTestSupport { @Test public void testMultiFrom() { template.sendBody("seda:a"原创 2020-10-21 16:21:37 · 1517 阅读 · 0 评论 -
Camel Architecture & Related Classes
FromDefinition为RouteDefinition的inputs,ProcessorDefinition为RouteDefinition的outputs。原创 2020-06-08 18:49:51 · 176 阅读 · 0 评论 -
CamelContext的启动过程
CamelContext的启动过程org.apache.camel.impl.DefaultCamelContext#doStartCamelorg.apache.camel.impl.DefaultCamelContext#startRouteDefinitionsorg.apache.camel.impl.DefaultCamelContext#startRoute(org.apache.camel.model.RouteDefinition)遍历所有的FromDefinition生成对应数量的原创 2020-05-27 13:17:43 · 1534 阅读 · 4 评论 -
DIGEST OF GETTING STARTED WITH APACHE CAMEL
Study camelGetting Started with Apache CamelTHE ENTERPRISE INTEGRATION PATTERNS (EIP) BOOKCONCEPTS AND TERMINOLOGY FUNDAMENTAL TO CAMELENDPOINTCAMELCONTEXTCAMELTEMPLATECOMPONENTSGetting Started with Apache CamelTHE ENTERPRISE INTEGRATION PATTERNS (EIP) B原创 2020-05-19 14:48:09 · 218 阅读 · 0 评论