当前位置: 首页 > news >正文

【RabbitMQ实战】06 RabbitMQ配置

一、概述

一般情况下,可以使用默认的内建配置来有效地运行RabbitMQ,并且大多数情况下也并不需要修改任何 RabbitMQ的配置。当然,为了更加有效地操控 RabbitMQ,也可以利用调节系统范围内的参数来达到定制化的需求。

RabbitMQ提供了三种方式来定制化服务:

  • (1)环境变量(Enviroment Variables )。RabbitMQ服务端参数可以通过环境变量进行配置,
    例如,节点名称、RabbitMQ配置文件的地址、节点内部通信端口等。

  • (2)配置文件(Configuration File )。可以定义 RabbitMQ服务和插件设置,例如,TCP监听端口,以及其他网络相关的设置、内存限制、磁盘限制等。

  • (3)运行时参数和策略(Runtime Parameters and Policies)。可以在运行时定义集群层面的服务设置。

对于不同的操作系统和不同的RabbitMQ安装包来说,相应的配置会有所变化,包括相应的配置文件的地址等,在使用时要尤为注意。

二、环境变量

2.1 手动设置的环境变量

还记得我们在第一节,【 3分钟在Linux上安装RabbitMQ】,其中就手动设置了两个环境变量RABBITMQ_USERNAMERABBITMQ_PASSWORD
定义了超级管理员的账号和密码,这样我们就能通过这个账号登录管理后台

docker run -d --name rabbitmq \
-e RABBITMQ_USERNAME=admin \
-e RABBITMQ_PASSWORD=admin \
-p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 bitnami/rabbitmq

进入docker容器看一下关于RABBITMQ现在有哪些环境变量

I have no name!@0d5cb60e3a06:/$ env | grep RABBIT
RABBITMQ_PASSWORD=admin
RABBITMQ_USERNAME=admin

三、变量配置文件rabbitmq-env.conf

rabbitmq-env.conf配置文件所在目录为:/etc/rabbitmq

I have no name!@0d5cb60e3a06:/etc/rabbitmq$ ls -al
total 12
drwxrwxr-x. 1 root root  75 Sep 25 05:23 .
drwxr-xr-x. 1 root root  22 Dec  2  2021 ..
-rw-r--r--. 1 1001 root  41 Sep 25 05:23 enabled_plugins
-rw-r--r--. 1 1001 root 560 Sep 20 12:33 rabbitmq.conf
-rw-r--r--. 1 1001 root  78 Sep 20 12:33 rabbitmq-env.conf

查看一下该配置文件配置了些啥

I have no name!@0d5cb60e3a06:/etc/rabbitmq$ cat rabbitmq-env.conf 
HOME=/opt/bitnami/rabbitmq/.rabbitmq
NODE_PORT=5672
NODENAME=rabbit@localhost

默认的配置,就上面的HOME目录,端口,以及节点名称
如何配置这个文件呢?如果想改端口为5673,改成NODE_PORT=5673即可。如果想添加一个变量值,同样的,在最下面就可以直接添加。可以看到,这里的变量名,是不带RABBITMQ前缀的。

四、默认的取值规则文件rabbitmq-defaults

该文件一般是在:$RABBITMQ_HOME/sbin下面
本示例所在的目录是:/opt/bitnami/rabbitmq/sbin下面

I have no name!@0d5cb60e3a06:/opt/bitnami/rabbitmq/sbin$ ls -al
total 48
drwxrwxr-x. 1 root root  238 Dec  2  2021 .
drwxr-xr-x. 1 root root   45 Jan  4  2022 ..
-rwxrwxr-x. 1 root root  855 Dec  2  2021 rabbitmqctl
-rwxrwxr-x. 1 root root  609 Dec  2  2021 rabbitmq-defaults
-rwxrwxr-x. 1 root root  864 Dec  2  2021 rabbitmq-diagnostics
-rwxrwxr-x. 1 root root 6887 Dec  2  2021 rabbitmq-env
-rwxrwxr-x. 1 root root  860 Dec  2  2021 rabbitmq-plugins
-rwxrwxr-x. 1 root root  859 Dec  2  2021 rabbitmq-queues
-rwxrwxr-x. 1 root root 6002 Dec  2  2021 rabbitmq-server
-rwxrwxr-x. 1 root root  857 Dec  2  2021 rabbitmq-streams
-rwxrwxr-x. 1 root root  858 Dec  2  2021 rabbitmq-tanzu
-rwxrwxr-x. 1 root root  860 Dec  2  2021 rabbitmq-upgrade

