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

RabbitMQ快速入门

目录

MQ简介

1、同步通信

图片

2、异步通信

图片

RabbitMQ快速上手

基本介绍:

Producer和Consumer

Connection和Channel

Virtual host

Queue

Exchange

工作流程

 AMQP

Java编写RabbitMQ生产者消费者

生产者

1.建立连接

 2.开启信道

3.声明交换机

4.声明队列

5.发送消息

6.资源释放

生产者全部代码:

消费者

执行结果


MQ简介

MQ(Message Queue)消息队列,本质上是队列,满足队列FIFO(先入先出)的性质,队列中存放的内容是消息,消息可以是只包含文本字符串,JSON,也可以是对象等。

MQ经常用于分布式系统之间的通信,系统之间的通信通常有两种方式:

1、同步通信

直接调用对方的服务,数据从一端出发到达另一端。

图片

2、异步通信

数据从⼀端发出后,先进⼊⼀个容器进⾏临时存储,当达到某种条件后,再由这个容器发送给另⼀端,这个容器通常就是MQ(message queue)。

图片

RabbitMQ快速上手

基本介绍:

RabbitMQ是MQ的一种实现,工作流程如下:

 RabbitMQ是一个消息中间件,也是一个生产者消费者模型,负责接收,存储并转发消息,消息传递的过程类似于发快递,你把快递放到驿站,快递小哥帮你把快递送到接收人的手上。这个过程中,你就相当于Producer,接收人相当于Consumer,快递站就是RabbitMQ。

Producer和Consumer

Producer(生产者),是RabbitMQ的客户端,用于发送消息到RabbitMQ。

Consumer(消费者),也是RabbitMQ的客户端,用于向RabbitMQ接收消息。

Broker(代理),RabbitMQ服务器节点,用于接收和发送消息。

生产者发送消息到RabbitMQ服务器,让RabbitMQ进行路由转发到对应的消费者。

生产者发送的消息带有标签,代理(RabbitMQ服务器)会根据标签路由,找到需要的消费者,进行消息转发。消费者接收消息进行消费过程中标签就会被丢掉,也就是说消费者并不会知道消息的发送者是谁。

Connection和Channel

 Connection(连接):客户端和RabbitMQ服务器之间的⼀个TCP连接,建立连接后才可以进行消息的发送和接收。

Channel(信道):类似于发送消息的一个通道,每个TCP连接可以有多个信道,每个信道都是独立的虚拟连接,消息的发送和接收都是基于Channel(信道)的。

Virtual host

Virtual host:虚拟主机,给消息队列提供逻辑上的隔离,一个BrokerServer可以有多个虚拟主机,当不同用户使用RabbitMQ Server提供的服务时,可以使用划分多个虚拟主机的方式将一系列业务隔离开来,类似于MySQL中不同的数据库。

Queue

Queue:队列,用于存放消息,一个队列可以被多个消费者订阅。

Exchange

Exchenge:交换机,交换机负责接收生产者发送的消息,并按照规则将消息路由到队列上。类似于快递小哥将快递送给

工作流程

Proucer生产消息 -> Producer连接到RabbitMQBroker,建立连接(Connection),开启信道(Channel) -> Producer声明交换机(Exchange),路由消息 ->Producer声明队列(Queue) -> Produce发送消息到RabbitMQBroker-> RabbitMQBroker接收消息,并放入相应的队列(Queue)中,未找到相应队列根据生产者的配置,选择丢弃或者退回给生产者。

 AMQP

AMQP是一种高级消息队列协议,定义了一套确定的消息交换功能,包括交换机,队列等,这些组件共同工作,使生产者能够将消息发送到交换机,由队列接收并等待消费者接收。AMQP还定义了一个网络协议,允许客户端应用通过这个协议与消息代理和AMQP模型进行交互通信。RabbitMQ使AMQP协议的Erlang实现。

Java编写RabbitMQ生产者消费者

打开管理页面,添加用户:

这里添加的测试用户名称为:test   密码 123456。 

创建虚拟机:

这里添加的虚拟机名称为:test

