RabbitMQ的安装
RabbitMQ的安装
1、Windows环境下的RabbitMQ安装步骤
使用的版本:otp_win64_23.2 + rabbitmq-server-3.8.16
版本说明:https://www.rabbitmq.com/which-erlang.html#compatibility-matrix
1.1 下载并安装erlang
RabbitMQ 服务端代码是使用并发式语言 Erlang 编写的,安装 RabbitMQ 的前提是安装 Erlang。
下载地址:
http://www.erlang.org/downloads

https://www.erlang.org/patches/otp-23.2

根据操作系统选择 erlang 下载版本。
下载完的软件包:

双击软件点击下一步进行安装,和平时使用的软件的安装方式是一样的。
安装完之后配置环境变量,此电脑–>鼠标右键属性–>高级系统设置–>环境变量–>新建系统环境变量。
变量名:ERLANG_HOME
变量值就是刚才 erlang 的安装地址,点击确定。

然后编辑系统变量 path,将 %ERLANG_HOME%\bin 加入到 path 中。

最后 windows 键 +R 键,输入 cmd,再输入 erl,看到版本号就说明 erlang 安装成功了。

1.2 下载并安装RabbitMQ
下载地址:http://www.rabbitmq.com/download.html

这里下载 v3.8.16 版本:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.16
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.16/rabbitmq-server-3.8.16.exe

双击下载后的 .exe 文件,安装过程与 erlang 的安装过程相同。
RabbitMQ 安装目录中是不允许有空格的。
RabbitMQ 安装好后接下来安装 RabbitMQ-Plugins,打开命令行 cd,输入 RabbitMQ 的 sbin 目录。
我的目录是:C:\zsxsoftware\rabbitmq\rabbitmq_server-3.8.16\sbin
然后在后面输入 rabbitmq-plugins enable rabbitmq_management 命令进行安装:

输入 rabbitmqctl status,如果出现以下的图,说明安装是成功的,并且说明现在 RabbitMQ Server 已经启动
了,运行正常。

打开 sbin 目录,双击 rabbitmq-server.bat
等几秒钟看到这个界面后,访问 http://localhost:15672
然后可以看到如下界面:

默认用户名和密码都是 guest,登陆即可:

1.3 安装遇到的问题
rabbitmq-plugins enable rabbitmq_management 命令执行错误:
rabbitmq-service stop
rabbitmq-service remove
rabbitmq-service install
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl status 命令执行错误:
Error: unable to perform an operation on node 'rabbit@DESKTOP-8VB0JLG'. Please see diagnostics information and suggestions below.
1、将C:\Users\{用户名}\.erlang.cookie 复制到 C:\Windows\System32\config\systemprofile 目录。
2、重启 rabbitMQ 服务。
1.4 配置允许远程访问
更多情况下,队列服务往往不在我们本机上,我们需要远程来控制 RabbitMQ,但是默认是无法通过
http://hostname:15672 来访问的:

添加一个新的用户:


点击 zsx242030 用户:

点击 set permission 赋予权限。

使用 rabbitmqctl list_users 查看用户信息:

然后使用新建的用户尝试登录:



1.5 RabbitMQ常用的命令
# 停止服务
rabbitmq-service stop
# 安装服务
rabbitmq-service install
# 开启服务
rabbitmq-service start
# 查看用户信息
rabbitmqctl list_users

# guest密码忘记,更改密码
rabbitmqctl change_password guest guest
# 设置用户为超级管理员
rabbitmqctl set_user_tags guest administrator
# 赋予权限
rabbitmqctl set_permissions -p / guest '.*' '.*' '.*'

2、Linux环境下的RabbitMQ安装步骤
使用的版本:otp_src_22.3.tar.gz + rabbitmq-server-generic-unix-3.7.15.tar.xz
2.1 安装erlang
由于 rabbitmq 是基于 erlang 语言开发的,所以必须先安装 erlang。
安装依赖:
$ yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
去 erlang 官网下载安装包上传到 linux 服务器。
https://www.erlang.org/downloads
或者使用 wget 命令下载:
$ wget http://erlang.org/download/otp_src_22.3.tar.gz
解压:
$ tar -zxvf otp_src_22.3.tar.gz
移走:
$ mv otp_src_22.3 /usr/local/
切换目录:
$ cd /usr/local/otp_src_22.3/
创建即将安装的目录:
$ mkdir ../erlang
配置安装路径:
$ ./configure --prefix=/usr/local/erlang

