SpringBoot 3.4.3 整合 RabbitMQ
SpringBoot 3.4.3 整合 RabbitMQ 4.0.7 实战指南1. 概述消息队列是分布式系统中不可或缺的组件,用于解耦、异步处理、削峰填谷等场景。RabbitMQ 作为一种高性能、可靠的消息队列中间件,广泛应用于企业生产环境。本文将详细介绍如何在 SpringBoot 3.4.3 项目中整合 RabbitMQ 4.0.7,并实现三种交换机类型(Direct、Fanout、Topic)的完整示例。
2. RabbitMQ 核心概念在深入实现之前,先简单回顾 RabbitMQ 的几个核心概念:
Producer:生产者,发送消息的应用程序
Consumer:消费者,接收和处理消息的应用程序
Queue:队列,存储消息的缓冲区
Exchange:交换机,接收生产者发送的消息,并根据路由规则将消息路由到一个或多个队列
Binding:绑定,Exchange 和 Queue 之间的关联关系
Routing Key:路由键,Exchange 根据路由键将消息路由到队列
RabbitMQ 支持多种类型的交换机,本文将重点介绍三种:
Direct Exchange:直接交换机,根 ...
RabbitMQ 4.x 入门指南:从小白到消息队列实践者
RabbitMQ入门指南什么是RabbitMQ?RabbitMQ是一个开源的消息代理和队列服务器,它实现了高级消息队列协议(AMQP),用于在分布式系统中存储和转发消息。简单来说,它就像一个高效的邮局,负责接收、存储和分发应用程序之间的消息。
生活场景类比:当你在电商网站下单后,系统需要做很多事情——减库存、发邮件通知、生成订单、更新用户积分等等。如果这些操作都在用户点击”提交订单”时同步执行,用户可能需要等待很久。而使用RabbitMQ,主程序只需要发送一条”用户下单了”的消息,其他服务可以异步处理各自的任务,大大提高了系统响应速度。
RabbitMQ的优缺点优点
可靠性:支持消息持久化、传输确认和发布确认,确保消息不丢失
灵活的路由:通过Exchange实现多种消息路由方式
扩展性:支持集群部署,轻松应对高并发
多语言支持:几乎支持所有主流编程语言
管理界面:提供友好的Web管理界面
缺点
学习曲线:概念较多,初学者需要时间理解
性能:相比Kafka等系统,在超高吞吐量场景下表现稍弱
配置复杂:高级功能需要较多配置
RabbitMQ核心概念基础组件
Producer(生产者 ...
ElasticSearch ClickHouse Doris 三个数据库的区别
ElasticSearch、ClickHouse、Doris三大数据库深度对比
Elasticsearch、ClickHouse、Doris是三种不同定位的数据库,分别针对特定场景优化。本文对三者进行深度对比分析,帮助您根据业务需求选择最合适的解决方案。
基础架构对比
数据库
定位
存储模型
架构特点
适用场景
Elasticsearch
分布式搜索和分析引擎
文档型(JSON)
分片+倒排索引
全文检索、日志分析
ClickHouse
列式OLAP数据库
列式存储
向量化执行引擎
海量数据高速分析
Apache Doris
MPP架构实时数仓
列式存储
兼容MySQL协议
企业实时报表、多表关联
1. Elasticsearch详解核心优势
全文检索
复杂条件过滤
实时分析(非结构化数据)
典型应用场景
日志分析:ELK Stack生态(Elasticsearch + Logstash + Kibana)
全文搜索:电商平台商品搜索、内容网站检索
高维数据聚合:用户行为分析、地理位置服务
优点
强大的全文检索能力(支持模糊匹配、高亮显示等高级搜索功能)
优 ...
记一次 OpenVPN 配置解决 RDS 安全问题
记一次 OpenVPN 配置解决 RDS 安全问题1. 问题背景出于某些原因,线上 RDS 数据库的访问凭证(用户名密码)泄露到了公司内部。这导致了几个潜在的安全隐患:
公网访问风险:公司网络环境下,由于 RDS 公网地址的 IP 白名单包含了公司出口 IP,无权限的同事获取公网 RDS 地址后可以直接连接线上数据库
VPN 访问风险:连接公司内网 VPN 后,可以通过 RDS 内网地址连接到数据库
跳板机风险:测试服务器可以作为跳板,通过内网 RDS 地址连接线上库
本文记录了如何通过配置来逐一解决这些问题,确保只有授权人员可以访问线上数据库。
2. 解决方案2.1 剔除 RDS 公网访问白名单问题:公司网络环境下可以通过公网 RDS 地址访问线上数据库
解决方法:
在阿里云 RDS 控制台的安全设置中,将公司的外网出口 IP 从白名单中移除,这样公司网络环境下就无法通过公网地址连接数据库了。
2.2 阻断 VPN 连接内网 RDS 的通道问题:连接公司 VPN 后可通过内网地址访问 RDS
当前配置:OpenVPN 服务端配置文件中的路由配置如下:
12# 该配置使整个网段的流 ...
SpringBoot 3.4.3 引入 Nacos
安装 Nacos查看官网手册
SpringBoot 引入 Nacos1. 添加依赖在 pom.xml 中添加以下依赖(兼容 Spring Boot 3.4.3):
123456789101112131415161718192021<dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2023.0.1.0</version> <type>pom</type> <scope>import</scope> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba.c ...
AI 大模型的 Temperature 参数到底是干嘛用的,该怎么设置
AI 大模型的 Temperature 参数是用来控制模型生成输出时的随机性和创造性的一个关键指标。具体来说,它调整的是生成结果的概率分布平滑度。
工作原理
模型生成文本时,每个可能的词都有一个预测概率(由软最大值归一化生成)。
Temperature 参数用于控制这个概率分布的尖锐程度或平滑程度:
低 Temperature(趋近 0):
让分布更尖锐,模型会倾向于选择概率最高的词。
结果更加确定性,输出更保守。
高 Temperature(>1):
让分布更平滑,模型有更高的几率选择低概率的词。
结果更加随机,输出更具创造性。
数学上,Temperature 会作用在预测概率上:
其中 T 是 Temperature 参数。
当 𝑇 → 0:会使最高概率的词占主导,结果变得更确定。
以下是关于其他AI大模型文档中关于各种请求参数的介绍
Moonshot AI
DeepSeek API 文档
云服务器其中一台服务器和另外几台互相ping不通的问题排查
现象描述我们在阿里云上有 12 台服务器,其中 2 台服务器是部署了 doris 服务,内网IP(172.21.212.227,172.21.212.225),还有一台后台服务器内网IP(172.18.20.233),目前发现后台服务器和那两台 doris 服务器互相 ping 不通,其余的服务器都能和 doris 互相 ping 通。这说明肯定是后台服务器的设置问题。
问题排查从 IP 可以看到两台 doris 服务和后台服务器的网段不一样,一个是 21,一个是 18。
先使用 route -n 看一下路由表
1234567891011[root@iZbp15ykl21vqt34uyqcolZ ~]# route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface0.0.0.0 172.18.31.253 0.0.0.0 UG 0 0 0 eth010.174.215 ...
Vercel绑定自定义域名
❓为什么要绑定自定义域名?
vercel默认提供的域名 *.vercel.app 由于滥用已被大陆屏蔽(DNS污染),如果需要在国内能访问到您的站点,请绑定一个新的域名即可
准备一个域名首先购买自己的域名,您可以选择以下渠道进行购买:
腾讯云
阿里云
这里就不赘述了,域名买好然后备案好
Vercel控制台配置
在Vercel控制面板中找到 Setting→Domains→Add,在这里可以指定当前项目的绑定域名,一个项目可以绑定多个域名。
输入域名,并Add之后,如果看到下图中的提示(Invalid Configuration)👇, 说明域名已经添加,但需要根据提示添加CNAME或Nameserver的方式激活它,图中所示是要在域名后台添加一条CNAME类型的解析,参数名blog1,值为cname.vercel-dns.com。
这里推荐使用CNAME绑定。请按文档后续步骤配置对应的Cname解析。
配置CNAME解析以下分多个平台举例,配置方法大同小异,只是入口不太一样,我这里主要讲阿里云的配置方法
打开控制台 https://dc.console.aliyun.co ...
Docker系列 Uptime Kuma监测网站连通性
前言上周六上午出了一个事故,核心业务接口挂了2个小时没人知道,直到看到数据后不对劲经排查才发现是接口挂了导致的。
然后赶紧启动服务,随后开始查询问题出在哪里,先是看 Nginx 日志发现很大,Nginx 被错误日志打到有45个G,直接 vim 压根打不开。
然后根据 split -b 1G nginx.error.log errLog_ 命令把错误日志按每个文件 1G 来分割成了45个文件,方便查看日志排查问题。
vim 最早的 errLog_aa 文件发现其中最早的报错是 upstream prematurely closed connection while reading response header from upstream
这个报错可能是由于数据量突增导致的,然后发现确实从周五开始请求量和数据量突增,加上是单台机器导致了服务被打挂。
解决加机器首先肯定是加机器来分摊压力,用 Nginx 部署负载均衡
接口状态监控其次是要找一个可以监控接口状态的,如果说接口挂了可以发邮件被动知晓的,又不想很重的。
就找到了本次讲的 uptime-kuma。
uptime-kuma 支持监控 ...
Java的Webmagic爬虫实践
前言有个需求,需要抓取天气的资讯文章,而该项目是用 Java 写的,由于爬虫需求也较小,所以就索性直接用 Java 来爬。
Java 有个包是 webmagic 本次就是用的这个包做的实践。
我们要采集的网址是 https://www.weather.com.cn/index/jqzdtqsj/index.shtml 打开这个网址可以看到是个列表,并且有分页。
配置 Maven 依赖12345678910<dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.10.3</version></dependency><dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-extension</artifac ...