返回admin页面,点击刚刚创建的test用户,添加虚拟机操作权限。

进入IDEA创建一个Maven项目,导入依赖:

<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>5.20.0</version>
</dependency>

生产者

1.建立连接

使用依赖中的ConnectionFactory类创建连接,设置关键信息:

ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setHost("139.9.116.124");
connectionFactory.setPort(5672);
connectionFactory.setUsername("fwx");
connectionFactory.setPassword("123456");
connectionFactory.setVirtualHost("测试");
Connection connection = connectionFactory.newConnection();
 2.开启信道
Channel channel = connection.createChannel();
3.声明交换机

这里使用的是RabbitMQ默认提供的交换机,不需要代码进行声明

4.声明队列

使用channel的queueDeclare方法,依此填入相关参数:

channel.queueDeclare("hello",true,false,false,null);

 打开源码,查看参数的含义:

 第一个参数queue代表队列的名称,第二个参数durable代表是否持久化(true-设置队列为持久化, 待久化的队列会存盘,服务器重启之后, 消息不丢失),第三个参数exclusive代表是否独占(是否独占, 只能有⼀个消费者监听队列),第四个参数autoDelete代表是否自动删除(没有消费者自动删除队列),第五个参数arguments代表一些配置的参数。

5.发送消息

使用Channel的basicPublish()方法进行消息的发送,这里发送的消息为"hello RabbitMQ~",消息发送10次:

for (int i = 0; i < 10; i++) {String msg = "hello RabbitMQ~";channel.basicPublish("","test1",null,msg.getBytes());
}

打开方法,分析方法参数:

  第一个参数exchange代表交换机的名称(这里使用默认交换机""),第二个参数routingKey代表路由的名称(使用默认交换机,路由名称要和队列名称相同才可以找到对应队列),第三个参数body代表发送的消息体(将String类型转换为字节数组)。

6.资源释放
channel.close();
connection.close();

最后将资源关闭即可。

