- 1 什么是幂等性 用户对于同一操作发起的一次请求或者多次请求的结果是一致的。 比如数据库的乐观锁,在执行更新操作前,先去数据库查询version,然后执行更新语句,以version作为条件,如果执行更新时有其他人先更新了这张表的数据,那么这个条件就不生效了,也就不会执行操作了,通过这种乐观锁的机制来保障幂等性. 2 Con幂等性 2.1 什么是Con幂等性 消... 1 什么是幂等性 用户对于同一操作发起的一次请求或者多次请求的结果是一致的。 比如数据库的乐观锁,在执行更新操作前,先去数据库查询version,然后执行更新语句,以version作为条件,如果执行更新时有其他人先更新了这张表的数据,那么这个条件就不生效了,也就不会执行操作了,通过这种乐观锁的机制来保障幂等性. 2 Con幂等性 2.1 什么是Con幂等性 消...
- Exchange:接收消息,并根据路由键转发消息所绑定的队列。注意交换机并非一个单独运行的进程,而是一个有着“地址”的列表而已。 蓝区 - Send Message:把消息投递到交换机,由 RoutingKey 路由到指定队列。 1 交换机属性 声明交换机时可以附带许多属性: Name 交换机名称Type 交换机类型,direct、topic、 fanout、 ... Exchange:接收消息,并根据路由键转发消息所绑定的队列。注意交换机并非一个单独运行的进程,而是一个有着“地址”的列表而已。 蓝区 - Send Message:把消息投递到交换机,由 RoutingKey 路由到指定队列。 1 交换机属性 声明交换机时可以附带许多属性: Name 交换机名称Type 交换机类型,direct、topic、 fanout、 ...
- 1 概述 RabbitMQ允许你为messages和queues设置TTL(存活时间)。这可以使用可选的queue 参数或策略来完成(建议使用后一个选项)。 Message TTL可以应用于单个队列,一组队列或逐个消息地应用。 TTL设置也可以由操作策略强制执行。 队列中的 Per-Queue消息TTL Message TTL可以通过使用策略设置message... 1 概述 RabbitMQ允许你为messages和queues设置TTL(存活时间)。这可以使用可选的queue 参数或策略来完成(建议使用后一个选项)。 Message TTL可以应用于单个队列,一组队列或逐个消息地应用。 TTL设置也可以由操作策略强制执行。 队列中的 Per-Queue消息TTL Message TTL可以通过使用策略设置message...
- 背景 RabbitMQ 自 V3.5.0 有优先级队列实现。使用客户端提供的可选参数可将任何队列转换为优先级(但与使用可选参数而不是策略的其他功能不同)。其实现支持有限数量的优先事项:255。但推荐值介于: 1 ~ 10。 使用客户端提供的可选参数 要声明优先级队列,使用 x-max-priority 参数。此参数应为介于 1 和 255 之间的正整数,指示队列应... 背景 RabbitMQ 自 V3.5.0 有优先级队列实现。使用客户端提供的可选参数可将任何队列转换为优先级(但与使用可选参数而不是策略的其他功能不同)。其实现支持有限数量的优先事项:255。但推荐值介于: 1 ~ 10。 使用客户端提供的可选参数 要声明优先级队列,使用 x-max-priority 参数。此参数应为介于 1 和 255 之间的正整数,指示队列应...
- 1 什么是DLX? 利用DLX,当消息在一个队列中变成死信后,它能被重新发布到另一个Exchange中,这个Exchange就是DLX。 本质就是该消息不会再被任何消费端消费(但你可以自定义某消费者单独处理这些死信)。 2 DLX产生场景 消息被拒绝(basic.reject/basic.nack),且requeue = false消息因TTL过期队列达到最大长度... 1 什么是DLX? 利用DLX,当消息在一个队列中变成死信后,它能被重新发布到另一个Exchange中,这个Exchange就是DLX。 本质就是该消息不会再被任何消费端消费(但你可以自定义某消费者单独处理这些死信)。 2 DLX产生场景 消息被拒绝(basic.reject/basic.nack),且requeue = false消息因TTL过期队列达到最大长度...
- 1 服务端确认 - Transaction模式 注意,此事务非数据库的事务概念! //将channel设置成事务模式 - channel.txSelect(); //提交事务 - channel.txCommit(); //事务回滚 - channel.txRollback(); 123456 当消息的发布者在将消息发送出去之后,消息到底有没有正确到达... 1 服务端确认 - Transaction模式 注意,此事务非数据库的事务概念! //将channel设置成事务模式 - channel.txSelect(); //提交事务 - channel.txCommit(); //事务回滚 - channel.txRollback(); 123456 当消息的发布者在将消息发送出去之后,消息到底有没有正确到达...
- 1 安装 brew install rabbitmq 1 默认安装路径 安装成功后,文件在该路径下:/usr/local/Cellar/rabbitmq/版本号/ 2 启动服务器 2.1 命令行启动 进入安装路径后输入 sbin/rabbitmq-server 1 启动服务器,启动成功之后会显示completed with N plugins,我这里... 1 安装 brew install rabbitmq 1 默认安装路径 安装成功后,文件在该路径下:/usr/local/Cellar/rabbitmq/版本号/ 2 启动服务器 2.1 命令行启动 进入安装路径后输入 sbin/rabbitmq-server 1 启动服务器,启动成功之后会显示completed with N plugins,我这里...
- 最开始我们都是编写while循环,通过consumer.nextDelivery方法获取下一条消息,然后进行消费处理。 其实还有另一种选择,使用自定义的Consumer,它更方便,解耦性更强,也是在实际工作中最常用的使用方式。 自定义Con实现只需要继承 DefaultConsumer 类,重写 handleDelivery 方法即可。 代码实现 自定义Con ... 最开始我们都是编写while循环,通过consumer.nextDelivery方法获取下一条消息,然后进行消费处理。 其实还有另一种选择,使用自定义的Consumer,它更方便,解耦性更强,也是在实际工作中最常用的使用方式。 自定义Con实现只需要继承 DefaultConsumer 类,重写 handleDelivery 方法即可。 代码实现 自定义Con ...
- 前言 主题模式下,消费者能够接收到符合某一主题的的消息,消息的匹配规则如下: * (star) 匹配一个字符; # (hash)匹配0~n个字符; 架构如下: image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceComp... 前言 主题模式下,消费者能够接收到符合某一主题的的消息,消息的匹配规则如下: * (star) 匹配一个字符; # (hash)匹配0~n个字符; 架构如下: image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceComp...
- 前言 本文介绍java客户端如何实现工作队列,入下图所示,生产者P生产消息,消息传送到队列,C1,C2轮流消费消息。 image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 reposi... 前言 本文介绍java客户端如何实现工作队列,入下图所示,生产者P生产消息,消息传送到队列,C1,C2轮流消费消息。 image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 reposi...
- 前言 本文简要介绍如何使用java客户端,连接rabbitmq server。本文开始之前,需要安装好mq服务器,如果不知道怎么安装,可参考rabbitmq安装 使用架构 image.png 使用gradle java项目 代码 build.gradle plugins { id 'java' } group 'com.nick' version ... 前言 本文简要介绍如何使用java客户端,连接rabbitmq server。本文开始之前,需要安装好mq服务器,如果不知道怎么安装,可参考rabbitmq安装 使用架构 image.png 使用gradle java项目 代码 build.gradle plugins { id 'java' } group 'com.nick' version ...
- 前言 本文介绍如何安装rabbitmq,安装版本为写该文章时的稳定最新版。 安装步骤 安装erlang CentOS 7中安装Erlang 20.x,新建文件/etc/yum.repos.d/rabbitmq-erlang.repo: # In /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] name=rabb... 前言 本文介绍如何安装rabbitmq,安装版本为写该文章时的稳定最新版。 安装步骤 安装erlang CentOS 7中安装Erlang 20.x,新建文件/etc/yum.repos.d/rabbitmq-erlang.repo: # In /etc/yum.repos.d/rabbitmq-erlang.repo [rabbitmq-erlang] name=rabb...
- 前言 Routing模式通过routingKey,决定发送和接收路径架构如下: image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentr... 前言 Routing模式通过routingKey,决定发送和接收路径架构如下: image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentr...
- 前言 发布订阅模式,如下所示: p: 生产者,生产消息; x: 交换机,接收消息; c1,c2: 消息队列 image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositorie... 前言 发布订阅模式,如下所示: p: 生产者,生产消息; x: 交换机,接收消息; c1,c2: 消息队列 image.png 代码 build.gradle plugins { id 'java' } group 'com.nick' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositorie...
- 本文将从,Kafka、RabbitMQ、ZeroMQ、RocketMQ、ActiveMQ 17 个方面综合对比作为消息队列使用时的差异。 一、资料文档 Kafka:中。有kafka作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少。没有专门写zeromq的书,网上的资料多是一些代码的实现和简单介绍。rocketmq:少... 本文将从,Kafka、RabbitMQ、ZeroMQ、RocketMQ、ActiveMQ 17 个方面综合对比作为消息队列使用时的差异。 一、资料文档 Kafka:中。有kafka作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少。没有专门写zeromq的书,网上的资料多是一些代码的实现和简单介绍。rocketmq:少...
上滑加载中
推荐直播
-
华为开发者空间玩转DeepSeek
2025/03/13 周四 19:00-20:30
马欣 山东商业职业技术学院云计算专业讲师,山东大学、山东建筑大学等多所本科学校学生校外指导老师
同学们,想知道如何利用华为开发者空间部署自己的DeepSeek模型吗?想了解如何用DeepSeek在云主机上探索好玩的应用吗?想探讨如何利用DeepSeek在自己的专有云主机上辅助编程吗?让我们来一场云和AI的盛宴。
回顾中 -
华为云Metastudio×DeepSeek与RAG检索优化分享
2025/03/14 周五 16:00-17:30
大海 华为云学堂技术讲师 Cocl 华为云学堂技术讲师
本次直播将带来DeepSeek数字人解决方案,以及如何使用Embedding与Rerank实现检索优化实践,为开发者与企业提供参考,助力场景落地。
去报名
热门标签