该文件内容如下:

I have no name!@0d5cb60e3a06:/opt/bitnami/rabbitmq/sbin$ cat rabbitmq-defaults 
#!/bin/sh -e
##  This Source Code Form is subject to the terms of the Mozilla Public
##  License, v. 2.0. If a copy of the MPL was not distributed with this
##  file, You can obtain one at https://mozilla.org/MPL/2.0/.
##
##  Copyright (c) 2012-2020 VMware, Inc. or its affiliates.  All rights reserved.
##### next line potentially updated in package install steps
SYS_PREFIX=${RABBITMQ_HOME}CLEAN_BOOT_FILE=start_clean
SASL_BOOT_FILE=start_sasl
BOOT_MODULE="rabbit"if test -z "$CONF_ENV_FILE" && test -z "$RABBITMQ_CONF_ENV_FILE"; thenCONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
fi

可以看到这个文件有一些变量配置,如CONF_ENV_FILE,可以大概猜测到是指定rabbitmq的变量配置文件

五、配置文件rabbitmq.conf

配置文件在哪些目录,总是让人困扰的一件事,最简单的办法就是查看rabbitmq的服务启动日志
本示例通过docker logs 容器名称,查看日志

[root@localhost ~]# docker logs rabbitmq
......
2023-09-25 04:33:10.216618+00:00 [info] <0.222.0>  node           : rabbit@localhost
2023-09-25 04:33:10.216618+00:00 [info] <0.222.0>  home dir       : /opt/bitnami/rabbitmq/.rabbitmq
2023-09-25 04:33:10.216618+00:00 [info] <0.222.0>  config file(s) : /opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq.conf
2023-09-25 04:33:10.216618+00:00 [info] <0.222.0>  cookie hash    : XvNpT2Nlg8SZCslJcYXN8g==
2023-09-25 04:33:10.216618+00:00 [info] <0.222.0>  log(s)         : /opt/bitnami/rabbitmq/var/log/rabbitmq/rabbit@localhost_upgrade.log
2023-09-25 04:33:10.216618+00:00 [info] <0.222.0>                 : <stdout>
2023-09-25 04:33:10.216618+00:00 [info] <0.222.0>  database dir   : /bitnami/rabbitmq/mnesia/rabbit@localhost

该文件内容如下:
可以看到日志中配置文件在下面的目录:
config file(s) : /opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq.conf

I have no name!@0d5cb60e3a06:/opt/bitnami/rabbitmq/etc/rabbitmq$ cat rabbitmq.conf 
## Clustering
cluster_partition_handling = ignore## Defaults
# During the first start, RabbitMQ will create a vhost and a user
# These config items control what gets created
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*
default_vhost = /
default_user = admin
default_pass = admin## Networking
listeners.tcp.default = 5672## Management
management.tcp.ip = 0.0.0.0
management.tcp.port = 15672## Resource limits
# Set a free disk space limit relative to total available RAM
disk_free_limit.relative = 1.0

可以看到rabbitmq监听的端口是5672。一般情况下,如果能在rabbitmq-env.conf里面改的数据,建议直接在rabbitmq-env.conf里面改。

六、变量生效顺序

环境变量>rabbitmq-env.conf>rabbitmq.conf
以RABBITMQ_NODENAME 这个变量为例,

  • RabbitMQ在启动服务的时候首先判断当前Shell环境中有无 RABBITMQ_NODENANE的定义,如果有则启用此值;
  • 如果没有,则查看rabbitmq-env.conf 中是否定义了 NODENAME 这个变量,如果有则启用此值,如果没有则采用默认的取值规则,即 rabbit@$HOSTNAME。

附、关于环境变量的说明

(来源于官网)

