• RabbitMq


    JMS—AMOP高级网络

    核心概念

    Message,消息头(route-key路由键)、消息体、

    Publisher,生产者生产消息—传给Exchange-->Broker

    Broker 消息代理(broker,queue)

    Exchange 交换器,接受消息并路由给服务器队列(Binding),绑定关系—route-key。

    Consumer 监听队列

    一个客户端只会建立一条连接

    一条连接,多个通道

    VHost,虚拟主机,将broker隔离开,为虚拟主机,以路径表示,/java,/php

    docker run -d —name rabbitmq -p xxx

    一堆业务端口

    后台管理系统,15672端口 创建相关

    exchanges,在管理后台创建exchange、创建queue、绑定queue

    交换机类型:根据分发策略不同,分为,

    Direct、路由键与队列名完全匹配,点对点,

    Fanout、广播,不处理路由键

    Topic、主题类广播,匹配一个topic进行广播,将路由键和绑定键的字符串切分,识别通配符,#(匹配0或多个) *(匹配一个),usea.news会发给usa.#,#.news

    headers(性能低,基本不用)

    Spring整合

    spring自动配置@RabbitAutoConfiguration

    properties配置spring.rabbitma.host port virtual-host=/

    开启功能 @EableRabbit

    使用AmqpAdmin创建exchange相关

    类DirectExchange、amqp.declereExchange,

    类Queue、amqp.declearQueue

    类Binding

    收发消息

    RabbitTemplate

    发自定义类的数据,使用configure 配置messageConverter

    对应类/方法监听消息@RabbitListener(queue={“name”})(监听那些队列)

    必须有@EnableRabbit

    方法上@RabbitHandler(重载不同消息)

    Queue,可以有多个监听,但是只能被消费一次

    接受消息,当前消息处理完,后接受下个消息

    可靠投递、消息确认机制

    Publisher->broker confirm Callback 抵达服务器

    publisher(exchange->queue) returnCallback 抵达队列

    consumer(queue->consumer) ack 抵达消费者

    配置机制

    spring.rabbitma.publisher-confirms=true

    spring.rabbitma.publisher-returns=true

    spring.rabbitma.template.mandatory=true //异步返回 returns结果

    //默认自动ack,不确定是否处理完

    spring.rabbitmq.listener.simple.acknowledge-mode=manual

    Config类中

    定制RabbitTemplate,setConfirmCallBack

    手动ack

    Channel.basicAck

    Channel.basicNack 不确认,要不要重新入队

    channel.basicReject,拒绝,重新发送给其他处理

    实际项目

    是否配置了手动ack,手动ack是不是都是非批量

  • 相关阅读:
    text 文本属性
    vue3 依赖注入 provide/inject
    百度上线“文心一言”付费版本,AI聊天机器人市场竞争加剧
    JVM-类加载子系统
    (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
    直接插入排序
    算法设计与分析大师班
    搜广推火线入门
    微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka
    R语言使用lightgbm包构建二分类的LightGBM模型、使用predict函数和训练模型进行预测推理,预测测试数据的概率值并转化为标签
  • 原文地址:https://blog.csdn.net/zhangbinHn/article/details/126583396