如果遇到这个错你就假装没看到:

安装:
$ make install

查看一下是否安装成功:
$ ll /usr/local/erlang/bin

添加环境变量:
$ echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
刷新环境变量:
$ source /etc/profile
甩一条命令:
$ erl

在里面输入 halt(). 命令退出来(那个点号别忘记)

2.2 安装RabbitMQ
使用下面命令下载 rabbitmq 或者是下载好之后上传到 linux 服务器。
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
由于是 tar.xz 格式的所以需要用到 xz,没有的话就先安装:
$ yum install -y xz
第一次解压:
$ /bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz
第二次解压:
$ tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
移走:
$ mv rabbitmq_server-3.7.15/ /usr/local/
改名:
$ mv /usr/local/rabbitmq_server-3.7.15 /usr/local/rabbitmq
配置环境变量
$ echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
刷新环境变量
$ source /etc/profile
2.3 启动
启动:
$ rabbitmq-server -detached

编辑 /etc/hosts 文件,在文件的末尾加一条 127.0.0.1 zsx 即可。
重新启动:


状态:
$ rabbitmqctl status

停止:
$ rabbitmqctl stop

2.4 WEB管理
开启web插件
$ rabbitmq-plugins enable rabbitmq_management

开放 15672 端口:
# 查看开放的端口号
firewall-cmd --list-all
# 设置开放的端口号
firewall-cmd --add-port=15672/tcp --permanent
# 重启防火墙
firewall-cmd --reload
访问:http://192.168.94.186:15672/

默认账号密码(这个账号只允许本机访问):guest/guest
2.5 用户管理
查看所有用户:
$ rabbitmqctl list_users

添加一个用户:
$ rabbitmqctl add_user zsx242030 zsx242030
配置权限:
$ rabbitmqctl set_permissions -p "/" zsx242030 ".*" ".*" ".*"

查看用户权限:
$ rabbitmqctl list_user_permissions zsx242030

设置 tag:
$ rabbitmqctl set_user_tags zsx242030 administrator

删除用户(安全起见,删除默认用户)
$ rabbitmqctl delete_user guest
2.6 登陆
配置好用户之后然后就可以用新账号进行登陆:

3、Docker安装RabbitMQ
3.1 搜索镜像
$ docker search rabbitmq

3.2 拉取镜像
$ docker pull rabbitmq:3.7.15

3.3 启动运行
$ docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --hostname myRabbit --name rabbitmq --restart=always rabbitmq:3.7.15
参数说明:
-d:表示在后台运行容器;
-p:将容器的端口 5672(应用访问端口)和15672(控制台Web端口号)映射到主机中;
-e:指定环境变量:
-
RABBITMQ_DEFAULT_VHOST:默认虚拟机名; -
RABBITMQ_DEFAULT_USER:默认的用户名; -
RABBITMQ_DEFAULT_PASS:默认的用户密码;
--hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的节点名称存储数据,默认为主机名);
--name:设置容器名称;
rabbitmq:3.7.15:容器使用的镜像名称;

3.4 查看启动情况
$ docker logs -f rabbitmq

$ docker ps -l

3.5 启动 rabbitmq_management
$ docker exec -it rabbitmq /bin/bash
$ rabbitmq-plugins enable rabbitmq_management

或者是通过下面命令:
$ docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
3.6 访问 RabbitMQ后台管理
浏览器输入地址:http://192.168.94.186:15672/ 即可访问后台管理页面,这里的 ip 为运行 RabbitMQ 所
在的服务器的 IP 地址。
默认的用户名和密码都是 guest (如果没有在容器创建的时候指定用户名密码)。
但由于我们启动的时候设置了默认的用户名和密码,所以我们可以使用设置的用户名和密码登录。