生产者全部代码:
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class Producer {public static void main(String[] args) throws IOException, TimeoutException {//1.建立链接ConnectionFactory connectionFactory = new ConnectionFactory();//主机地址connectionFactory.setHost("139.9.116.124");//端口号connectionFactory.setPort(5672);//用户名connectionFactory.setUsername("test");//密码connectionFactory.setPassword("123456");//虚拟机connectionFactory.setVirtualHost("test");//连接建立Connection connection = connectionFactory.newConnection();//2.开启信道Channel channel = connection.createChannel();//3.声明交换机,使用内置交换机//4.声明队列channel.queueDeclare("test1",true,false,false,null);//5.发送消息for (int i = 0; i < 10; i++) {String msg = "hello RabbitMQ~";channel.basicPublish("","test1",null,msg.getBytes());}//6.资源释放channel.close();connection.close();}
}

消费者

消费者与生产者逻辑相似,这里不再讲解,全部代码:

import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class Consumer {public static void main(String[] args) throws IOException, TimeoutException, InterruptedException {//1.建立链接ConnectionFactory connectionFactory = new ConnectionFactory();//主机地址connectionFactory.setHost("139.9.116.124");//端口号connectionFactory.setPort(5672);//用户名connectionFactory.setUsername("test");//密码connectionFactory.setPassword("123456");//虚拟机connectionFactory.setVirtualHost("test");//连接建立Connection connection = connectionFactory.newConnection();//2.开启信道Channel channel = connection.createChannel();//3.声明队列(生产者已经声明)//4.消费消息/**参数声明* basicConsume(String queue, boolean autoAck, Consumer callback)* queue:队列名* autoAck:自动确认* callback:接收到消息执行逻辑*/DefaultConsumer consumer = new DefaultConsumer(channel){//从队列中收到消息,就会执行的方法@Overridepublic void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {//TODOSystem.out.println("接收的消息:"+new String(body));}};channel.basicConsume("test1",true,consumer);//等待程序执行完成Thread.sleep(2000);//5.释放资源channel.close();connection.close();}
}

生产者已经声明过队列,消费者无需声明,消费者通过重写handleDelivery()方法(这个方法在接收消息时自动执行)去消费消息。

执行结果

执行生产者代码,打开RabbitMQ管理页面,看到队列test1产生了10条消息等待消费:

执行消费者,此时控制台打印了接收的消息:

再查看管理页面,消息已经全部消费:

 到此结束,感谢观看!

相关文章:

RabbitMQ快速入门

目录 MQ简介 1、同步通信 图片 2、异步通信 图片 RabbitMQ快速上手 基本介绍&#xff1a; Producer和Consumer Connection和Channel Virtual host Queue Exchange 工作流程 AMQP Java编写RabbitMQ生产者消费者 生产者 1.建立连接 2.开启信道 3.声明交换机 4.声…...

内存中的缓存区

在 Java 的 I/O 流设计中&#xff0c;BufferedInputStream 和 BufferedOutputStream 的“缓冲区”是 内存中的缓存区&#xff08;具体是 JVM 堆内存的一部分&#xff09;&#xff0c;但它们的作用是优化数据的传输效率&#xff0c;并不是直接操作硬盘和内存之间的缓存。以下是详…...

快速列出MS Word中所有可用字体

Word中有很多字体&#xff0c;虽然在字体下拉列表中提供了字体的样例&#xff0c;但是并不全面&#xff0c;例如使用Batang字体的话&#xff0c;数字会显示成什么效果&#xff0c;就无法直观的看到。 打开Word应用程序&#xff0c;新建一个空白文档&#xff0c;按AltF11打开VBE…...

《机器学习数学基础》补充资料:矩阵的LU分解

本文是对《机器学习数学基础》第2章2.3.3节矩阵LU分解的拓展。 判断是否可LU分解 并非所有矩阵都可以实现LU分解。 定理1&#xff1a; 若 n n n 阶可逆矩阵 A \pmb{A} A 可以进行LU分解&#xff0c;则 A \pmb{A} A 的 k k k 阶顺序主子阵&#xff08;leading principal s…...

seasms v9 注入漏洞 + order by注入+​information_schema​解决方法

目录 一、当注入时&#xff0c;information_schema被禁用的解决方法 1.通过sys库可以获取到表名和库名 2.通过无列名注入join获取列名 二、seasms v9 注入漏洞 三、order by注入 一、当注入时&#xff0c;information_schema被禁用的解决方法 information_schema数据库是My…...

跨端方案选型:对比Uni-app与Taro在复杂电商项目中的技术选型依据参考

跨端方案选型:对比Uni-app与Taro在复杂电商项目中的技术选型依据参考 请赏析: Uni-app与Taro复杂电商项目选型对比指南 一、核心选型维度速记 技术栈匹配 → 跨端能力 → 性能优化 → 开发效率 → 生态支持 → 长期维护二、关键维度对比分析 1. 技术栈匹配性 框架技术栈适…...

C语言32个关键字

32个关键字 1.基本数据类型 signed unsigned char int float double short long void 2.构造数据类型 struct union enum 3.数据存储类别 auto static extern register 4.数据优化 const volatile 5. 9条基本语句 if else switch case break default while do for…...

音乐游戏Drummania(GITADORA)模拟器

文章目录 &#xff08;一&#xff09;Drummania和GITADORA&#xff08;1.1&#xff09;基本情况&#xff08;1.2&#xff09;机体 &#xff08;二&#xff09;模拟器&#xff08;2.1&#xff09;主程序&#xff08;2.2&#xff09;模拟器主题 &#xff08;三&#xff09;曲谱文…...

WPF中对滚动条进行平滑滚动

有时候我们在动态添加内容时&#xff0c;需要将滚动条滚动到指定内容处。 一般我们会调用ScrollViewer的ScrollToVerticalOffset&#xff08;垂直方向&#xff09;函数和ScrollToHorizontalOffset&#xff08;水平方向&#xff09;函数来控制滚动条滚动到指定位置。 正常滚动效…...

【通俗讲解电子电路】——从零开始理解生活中的电路(一)

导言&#xff1a;电子电路为什么重要&#xff1f; ——看不见的“魔法”&#xff0c;如何驱动你的生活&#xff1f; 清晨&#xff0c;当你的手机闹钟响起时&#xff0c;你可能不会想到&#xff0c;是电子电路在精准控制着时间的跳动&#xff1b;当你用微波炉加热早餐时&#…...

达梦:内存相关参数

目录 28个相关参数1. 内存池相关MEMORY_POOLMEMORY_N_POOLSMEMORY_BAK_POOL 2. 大缓冲区相关HUGE_BUFFERHUGE_BUFFER_POOLS 3. 共享缓冲区相关BUFFERBUFFER_POOLSBUFFER_MODEMAX_BUFFER 4. 快速池相关FAST_POOL_PAGES 5. 回收池相关RECYCLE_POOLS 6. 回滚段池相关ROLLSEG_POOLS…...

MySql面试总结(一)

mysql中排序是怎么实现的? MySQL 中的排序主要通过ORDER BY子句来实现,其底层实现方式有文件排序和索引排序两种,以下是具体介绍: 通过ORDER BY子句实现排序 这是 MySQL 中进行排序的基本方式,语法为SELECT column1, column2,... FROM table_name ORDER BY column_name…...

YOLOv5 + SE注意力机制:提升目标检测性能的实践

一、引言 目标检测是计算机视觉领域的一个重要任务&#xff0c;广泛应用于自动驾驶、安防监控、工业检测等领域。YOLOv5作为YOLO系列的最新版本&#xff0c;以其高效性和准确性在实际应用中表现出色。然而&#xff0c;随着应用场景的复杂化&#xff0c;传统的卷积神经网络在处…...

第十四届蓝桥杯大赛软件赛国赛C/C++大学C组

A 【跑步计划——日期问题】-CSDN博客 B 【残缺的数字】-CSDN博客 C 题目 代码 #include <bits/stdc.h> using namespace std;void change(int &x) {int sum 0, t x;while(t){sum t % 10;t / 10;}x - sum; } int main() {int n;cin >> n;int ans 0;…...

【备份】php项目处理跨域请求踩坑

这都是老生常谈的东西了。我还在踩坑&#xff0c;记录一下。 我在项目入口明明写了如下代码&#xff1a; // 处理预检请求 (OPTIONS) if ($_SERVER[REQUEST_METHOD] OPTIONS) {header("Access-Control-Allow-Origin: https://xxx.vip");header("Access-Cont…...

编程题 - 汽水瓶【JavaScript/Node.js解法】

‌“学如逆水行舟&#xff0c;不进则退。”‌ ——《增广贤文》 目录 汽水瓶 题目&#xff1a;解答分析&#xff1a;js代码解答 -ACM模式&#xff1a;代码通过&#xff1a;题解分析&#xff1a;简洁思路代码&#xff1a; 汽水瓶 题目&#xff1a; 某商店规定&#xff1a;三个空…...

【考研】复试相关上机题目

文章目录 22机试回忆版1、判断燃气费描述输入格式输出格式输入样例输出样例 C o d e Code Code 2、统计闰年数量描述输入格式输出格式输入样例输出样例 C o d e Code Code 3、打印图形描述输入格式输出格式 C o d e Code Code 4、密文数据描述输入格式输出格式输入样例输出样例…...

HONOR荣耀MagicBook 15 2021款 独显(BOD-WXX9,BDR-WFH9HN)原厂Win10系统

适用型号&#xff1a;【BOD-WXX9】 MagicBook 15 2021款 i7 独显 MX450 16GB512GB (BDR-WFE9HN) MagicBook 15 2021款 i5 独显 MX450 16GB512GB (BDR-WFH9HN) MagicBook 15 2021款 i5 集显 16GB512GB (BDR-WFH9HN) 链接&#xff1a;https://pan.baidu.com/s/1S6L57ADS18fnJZ1…...

微信小程序:完善购物车功能,购物车主页面展示,详细页面展示效果

一、效果图 1、主页面 根据物品信息进行菜单分类&#xff0c;点击单项购物车图标添加至购物车&#xff0c;记录总购物车数量 2、购物车详情页 根据主页面选择的项&#xff0c;根据后台查询展示到页面&#xff0c;可进行多选&#xff0c;数量加减等 二、代码 1、主页面 页…...

Spring Boot集成MyBatis访问MySQL:从项目搭建到基础数据库查询(基础入门)

Spring Boot集成MyBatis访问MySQL 一、引言 在当今企业级应用开发中&#xff0c;Spring Boot、MyBatis与MySQL的组合凭借其高效性和灵活性&#xff0c;成为构建数据驱动型应用的首选方案。本文将带你从零开始搭建项目&#xff0c;掌握Spring Boot集成MyBatis的基础入门内容。…...

基于STM32的智能家居能源管理系统

1. 引言 传统家庭能源管理存在能耗监控粗放、设备联动不足等问题&#xff0c;难以适应绿色低碳发展需求。本文设计了一款基于STM32的智能家居能源管理系统&#xff0c;通过多源能耗监测、负荷预测与优化调度技术&#xff0c;实现家庭能源的精细化管理与智能优化&#xff0c;提…...

OpenAI发布GPT-4.5:功能非常特殊,推理很贵

今天凌晨4点&#xff0c;OpenAI进行了在线技术直播&#xff0c;发布了最新模型GPT-4.5。 GPT-4.5与之前的模型相比&#xff0c;本次最大的亮点是加上了“情商”&#xff0c;这也是目前所有大模型最缺、最难的功能。 此外&#xff0c;GPT-4.5 在SimpleQA上的测试数据显示&…...

DeepSeek开源周 Day04:从DualPipe聊聊大模型分布式训练的并行策略

DualPipe简介 今天是DeepSeek开源周的第四天&#xff0c;官方开源了一种新型并行计算优化策略——DualPipe。 其实大家阅读过Deepseek-V3技术报告的同学&#xff0c;对这个技术并不陌生。 开源地址&#xff1a;https://github.com/deepseek-ai/DualPipe 核心亮点 DualPipe&…...

RabbitMQ系列(七)基本概念之Channel

RabbitMQ 中的 Channel&#xff08;信道&#xff09; 是客户端与 RabbitMQ 服务器通信的虚拟会话通道&#xff0c;其核心作用在于优化资源利用并提升消息处理效率。以下是其核心机制与功能的详细解析&#xff1a; 一、Channel 的核心定义 虚拟通信链路 Channel 是建立在 TCP 连…...

LeetCode 热题 100_有效的括号(69_20_简单_C++)(栈;栈+哈希表(建立左右括号的对应关系))

LeetCode 热题 100_有效的括号&#xff08;69_20&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;栈&#xff09;&#xff1a;思路二&#xff08;栈哈希表&#xff08;建立左右括号的对应关系&#xff09;&a…...

c#-LINQ与lambda表达式学习笔记

https://blog.csdn.net/m0_56259289/article/details/144134122 static void Main(string[] args) //程序入口{int[] arr1 new int[] { 1, 2, 3, 4, 5, 6, 7 };int[] arr2 new int[] { 1, 2, 3, 4, 5, 6, 7 };var query1 from n in arr1 select n;var query2 from a in arr…...

数据库基础二(数据库安装配置)

打开MySQL官网进行安装包的下载 https://www.mysql.com/ 接着找到适用于windows的版本 下载版本 直接点击下载即可 接下来对应的内容分别是&#xff1a; 1&#xff1a;安装所有 MySQL 数据库需要的产品&#xff1b; 2&#xff1a;仅使用 MySQL 数据库的服务器&#xff1b; 3&a…...

Word 插入图片会到文字底下解决方案

一、现象描述 正常情况下&#xff0c;我们插入图片都是这样的。 但有时突然会这样&#xff0c;插入的图片陷于文字底部。 二、网上解决方案 网上有教程说&#xff0c;修改图片布局选项&#xff0c;从嵌入型改成上下型环绕。改完之后确实有用&#xff0c;但是需要手动拖动图片…...

有没有什么免费的AI工具可以帮忙做简单的ppt?

互联网各领域资料分享专区(不定期更新): Sheet 正文 1. 博思AIPPT 特点:专为中文用户设计,支持文本/文件导入生成PPT,内置海量模板和智能排版功能,涵盖商务、教育等多种场景。可一键优化布局、配色,并集成AI绘图功能(文生图/图生图)。适用场景:职场汇报、教育培训、商…...

实战-使用 Playbook 批量部署多台 LAMP 环境

实战-使用 Playbook 批量部署多台 LAMP 环境 playbooks 使用步骤 playbook 是一个不同于使用 ansible 命令行执行方式的模式&#xff0c;功能更强大更灵活。 1、在 playbooks 中定义任务&#xff1a; - name&#xff1a; task description #任务描述信息 module_name: modul…...

CSS—引入方式、选择器、复合选择器、文字控制属性、CSS特性

目录 CSS 1.引入方式 2.选择器 3.复合选择器 4.文字控制属性 5.CSS特性 CSS 层叠样式表&#xff0c;是一种样式表语言&#xff0c;用来描述HTML文档的呈现 书写时一般按照顺序&#xff1a;盒子模型属性—>文字样式—>圆角、阴影等修饰属性 1.引入方式 引入方式方…...

Spring 源码硬核解析系列专题(十):Spring Data JPA 的 ORM 源码解析

在前几期中,我们从 Spring 核心到 Spring Boot、Spring Cloud、Spring Security 和 Spring Batch,逐步揭示了 Spring 生态的多样性。在企业级开发中,数据访问是不可或缺的部分,而 Spring Data JPA 通过简化 JPA(Java Persistence API)操作,成为主流的 ORM 框架。本篇将深…...

爬虫和逆向教程-专栏介绍和目录

文章目录 一、爬虫基础和进阶二、App数据采集三、爬虫项目四、爬虫面试 本专栏为爬虫初学者和进阶开发者量身定制的爬虫和逆向学习园地。为你提供全面而深入的爬虫和逆向技术指导&#xff0c;从入门到精通&#xff0c;从基础理论到高级实战&#xff0c;助你在数据的海洋中畅游&…...

Lua | 每日一练 (4)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Lua | 每日一练 (4)题目参考答案线程和协程调度方式上…...

【折线图 Line】——1

🌟 解锁数据可视化的魔法钥匙 —— pyecharts实战指南 🌟 在这个数据为王的时代,每一次点击、每一次交易、每一份报告背后都隐藏着无尽的故事与洞察。但你是否曾苦恼于如何将这些冰冷的数据转化为直观、吸引人的视觉盛宴? 🔥 欢迎来到《pyecharts图形绘制大师班》 �…...

大白话前端性能优化,常见方法有哪些?

大白话前端性能优化&#xff0c;常见方法有哪些&#xff1f; 咱来唠唠前端性能优化&#xff0c;其实就是想办法让网页打开得更快、用起来更流畅&#xff0c;就跟给汽车做保养让它跑得更顺溜一样。下面详细说说常见的优化方法&#xff1a; 压缩代码 CSS 压缩&#xff1a;CSS …...

IP属地是通过卫星定位的吗?如何保护用户隐私

在数字时代&#xff0c;网络空间成为了人们日常生活不可或缺的一部分。随着社交媒体、在线服务等平台的兴起&#xff0c;用户IP属地信息的重要性日益凸显。然而&#xff0c;关于IP属地是如何确定的&#xff0c;尤其是是否通过卫星定位这一问题&#xff0c;却常常引发公众的疑问…...

Vue3+Node/Express支付宝沙箱支付与确认支付

Vue3Node/Express支付宝沙箱支付与确认支付 支付宝沙箱配置进入沙箱选择自定义密钥 密钥工具下载生成密钥格式转换 自定义密钥设置Express安装依赖项目目录创建alipay.js请求&#xff08;打开支付&#xff09;代码router/pay.jsapp.js 前端代码前端封装接口前端调用 实现支付查…...

什么是大语言模型

大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;是一种基于深度学习技术的人工智能模型&#xff0c;旨在理解和生成人类语言。以下是大语言模型的详细介绍&#xff1a; 一、基本概念 大语言模型通常包含数百亿甚至数千亿个参数&#xff0c;通过在海量…...

本地部署Embedding模型API服务的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...

postgresql postgis扩展相关

项目 下载地址 http://rpmfind.net/linux/rpm2html/search.php?queryprotobuf(x86-64) Postgis Index of /postgis/source/ proj4 Index of /proj/ geos Index of /geos/ libxml2 ftp://xmlsoft.org/libxml2/ Index of /sources Json-c Releases json-c/json-c G…...

FFmpeg-chapter3-读取视频流(原理篇)

ffmpeg网站&#xff1a;About FFmpeg 1 库介绍 &#xff08;1&#xff09;libavutil是一个包含简化编程函数的库&#xff0c;包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等等。 &#xff08;2&#xff09;libavcodec是一个包含音频/视频编解码器的解码器和编…...

入门基础项目(SpringBoot+Vue)

文章目录 1. css布局相关2. JS3. Vue 脚手架搭建4. ElementUI4.1 引入ElementUI4.2 首页4.2.1 整体框架4.2.2 Aside-logo4.2.3 Aside-菜单4.2.4 Header-左侧4.2.5 Header-右侧4.2.6 iconfont 自定义图标4.2.7 完整代码 4.3 封装前后端交互工具 axios4.3.1 安装 axios4.3.2 /src…...

C#调用CANoeCLRAdapter.dll文章(二)

一、引言 在上一篇指南中&#xff0c;我们介绍了如何通过C#调用CANoeCLRAdapter.dll实现基础功能&#xff0c;包括COM接口操作、DLL导入和PANL面板集成。本文将进一步探讨高级功能开发&#xff0c;涵盖事件驱动编程、CAPL脚本双向通信以及异步任务处理&#xff0c;帮助开发者构…...

ai大模型自动化测试-TensorFlow Testing 测试模型实例

AI大模型自动化测试是确保模型质量、可靠性和性能的关键环节,以下将从测试流程、测试内容、测试工具及测试挑战与应对几个方面进行详细介绍: 测试流程 测试计划制定 确定测试目标:明确要测试的AI大模型的具体功能、性能、安全性等方面的目标,例如评估模型在特定任务上的准…...

QT——c++界面编程库

非界面编程 QT编译的时候&#xff0c;依赖于 .pro 配置文件&#xff1a; SOURCES: 所有需要参与编译的 .cpp 源文件 HEADERS:所有需要参与编译的.h 头文件 QT&#xff1a;所有需要参与编译的 QT函数库 .pro文件一旦修改&#xff0c;注意需要键盘按 ctrls 才能加载最新的配置文…...

postman--接口测试工具安装和使用教程

postman–接口测试工具 postman是一款支持http协议的接口调试与测试工具&#xff0c;其主要特点就是功能强大&#xff0c;使用简单且易用性好 。 无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;postman都是我们的首选工具之一 。 下面先通过一张…...

如何用python画一棵分形树

这个代码会生成一个彩色的分形树图案&#xff0c;可以通过调整draw_tree函数中的参数来改变树的形状和大小 import turtle import random# 递归函数绘制分形树 def draw_tree(branch_len, t):if branch_len > 5:t.color(random.choice(colors))t.pensize(branch_len / 10)t…...

【leetcode】二分查找专题

文章目录 1.二分查找1.题目2.解题思路3. 解题代码 2.在排序数组中查找元素的第一个和最后一个位置1.题目2.算法原理3. 代码 3.x的平方根1.题目2.代码 4.搜索插入位置1.题目2.解题思路3.解题代码 5.山脉数组的索引1.题目2.解题思路3. 代码 6.寻找峰值1.题目2.解题思路3.代码 7. …...

深度学习笔记17-马铃薯病害识别(VGG-16复现)

目录 一、 前期准备 1. 设置GPU 2. 导入数据 二、手动搭建VGG-16模型 1. 搭建模型 三、 训练模型 1. 编写训练函数 3. 编写测试函数 4. 正式训练 四、 结果可视化 1. Loss与Accuracy图 2. 指定图片进行预测 3. 模型评估 前言 &#x1f368; 本文为&#x1f517;365天深度学习训…...