RABBITMQ_VHOST: RabbitMQ application vhost. Default: /
RABBITMQ_VHOSTS: List of additional virtual host (vhost), separated by space. E.g.: /shared /prioritized /tasks
RABBITMQ_USERNAME: RabbitMQ application username. Default: user
RABBITMQ_PASSWORD: RabbitMQ application password. Default: bitnami
RABBITMQ_SECURE_PASSWORD: Whether to set the RabbitMQ password securely. This is incompatible with loading external RabbitMQ definitions. Default: no
RABBITMQ_LOAD_DEFINITIONS: Whether to load external RabbitMQ definitions. This is incompatible with setting the RabbitMQ password securely. Default: no.
RABBITMQ_ERL_COOKIE: Erlang cookie to determine whether different nodes are allowed to communicate with each other.
RABBITMQ_NODE_TYPE: Node Type. Valid values: stats, queue-ram or queue-disc. Default: stats
RABBITMQ_NODE_NAME: Node name and host. E.g.: node@hostname or node (localhost won't work in cluster topology). Default rabbit@localhost. If using this variable, ensure that you specify a valid host name as the container wil fail to start otherwise. If using a fully qualified domain name, RABBITMQ_USE_LONGNAME needs to be set to true as well.
RABBITMQ_USE_LONGNAME: When set to true this will cause RabbitMQ to use fully qualified names to identify nodes. Default: false
RABBITMQ_FORCE_BOOT: Force a node to start even if it was not the last to shut down. Default: no
RABBITMQ_CLUSTER_NODE_NAME: Node name to cluster with. E.g.: clusternode@hostname
RABBITMQ_CLUSTER_PARTITION_HANDLING: Cluster partition recovery mechanism. Default: ignore
RABBITMQ_NODE_PORT_NUMBER: Node port. Default: 5672
RABBITMQ_NODE_SSL_PORT_NUMBER: RabbitMQ node port number for SSL connections. Default: 5671
RABBITMQ_SSL_CACERTFILE: Path to the RabbitMQ server SSL CA certificate file. No defaults.
RABBITMQ_SSL_CERTFILE: Path to the RabbitMQ server SSL certificate file. No defaults.
RABBITMQ_SSL_KEYFILE: Path to the RabbitMQ server SSL certificate key file. No defaults.
RABBITMQ_COMBINED_CERT_PATH: Cert- and keyfile are combined automatically into one combined file at this file path. If you are using a combined certificate anyways, mount it to the container and set this path to the mounted file. Default: /tmp/rabbitmq_combined_keys.pem
RABBITMQ_SSL_DEPTH: Maximum number of non-self-issued intermediate certificates that may follow the peer certificate in a valid certification path. No defaults.
RABBITMQ_SSL_FAIL_IF_NO_PEER_CERT: Whether to reject TLS connections if client fails to provide a certificate. Default: verify_none
RABBITMQ_SSL_VERIFY: Whether to enable peer SSL certificate verification. Default: no
RABBITMQ_PLUGINS: Comma, semi-colon or space separated list of plugins to enable during the initialization. No defaults.
RABBITMQ_COMMUNITY_PLUGINS: Comma, semi-colon or space separated list of URLs where to download custom plugins during the initialization. No defaults.
Management server configuration
RABBITMQ_MANAGEMENT_BIND_IP: RabbitMQ management server bind IP address. Default: 0.0.0.0
RABBITMQ_MANAGEMENT_PORT_NUMBER: RabbitMQ management server port number. Default: 15672
RABBITMQ_MANAGEMENT_SSL_PORT_NUMBER: RabbitMQ management server port number for SSL/TLS connections. No defaults.
RABBITMQ_MANAGEMENT_SSL_CACERTFILE: Path to the RabbitMQ management server SSL CA certificate file. No defaults.
RABBITMQ_MANAGEMENT_SSL_CERTFILE: Path to the RabbitMQ management server SSL certificate file. No defaults.
RABBITMQ_MANAGEMENT_SSL_KEYFILE: Path to the RabbitMQ management server SSL certificate key file. No defaults.
RABBITMQ_MANAGEMENT_SSL_DEPTH: Maximum number of non-self-issued intermediate certificates that may follow the peer certificate in a valid certification path, for the RabbitMQ management server. No defaults.
RABBITMQ_MANAGEMENT_SSL_FAIL_IF_NO_PEER_CERT: Whether to reject TLS connections if client fails to provide a certificate for the RabbitMQ management server. Default: yes
RABBITMQ_MANAGEMENT_SSL_VERIFY: Whether to enable peer SSL certificate verification for the RabbitMQ management server. Default: verify_peer
LDAP configuration
RABBITMQ_ENABLE_LDAP: Enable the LDAP configuration. Defaults: no
RABBITMQ_LDAP_TLS: Enable secure LDAP configuration. Defaults: no
RABBITMQ_LDAP_SERVERS: Comma, semi-colon or space separated list of LDAP server hostnames. No defaults.
RABBITMQ_LDAP_SERVERS_PORT: LDAP servers port. Defaults: 389
RABBITMQ_LDAP_USER_DN_PATTERN: DN used to bind to LDAP in the form cn=$${username},dc=example,dc=org. No defaults.
Memory and disk configuration
RABBITMQ_VM_MEMORY_HIGH_WATERMARK: High memory watermark for RabbitMQ to block publishers and prevent new messages from being enqueued. Can be specified as an absolute or relative value (as percentage or value between 0 and 1). No defaults.
RABBITMQ_DISK_FREE_RELATIVE_LIMIT: Disk relative free space limit of the partition on which RabbitMQ is storing data. Default: 1.0
RABBITMQ_DISK_FREE_ABSOLUTE_LIMIT: Disk absolute free space limit of the partition on which RabbitMQ is storing data (takes precedence over the relative limit). No defaults.
RABBITMQ_ULIMIT_NOFILES: Resources limits: maximum number of open file descriptors. Default: 65536

相关文章:

【RabbitMQ实战】06 RabbitMQ配置

一、概述 一般情况下&#xff0c;可以使用默认的内建配置来有效地运行RabbitMQ&#xff0c;并且大多数情况下也并不需要修改任何 RabbitMQ的配置。当然&#xff0c;为了更加有效地操控 RabbitMQ&#xff0c;也可以利用调节系统范围内的参数来达到定制化的需求。 RabbitMQ提供…...

CTF 全讲解:[SWPUCTF 2021 新生赛]jicao

文章目录 参考环境题目index.phphighlight_file()include()多次调用&#xff0c;多次执行单次调用&#xff0c;单次执行 $_POST超全局变量HackBarHackBar 插件的获取 $_POST打开 HackBar 插件通过 HackBar 插件发起 POST 请求 GET 请求查询字符串超全局变量 $_GET JSONJSON 数据…...

FL Studio21.1电脑试用体验版音乐制作软件

我一直以来对音乐艺术都很感兴趣。最近我接触到了一款名为 FL Studio 的电脑版音乐制作软件&#xff0c;深感其强大功能和广泛适用性。通过使用这款软件&#xff0c;我不仅深入了解了音乐制作的过程与技巧&#xff0c;也加深了对音乐创作的理解。 FL Studio 最初是一款针对 MI…...

【数据结构】单链表的基本操作(节点建立、插入删除)

1. 单链表的基本操作 1.1. 链表的定义1.2. 链表的创建&#xff08;初始化&#xff09; 1.2.1. 不带头结点的链表1.2.2. 带头结点的链表 1.3. 链表的插入和删除 1.3.1. 按位序插入 1.3.1.1. 带头结点1.3.1.2. 不带头结点 1.3.2. 指定节点的后插操作1.3.3. 指定元素的前插操作1.3…...

DEM格式转换:转换NSDTF-DEM国标数据格式为通用格式,使用ArcGIS工具转换NSDTF-DEM国标.dem文件为通用.tif格式。

DEM格式转换&#xff1a;转换NSDTF-DEM国标数据格式为通用格式&#xff0c;使用ArcGIS工具转换NSDTF-DEM国标.dem文件为通用.tif格式。 *.dem是一种比较常见的DEM数据格式&#xff0c;其有两种文件组织方式&#xff0c;即NSDTF-DEM和USGS-DEM。 &#xff08;1&#xff09;NSDT…...

施耐德电气:勾勒未来工业愿景,赋能中国市场

9月19日&#xff0c;第23届中国国际工业博览会&#xff08;简称“工博会”&#xff09;在上海隆重召开。作为全球能源管理和自动化领域的数字化转型专家&#xff0c;施耐德电气在工博会现场全方位展现了自身对未来工业的全新视野与深刻见解&#xff0c;不仅展示了其贯通企业设计…...

安防监控产品经营商城小程序的作用是什么

安防监控产品覆盖面较大&#xff0c;监控器、门禁、对讲机、烟感等都有很高用途&#xff0c;家庭、办公单位各场景往往用量不少&#xff0c;对商家来说&#xff0c;市场高需求背景下也带来了众多生意&#xff0c;但线下门店的局限性&#xff0c;导致商家想要进一步增长不容易。…...

php中判断指定字符串是否包含指定字符的封装函数

在 PHP 中&#xff0c;你可以使用内置的字符串函数 strpos() 来判断一个字符串是否包含指定的字符或子字符串。以下是一个简单的封装函数&#xff0c;它使用 strpos() 来判断指定字符串是否包含指定字符&#xff0c;并返回一个布尔值。 function stringContains($string, $cha…...

GICI-LIB源码阅读(三)因子图优化模型

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 三、因子图优化&#xff08;FGO&#xff09;1、因子图模型2、因子图优化状态估计模型3、因子图优化求解4、Ceres 非线性最小二乘库5、GICI-LIB 中…...

5、Docker安装mysql主从复制与redis集群

安装mysql主从复制 主从搭建步骤 1.1 新建主服务器容器实例3307 docker run -p 3307:3306 --name mysql-master #3307映射到3306&#xff0c;容器名为mysql-master -v /app/mysql/mydata/mysql-master/log:/var/log/mysql #容器数据卷 -v /app/mysql/mydata/mysql-master/dat…...

【AI视野·今日NLP 自然语言处理论文速览 第四十三期】Thu, 28 Sep 2023

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 28 Sep 2023 Totally 38 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Cross-Modal Multi-Tasking for Speech-to-Text Translation via Hard Parameter Sharing Authors Brian Yan,…...

Unity 制作登录功能01-创建登录的UI并获取输入内容

1.创建UI面板 导入插件TextMesh Pro 2.编写脚本获取用户输入 这里用的是输入框侦听函数&#xff0c;所有UI都可以使用侦听函数 &#xff0c;需要注意TMP_InputField 这个类是UI中导入的一个插件TextMesh Pro&#xff01;在代码中需要引用using TMPro; 命名空间&#xff01; …...

什么是用户画像?

(1&#xff09;首先用户画像是个动词逻辑&#xff0c;不是名词&#xff0c;就是给用户绘制肖像。 (2&#xff09;在互联网这个平台上&#xff0c;绘制肖像就相当千给用户打标签 (3&#xff09;标签通常是人为规定的高度精炼的特征标识&#xff0c;如年龄、性别、地域、兴趣等…...

DevExpress WinForms图表组件 - 直观的数据信息呈现方式!(二)

在上文中&#xff08;点击这里回顾>>&#xff09;&#xff0c;我们为大家介绍了DevExpress WinForms图表控件的互动图表、图标设计器及可定制功能等&#xff0c;本文将继续介绍DevExpress WinForms图表控件的数据分析、大数据功能等&#xff0c;欢迎持续关注我们哦~ Dev…...

基于AIOps实现智慧园区极简IT运维

随着物联网、云平台、大数据、人工智能等技术的发展&#xff0c;并逐步投入到智慧园区的建设&#xff0c;传统园区数字化转型加快。园区的形式包括产业园区、教育园区、制造业园区、科研园区、社区等等&#xff0c;园区形态不断演进和发展&#xff0c;园区网承载的对象和业务也…...

chatgpt 只会死记硬背吗

本周写两篇关于 chatgpt 的随感&#xff0c;我不善于写文档&#xff0c;所以我的文字多是输出直感和观点&#xff0c;而不是知识&#xff0c;没有关于 chatgpt 的原理和应用&#xff0c;甚至术语也不匹配&#xff0c;反正就是想到哪算哪吧。 都说 chatgpt 没有内在逻辑&#xf…...

03-Zookeeper客户端使用

上一篇&#xff1a;02-Zookeeper实战 1. 项目构建 zookeeper 官方的客户端没有和服务端代码分离&#xff0c;他们为同一个jar 文件&#xff0c;所以我们直接引入zookeeper的maven即可&#xff0c; 这里版本请保持与服务端版本一致&#xff0c;不然会有很多兼容性的问题 <…...

自然语言处理(NLP)学习之与HanLP的初相识

目录 前言 一、自然语言处理基本知识 1、NLP类别 2、核心任务 二、Hanlp简要介绍 三、Hanlp云服务能力 1、全新云原生2.x 2、Python api调用 3、Go api调用 4、Java api调用 四、Hanlp native服务 1、本地开发 总结 前言 在ChatGPT的滚滚浪潮下&#xff0c;也伴随着人工智…...

JDBC【DBUtils】

一、 DBUtils工具类&#x1f353; (一)、DBUtils简介&#x1f95d; 使用JDBC我们发现冗余的代码太多了,为了简化开发 我们选择使用 DbUtils Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库&#xff0c;使用它能够简化JDBC应用程序的开发&#xff0c…...

大数据Doris(一):Doris概述篇

文章目录 Doris概述篇 一、前言 二、Doris简介...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...