4、镜像集群搭建
4.1 搭建环境
| IP | 主机 |
|---|---|
| 192.168.54.200 | master |
| 192.168.54.201 | slave1 |
| 192.168.54.202 | slave2 |
$ vi /etc/hosts
192.168.54.200 master
192.168.54.201 slave1
192.168.54.202 slave2
使用的版本:otp_src_22.3.tar.gz + rabbitmq-server-generic-unix-3.7.15.tar.xz
4.2 安装erlang(所有机器)
由于 rabbitmq 是基于 erlang 语言开发的,所以必须先安装 erlang。
安装依赖:
$ yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
去 erlang 官网下载安装包上传到 linux 服务器:
http://erlang.org/download/otp_src_22.3.tar.gz
解压:
$ tar -zxvf otp_src_22.3.tar.gz
移走:
$ mv otp_src_22.3 /usr/local/
切换目录:
$ cd /usr/local/otp_src_22.3/
创建即将安装的目录:
$ mkdir ../erlang
配置安装路径:
$ ./configure --prefix=/usr/local/erlang
安装:
$ make install
查看一下是否安装成功:
$ ll /usr/local/erlang/bin
添加环境变量:
$ echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
刷新环境变量:
$ source /etc/profile
甩一条命令:
$ erl
在里面输入 halt(). 命令退出来(那个点号别忘记)
4.3 安装RabbitMQ(所有机器)
将下载好之后的软件上传到 linux 服务器:
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
由于是 tar.xz 格式的所以需要用到 xz,没有的话就先安装:
$ yum install -y xz
第一次解压:
$ /bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz
第二次解压:
$ tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
移走:
$ mv rabbitmq_server-3.7.15/ /usr/local/
改名:
$ mv /usr/local/rabbitmq_server-3.7.15 /usr/local/rabbitmq
配置环境变量:
$ echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
刷新环境变量:
$ source /etc/profile
启动:
$ rabbitmq-server -detached
查看启动状态:
$ ps -ef | grep rabbitmq
状态:
$ rabbitmqctl status
停止:
$ rabbitmqctl stop
4.4 WEB管理(所有机器)
开启 web 插件:
$ rabbitmq-plugins enable rabbitmq_management
开放 15672 端口:
# 查看开放的端口号
firewall-cmd --list-all
# 设置开放的端口号
firewall-cmd --add-port=15672/tcp --permanent
# 重启防火墙
firewall-cmd --reload
访问:http://ip:15672/
默认账号密码(这个账号只允许本机访问):guest/guest
4.5 用户管理(所有机器)
查看所有用户:
$ rabbitmqctl list_users
添加一个用户:
$ rabbitmqctl add_user zsx242030 zsx242030
配置权限:
$ rabbitmqctl set_permissions -p "/" zsx242030 ".*" ".*" ".*"
查看用户权限:
$ rabbitmqctl list_user_permissions zsx242030
设置 tag:
$ rabbitmqctl set_user_tags zsx242030 administrator
删除用户(安全起见,删除默认用户)
$ rabbitmqctl delete_user guest
4.6 镜像模式集群的搭建
4.6.1 停止RabbitMQ服务(所有机器)
$ rabbitmqctl stop
4.6.2 拷贝.erlang.cookie(master机器)
官方在介绍集群的文档中提到过 .erlang.cookie 一般会存在这两个地址:
第一个是 ~/.erlang.cookie
第二个地方就是 /var/lib/rabbitmq/.erlang.cookie
本文的地址在 ~/.erlang.cookie
$ scp /root/.erlang.cookie root@slave1:/root/
$ scp /root/.erlang.cookie root@slave2:/root/
4.6.3 启动RabbitMQ服务
顺带启动 Erlang 虚拟机和 RabbitMQ 应用服务,在 master、slave1、slave2 执行命令:
$ rabbitmq-server -detached
4.6.4 节点加入
RabbitMQ 集群的搭建需要选择其中任意一个节点为基准,将其它节点逐步加入。这里我们以 master 为基准节
点,将 slave1 和 slave2 加入集群。在 slave1 和 slave2 上执行以下命令:
# 1.停止服务
rabbitmqctl stop_app
# rabbitmqctl stop会将Erlang虚拟机关闭,rabbitmqctl stop_app只关闭RabbitMQ服务# 2.重置状态
rabbitmqctl reset# 3.节点加入,在一个node加入cluster之前,必须先停止该node的rabbitmq应用,即先执行stop_app
# slave1加入master,slave2加入master
rabbitmqctl join_cluster rabbit@master# 4.启动服务
rabbitmqctl start_app
4.6.5 查看集群状态
此时可以在任意节点上使用 rabbitmqctl cluster_status 命令查看集群状态,输出如下:
[root@master ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@master ...
[{nodes,[{disc,[rabbit@master,rabbit@slave1,rabbit@slave2]}]},{running_nodes,[rabbit@slave2,rabbit@slave1,rabbit@master]},{cluster_name,<<"rabbit@master">>},{partitions,[]},{alarms,[{rabbit@slave2,[]},{rabbit@slave1,[]},{rabbit@master,[]}]}]
[root@slave1 rabbitmq]# rabbitmqctl cluster_status
Cluster status of node rabbit@slave1 ...
[{nodes,[{disc,[rabbit@master,rabbit@slave1,rabbit@slave2]}]},{running_nodes,[rabbit@slave2,rabbit@master,rabbit@slave1]},{cluster_name,<<"rabbit@master">>},{partitions,[]},{alarms,[{rabbit@slave2,[]},{rabbit@master,[]},{rabbit@slave1,[]}]}]
[root@slave2 rabbitmq]# rabbitmqctl cluster_status
Cluster status of node rabbit@slave2 ...
[{nodes,[{disc,[rabbit@master,rabbit@slave1,rabbit@slave2]}]},{running_nodes,[rabbit@master,rabbit@slave1,rabbit@slave2]},{cluster_name,<<"rabbit@master">>},{partitions,[]},{alarms,[{rabbit@master,[]},{rabbit@slave1,[]},{rabbit@slave2,[]}]}]
4.6.6 UI 界面查看

4.6.7 配置镜像模式
在任意节点执行即可:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
4.6.8 从集群中移除节点
1、在需要移除的节点上执行停止命令
rabbitmqctl stop_app
2、在其他节点上执行移除节点命令
rabbitmqctl forget_cluster_node rabbit@slave2
–offline 参数,它允许节点在自身没有启动的情况下将其他节点剔除。
4.6.9 解除集群
重置当前节点:
# 1.停止服务
rabbitmqctl stop_app# 2.重置集群状态
rabbitmqctl reset# 3.重启服务
rabbitmqctl start_app
重新加入集群:
# 1.停止服务
rabbitmqctl stop_app# 2.重置状态
rabbitmqctl reset# 3.节点加入
rabbitmqctl join_cluster rabbit@node1# 4.重启服务
rabbitmqctl start_app
4.6.10 变更节点类型
# 1.停止服务
rabbitmqctl stop_app# 2.变更类型,有两种类型ram和disc
# 我们可以将节点的类型从RAM更改为Disk
rabbitmqctl change_cluster_node_type disc# 3.重启服务
rabbitmqctl start_app
相关文章:
RabbitMQ的安装
RabbitMQ的安装 1、Windows环境下的RabbitMQ安装步骤 使用的版本:otp_win64_23.2 rabbitmq-server-3.8.16 版本说明:https://www.rabbitmq.com/which-erlang.html#compatibility-matrix 1.1 下载并安装erlang RabbitMQ 服务端代码是使用并发式语言…...
GPU版PyTorch对应安装教程
一、正确安装符合自己电脑的对应GPU版本的PyTorch之前需要了解三个基本概念 算力、CUDA driver version、CUDA runtime version ①算力:需要先知道你的显卡,之后根据官网表格进行对应,得到算力 ②CUDA driver version:电脑上显卡…...
医学影像PACS临床信息系统源码
医学影像临床信息系统(Picture Archiving and Communication Systems)PACS是指从医疗影像设备中获得数字影像,利用高速网络进行存储、管理、传输的医疗影像信息管理系统。通过该系统,能实现影像数字化、无胶片化管理。 登记系统 …...
Python(Web时代)——jinja2模板
简介 Jinja2是Flask框架默认支持的模板引擎,是python的web项目中被广泛应用的一种模板引擎,jinja2的作者与Flask是同一个人。 jinja2具有以下特点: 非常灵活,提供了控制结构、表达式与继承等 性能好 可读性强 渲染一个模板&a…...
酷开系统 | 酷开科技,让数据变得更有价值!
身处信息时代,我们每个人时刻都在生成、传递和应用数据,数据已经成为了现代社会中宝贵的资源之一,而在人工智能领域,数据更是被称为人工智能的“燃料”。 而在AI的发展中,只有拥有高质量、多样性且充分代表性的数据集…...
uni——tab切换
案例展示 案例代码 <view class"tablist"><block v-for"(item,index) in tabList" :key"index"><view class"tabItem" :class"current item.id?active:" click"changeTab(item)">{{item.nam…...
类图的6种关系和golang应用
文章目录 1. 依赖和关联1.1 依赖(Dependency)概念类图示例代码示例 1.2 关联(Association)概念类图示例代码示例 2. 组合和聚合(特殊的关联关系)2.1 聚合(Aggregation)概念类图示例代…...
Linux tar 备忘清单
tar 备忘清单 语法选项创建一个 tar 格式的压缩文件创建压缩后的 tar.gz 存档文件生成压缩率更高的 tar.bz2 文件解压缩 tar 文件解压缩 tar.gz 文件解压缩 tar.bz2 文件列出归档内容从 tar 归档文件中提取单个文件从 tar 归档文件中提取多个文件使用通配符提取文件组添加文件或…...
76. 最小覆盖子串
题目链接:力扣 解题思路:滑动窗口 因为只需要最小子串中包含t中的所有字符即可,顺序不重要,所以可以先统计一下 t 中每个字符出现的次数,使用map进行统计: key表示t中的字符,value表示字符的个…...
科兴未来|2023“数智未来,聚放神采”医疗科技创新挑战赛
一、赛事亮点 聚焦前沿神经科学与脑科学领域 展示优质创新产品、技术、平台与服务 汇聚学术端、产业端、投资端多维专业视角 搭建合作交流、产业赋能与生态融合平台 共话行业发展方向与动态趋势 二、赛事简介 2023医疗科技创新挑战赛聚焦于神经科学及脑科学领域的前沿技…...
第56步 深度学习图像识别:CNN梯度权重类激活映射(TensorFlow)
基于WIN10的64位系统演示 一、写在前面 类激活映射(Class Activation Mapping,CAM)和梯度权重类激活映射(Gradient-weighted Class Activation Mapping,Grad-CAM)是两种可视化深度学习模型决策过程的技术…...
云道资本:2023中国氢能源产业-氢制备深度研究报告(附下载)
关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 中国可再生能源消纳能力提升远远滞后于发电占比的提升。大规模的可再生能源发电是实现碳中和的关键一步,但风电、光伏发电间歌性、波动性强,电网消纳压力较大,且电…...
java文件
一.File类 二.扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件 我的代码: import java.io.File; import java.io.IOException; import java.util.Scanner;public class Tes…...
pyqt5 如何终止正在执行的线程?
在 PyQt5 中终止正在执行的线程,可以通过一些协调的方法来实现。一般情况下,直接强行终止线程是不安全的,可能会导致资源泄漏或者程序异常。相反,我们可以使用一种协作的方式,通知线程在合适的时候自行退出。 以下是一…...
力扣第357场周赛补题
6925. 故障键盘 - 力扣(LeetCode) 思路:模拟 class Solution { public:string finalString(string s) {string res;for(auto c : s){if(c i) reverse(res.begin(), res.end());else res c;}return res;} }; 6953. 判断是否能拆分数组 - 力…...
Keras指定model.fit()的输出
model.fit()当verbose1的时候会打印出所有指标和loss, 在多输出的情况下更是一团乱麻. 下面是一个可以指定每个epoch训练完的输入指标的方法: from keras.callbacks import Callback# Custom callback to display loss only at the end of each epoch class LossCallback(Call…...
替换开源LDAP,某科技企业用宁盾目录统一身份,为业务敏捷提供支撑
客户介绍 某高科技企业成立于2015年,是一家深耕于大物流领域的人工智能公司,迄今为止已为全球16个国家和地区,120余家客户打造智能化升级体验,场景覆盖海陆空铁、工厂等货运物流领域。 该公司使用开源LDAP面临的挑战 挑战1 开源…...
解决log4j.xml的url没有注册问题
在对log4j.xml配置文件配置时出现http//jakarta.apache.org/log4j/爆红,IDEA提示uri is not registered。源代码如下 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j"http://jakarta.apache.org/lo…...
深度思考操作系统面经
1 堆和栈的区别:(如果记的不太清楚,可以类比jvm中的堆和栈的区别,大差不差) 存储位置:堆是在计算机内存中动态分配的区域,而栈是在计算机内存中由操作系统自动分配和管理的区域。管理方式&…...
智慧工地源码:数字孪生智慧工地可视化解决方案
一、智慧工地建设背景 我国经济发展正从传统粗放式的高速增长阶段,进入高效率、低成本、可持续的中高速增长阶段。随着现代建筑的复杂度和体量等不断增加,施工现场管理的内容越来越多,管理的技术难度和要求在不断提高。传统的施工现场管理模…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
DeepSeek越强,Kimi越慌?
被DeepSeek吊打的Kimi,还有多少人在用? 去年,月之暗面创始人杨植麟别提有多风光了。90后清华学霸,国产大模型六小虎之一,手握十几亿美金的融资。旗下的AI助手Kimi烧钱如流水,单月光是投流就花费2个亿。 疯…...
