spring-cloud-stream 1.3.0(Ditmars.RELEASE)之binder-rabbit 学习笔记

53 篇文章 1 订阅
31 篇文章 0 订阅

spring-cloud-stream 1.3.0(Ditmars.RELEASE)之binder-rabbit 学习笔记

概述

EnableBinding—->开启开关,引入一系列的配置类,stream-core层支持

BindingServiceConfiguration—->配置stream-core层

  • 引入StreamListenerAnnotationBeanPostProcessor—->用于解析StreamListener注解
  • 引入BindingService—->核心支持类,通过底层的实现Binder(例如:RabbitMessageChannelBinder)进行Consumer/Producer的绑定
  • 引入OutputBindingLifecycle—->利用BindingService绑定可Bindable的输出队列(即绑定生产者)
  • 引入InputBindingLifecycle—->利用BindingService绑定可Bindable的输入队列(即绑定消费者)
  • 引入SubscribableChannelBindingTargetFactory(BindingTargetFactory)—->创建输入/输出的目标,用于BindingService进行绑定

BindingBeansRegistrar—->用于解析EnableBinding上标记的value以及使用的Input/Output注解信息

  • BindingBeanDefinitionRegistryUtils#registerBindingTargetsQualifiedBeanDefinitions
    • 如果使用Input/Output注解标记的是接口,则使用BindableProxyFactory创建Bindable标示,放入BeanDefinitionRegistry
    • 如果不是接口,则使用Bindings注解进行标记,放入BeanDefinitionRegistry

BinderFactoryConfiguration—->注入BinderFactory,获取实现类的Binder,由BindingService委托调用

  • DefaultBinderFactory—->BinderFactory

RabbitServiceAutoConfiguration—->rabbit实现层支持(依赖spring-cloud-stream-binder-rabbit即可)

  • RabbitAutoConfiguration—->非cloud环境,引入RabbitAutoConfiguration,用于与rabbit进行交互
    • CachingConnectionFactory—->ConnectionFactory—->连接rabbit的连接工厂
    • RabbitTemplate—->rabbit的操作类,send/receive消息
    • AmqpAdmin—->管理操作类,用于创建、删除、管理Exchange/Queue/Binding
  • RabbitMessageChannelBinderConfiguration
    • RabbitMessageChannelBinder—->rabbit核心实现类支持,Binger实现类,用于对接stream-core的BindingService
    • RabbitExchangeQueueProvisioner—->rabbit实现ProvisioningProvider,用于实际产生交换器/队列/绑定操作

测试

-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值