# RocketMQ 实战:模拟电商网站场景综合案例(二)

RocketMQ 实战:模拟电商网站场景综合案例(二)

===========================================================

一、SpringBoot 整合 Dubbo :dubbo 概述

1、dubbo 概述

Dubbo :是阿里巴巴公司开源的一款高性能、轻量级的 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

2、下载 SpringBoot 集成 Dubbo 的依赖包:dubbo-spring-boot-starter

https://github.com/alibaba/dubbo-spring-boot-starter

rocketmq-spring-rocketmq-spring-all-2.0.3.zip

3、将 dubbo-spring-boot-starter 安装到本地仓库。


mvn install -Dmaven.skip.test=true 

4、Dubbo 使用流程图

在这里插入图片描述


二、SpringBoot 整合 Dubbo :zookeeper 集群搭建

1、zookeeper 集群搭建:准备工作

1.1 安装 JDK

sudo apt install jdk-8
1.2 将 Zookeeper 上传到服务器上 /usr/local/zookeeper/
# 建议下载 zookeeper-3.5 以上完全版本/usr/local/zookeeper/zookeeper-3.4.6.tar.gz /usr/local/zookeeper/apache-zookeeper-3.5.6-bin.tar.gz
1.3 解压 Zookeeper,并创建 data 目录,将 conf 下的 zoo_sample.cfg 文件改名为 zoo.cfg

# 切换目录:
cd /usr/local/zookeeper/# 解压:
sudo tar -zvxf zookeeper-3.4.6.tar.gz# 创建 data 目录:
mkdir ./zookeeper-3.4.6/data/# 将 conf 下的 zoo_sample.cfg 文件改名为 zoo.cfg
mv ./zookeeper-3.4.6/conf/zoo_sample.cfg ./zookeeper-3.4.6/conf/zoo.cfg 
1.4 建立 /usr/local/zookeeper-cluster 文件夹,将解压后的 Zookeeper 复制到三个目录。

# 切换目录:
cd /usr/local/zookeeper/# 创建 zookeeper-cluster 目录:
mkdir /usr/local/zookeeper/zookeeper-cluster/# 将解压后的 Zookeeper 复制到三个目录
cp -rf /usr/local/zookeeper/zookeeper-3.4.6  /usr/local/zookeeper/zookeeper-cluster/zookeeper-1
cp -rf /usr/local/zookeeper/zookeeper-3.4.6  /usr/local/zookeeper/zookeeper-cluster/zookeeper-2
cp -rf /usr/local/zookeeper/zookeeper-3.4.6  /usr/local/zookeeper/zookeeper-cluster/zookeeper-3
1.5 配置一个 zookeeper 的 dataDir ( zoo.cfg ) , clientPort 分别为:2181, 2182, 2183

# 修改  /usr/local/zookeeper/zookeeper-cluster/zookeeper-1/conf/zoo.cfg 
cd /usr/local/zookeeper/zookeeper-cluster/
sudo vim ./zookeeper-1/conf/zoo.cfg clientPort=2181
dataDir=/usr/local/zookeeper/zookeeper-cluster/zookeeper-1/data# 修改  /usr/local/zookeeper/zookeeper-cluster/zookeeper-2/conf/zoo.cfg 
cd /usr/local/zookeeper/zookeeper-cluster/
sudo vim ./zookeeper-2/conf/zoo.cfg clientPort=2182
dataDir=/usr/local/zookeeper/zookeeper-cluster/zookeeper-2/data# 修改  /usr/local/zookeeper/zookeeper-cluster/zookeeper-3/conf/zoo.cfg 
cd /usr/local/zookeeper/zookeeper-cluster/
sudo vim ./zookeeper-3/conf/zoo.cfg clientPort=2183
dataDir=/usr/local/zookeeper/zookeeper-cluster/zookeeper-3/data

2、zookeeper 集群搭建:配置集群

2.1 在每一个 zookeeper 的 data 目录下创建一个 myid 文件,内容分别为 1、2、3。这个文件就是记录每个服务器的 ID。

# 切换目录:
cd /usr/local/zookeeper/zookeeper-cluster/# 创建并编辑 myid 文件:
sudo vim ./zookeeper-1/data/myid 
1# 创建并编辑 myid 文件:
sudo vim ./zookeeper-2/data/myid 
2# 创建并编辑 myid 文件:
sudo vim ./zookeeper-3/data/myid 
3
2.2 在每一个 zookeeper 的 zoo.cfg 配置客户端访问端口(clientPort)和集群服务器 IP 列表。

# 切换目录:
cd /usr/local/zookeeper/zookeeper-cluster/#  编辑 zoo.cfg 文件:
sudo vim ./zookeeper-1/conf/zoo.cfg # 配置样例:server.服务器 ID = 服务器 IP 地址 :服务器之间通信的端口 :服务器之间投票选举的端口
server.1=192.168.25.140:2881:3881
server.2=192.168.25.140:2882:3882
server.3=192.168.25.140:2883:3883# 或者:(填写你自己虚拟机的IP地址)
server.1=172.18.30.110:2881:3881
server.2=172.18.30.110:2882:3882
server.3=172.18.30.110:2883:3883#  编辑 zoo.cfg 文件:
sudo vim ./zookeeper-2/conf/zoo.cfg # 配置样例:server.服务器 ID = 服务器 IP 地址 :服务器之间通信的端口 :服务器之间投票选举的端口
server.1=192.168.25.140:2881:3881
server.2=192.168.25.140:2882:3882
server.3=192.168.25.140:2883:3883# 或者:(填写你自己虚拟机的IP地址)
server.1=172.18.30.110:2881:3881
server.2=172.18.30.110:2882:3882
server.3=172.18.30.110:2883:3883#  编辑 zoo.cfg 文件:
sudo vim ./zookeeper-3/conf/zoo.cfg # 配置样例:server.服务器 ID = 服务器 IP 地址 :服务器之间通信的端口 :服务器之间投票选举的端口
server.1=192.168.25.140:2881:3881
server.2=192.168.25.140:2882:3882
server.3=192.168.25.140:2883:3883# 或者:(填写你自己虚拟机的IP地址)
server.1=172.18.30.110:2881:3881
server.2=172.18.30.110:2882:3882
server.3=172.18.30.110:2883:3883

3、zookeeper 集群搭建:启动集群


# 切换目录:
cd /usr/local/zookeeper/zookeeper-cluster/# 启动 zookeeper 
./zookeeper-1/bin/zkServer.sh start # 启动 zookeeper 
./zookeeper-2/bin/zkServer.sh start # 启动 zookeeper 
./zookeeper-3/bin/zkServer.sh start # 查看 zookeeper 启动状态
./zookeeper-1/bin/zkServer.sh status # 查看 zookeeper 启动状态
./zookeeper-2/bin/zkServer.sh status # 查看 zookeeper 启动状态
./zookeeper-3/bin/zkServer.sh status 

三、SpringBoot 整合 Dubbo :dubbo 服务接口开发

1、打开 idea 创建 springboot-dubbo-interface 项目,并在项目 pom.xml 中添加 依赖。

--> idea --> File --> New --> Project --> Maven Project SDK: ( 1.8(java version "1.8.0_131" ) --> Next --> Groupld : ( djh.it )Artifactld : ( springboot-dubbo-interface )Version : 1.0-SNAPSHOT--> Name: ( springboot-dubbo-interface )Location: ( ...\springboot-dubbo-interface\ )	--> Finish

2、在 springboot-dubbo-interface 项目中,创建 接口类 IUseService.java


/***   springboot-dubbo-interface\src\main\java\djh\it\shop\service\IUseService.java**   2024-6-4 创建 接口类 IUseService.java*/package djh.it.shop.service;public interface IUseService {public String sayHello(String name);
}

3、把 springboot-dubbo-interface 项目 install 安装一下,让它生成 引用 .jar 包。


右键 springboot-dubbo-interface 项目 ---》Run Maven ---》clean Install 
---》target 目录会生成 springboot-dubbo-interface-1.0-SNAPSHOT.jar或者:
idea 右边 Maven ---》springboot-dubbo-interface 项目 ---》lifecycle ---》install 
---》target 目录会生成 springboot-dubbo-interface-1.0-SNAPSHOT.jar

4、打开 idea 创建 springboot-dubbo-provider 项目,并在项目 pom.xml 中添加 接口工程 依赖。

--> idea --> File --> New --> Project --> Maven Project SDK: ( 1.8(java version "1.8.0_131" ) --> Next --> Groupld : ( djh.it )Artifactld : ( springboot-dubbo-provider )Version : 1.0-SNAPSHOT--> Name: ( springboot-dubbo-provider )Location: ( ...\springboot-dubbo-provider\ )	--> Finish

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>djh.it</groupId><artifactId>springboot-dubbo-provider</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>djh.it</groupId><artifactId>springboot-dubbo-interface</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
<!-- D:\Java\java-test\idea\springboot-dubbo-provider\pom.xml -->

5、打开 idea 创建 springboot-dubbo-consumer 项目,并在项目 pom.xml 中添加 接口工程 依赖。

--> idea --> File --> New --> Project --> Maven Project SDK: ( 1.8(java version "1.8.0_131" ) --> Next --> Groupld : ( djh.it )Artifactld : ( springboot-dubbo-consumer )Version : 1.0-SNAPSHOT--> Name: ( springboot-dubbo-consumer )Location: ( ...\springboot-dubbo-consumer\ )	--> Finish

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>djh.it</groupId><artifactId>springboot-dubbo-consumer</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>djh.it</groupId><artifactId>springboot-dubbo-interface</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
<!-- D:\Java\java-test\idea\springboot-dubbo-consumer\pom.xml -->

四、SpringBoot 整合 Dubbo :dubbo 服务提供方

1、打开 springboot-dubbo-provider 项目 pom.xml 完善 依赖。


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>djh.it</groupId><artifactId>springboot-dubbo-provider</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version></parent><dependencies><dependency><groupId>djh.it</groupId><artifactId>springboot-dubbo-interface</artifactId><version>1.0-SNAPSHOT</version></dependency><!--  dubbo --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!--  spring-boot-stater --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><artifactId>log4j-to-slf4j</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion></exclusions></dependency><!--  zookeeper --><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.10</version><!--  依赖排除,避免多个日志冲突 --><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency><!--  zkclieng --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.9</version><exclusions><exclusion><artifactId>slf4j-log4j12</artifactId><groupId>org.slf4j</groupId></exclusion></exclusions></dependency></dependencies>
</project>
<!-- D:\Java\java-test\idea\springboot-dubbo-provider\pom.xml -->

2、在 springboot-dubbo-provider 项目中,创建 配置文件 application.properties


##  D:\Java\java-test\idea\springboot-dubbo-provider\src\main\resources\application.propertiesspring.application.name=dubbo-demo-provider
spring.dubbo.application.id=dubbo-demo-provider
spring.dubbo.application.name=dubbo-demo-provider
# spring.dubbo.registry.address=zookeeper://192.168.25.140:2181;zookeeper://192.168.25.140:2182;zookeeper://192.168.25.140:2183
spring.dubbo.registry.address=zookeeper://172.18.30.110:2181;zookeeper://172.18.30.110:2182;zookeeper://172.18.30.110:2183spring.dubbo.server=true
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880

3、在 springboot-dubbo-provider 项目中,创建 启动类 ProviderApplication.java


/***   springboot-dubbo-provider\src\main\java\djh\it\shop\springboot\dubbo\ProviderApplication.java**   2024-6-4 创建 启动类 ProviderApplication.java*/package djh.it.shop.springboot.dubbo;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubboConfiguration
public class ProviderApplication {public static void main(String[] args) {SpringApplication.run(ProviderApplication.class, args);}
}

4、在 springboot-dubbo-provider 项目中,创建 接口服务实现类 UserServiceImpl.java 。


/***   springboot-dubbo-provider\src\main\java\djh\it\shop\springboot\dubbo\service\impl\UserServiceImpl.java**   2024-6-4 创建 接口服务实现类 UserServiceImpl.java*/package djh.it.shop.springboot.dubbo.service.impl;import com.alibaba.dubbo.config.annotation.Service;
import djh.it.shop.service.IUseService;
import org.springframework.stereotype.Component;@Component
@Service(interfaceClass = IUseService.class)
public class UserServiceImpl implements IUseService {@Overridepublic String sayHello(String name) {return "hello: " + name;}
}

五、SpringBoot 整合 Dubbo :dubbo-admin 管理平台搭建

1、下载并上传 tomcat 到服务器上。


# 切换目录
cd /usr/local/zookeeper/ # 上传 tomcat : apache-tomcat-7.0.52.tar.gz 

2、解压 tomcat


# 切换目录
cd /usr/local/zookeeper/ # 解压 tomcat 
tar -zvxf apache-tomcat-7.0.52.tar.gz

3、下载并上传 dubbo.war 到服务器上。


# 切换目录
cd /usr/local/zookeeper/apache-tomcat-7.0.52/webapps/# 上传 dubbo.war : dubbo-admin.war

4、启动 tomcat


# 切换目录
cd /usr/local/zookeeper/apache-tomcat-7.0.52/bin/# 启动 tomcat 
./startup.sh # 查看启动日志 
tail -f ../logs/catalina.log 

5、访问 dubbo 控制台。默认用户名、密码:root

浏览器地址栏输入:、http://虚拟机IP:8080/项目名
如:http://192.168.25.140:8080/dubbo-admin

在这里插入图片描述


六、SpringBoot 整合 Dubbo :dubbo 服务消费方

1、打开 springboot-dubbo-consumer 项目 pom.xml 完善 依赖。


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>djh.it</groupId><artifactId>springboot-dubbo-consumer</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version></parent><dependencies><dependency><groupId>djh.it</groupId><artifactId>springboot-dubbo-interface</artifactId><version>1.0-SNAPSHOT</version></dependency><!--  web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--  dubbo --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!--  spring-boot-stater --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><exclusions><exclusion><artifactId>log4j-to-slf4j</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion></exclusions></dependency><!--  zookeeper --><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.10</version><!--  依赖排除,避免多个日志冲突 --><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency><!--  zkclieng --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.9</version><exclusions><exclusion><artifactId>slf4j-log4j12</artifactId><groupId>org.slf4j</groupId></exclusion></exclusions></dependency></dependencies>
</project>
<!-- D:\Java\java-test\idea\springboot-dubbo-consumer\pom.xml -->

2、在 springboot-dubbo-consumer 项目中,创建 配置文件 application.properties 。


##  springboot-dubbo-consumer\src\main\resources\application.propertiesspring.application.name=dubbo-demo-consumer
spring.dubbo.application.id=dubbo-demo-consumer
spring.dubbo.application.name=dubbo-demo-consumer
spring.dubbo.registry.address=zookeeper://192.168.25.140:2181;zookeeper://192.168.25.140:2182;zookeeper://192.168.25.140:2183

3、在 springboot-dubbo-consumer 项目中,创建 启动类 ConsumerApplication.java 。


/***   springboot-dubbo-consumer\src\main\java\djh\it\shop\springboot\dubbo\ConsumerApplication.java**   2024-6-4 创建 启动类 ConsumerApplication.java*/package djh.it.shop.springboot.dubbo;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableDubboConfiguration
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}
}

4、在 springboot-dubbo-consumer 项目中,创建 调用服务 的 Controller 类 UserController.java


/***   D:\Java\java-test\idea\springboot-dubbo-consumer\src\main\java\djh\it\shop\springboot\dubbo\controller\UserController.java**   2024-6-4 创建 调用服务 的 Controller 类 UserController.java*/package djh.it.shop.springboot.dubbo.controller;import com.alibaba.dubbo.config.annotation.Reference;
import djh.it.shop.service.IUseService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
public class UserController {@Reference  //这里不能使用 @Autowired 注解,因为是RPC远程调用,要使用 dubbo 注解 @Referenceprivate IUseService useService;@RequestMapping("/sayHello")public String sayHello(String name){return useService.sayHello(name);}
}

5、启动,测试 访问 dubbo 控制台。默认用户名、密码:root

1)dubbo 控制台出现 消费者服务。

在这里插入图片描述

2)浏览器地址栏输入:、http://虚拟机IP:8080/类名映射/方法名映射?参数=参数值

如:http://192.168.25.140:8080/user/sayHello?name=zs
http://localhost:8080/user/sayHello?name=张三丰

在这里插入图片描述

上一节关联链接请点击:
# RocketMQ 实战:模拟电商网站场景综合案例(一)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/342208.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WP】猿人学15_备周则意怠_常见则不疑

https://match.yuanrenxue.cn/match/15 抓包分析 抓包分析有一个m参数&#xff0c;三个数字组成 追栈/扣代码 根据启动器顺序追栈&#xff0c;一般优先跳过 jQuery 直接能找到加密函数 每次获取的数字都不一样 window.m function() { t1 parseInt(Date.parse(new Date(…

【全开源】Java共享茶室棋牌室无人系统支持微信小程序+微信公众号

打造智能化休闲新体验 一、引言&#xff1a;智能化休闲时代的来临 随着科技的飞速发展&#xff0c;智能化、无人化服务逐渐渗透到我们生活的各个领域。在休闲娱乐行业&#xff0c;共享茶室棋牌室无人系统源码的出现&#xff0c;不仅革新了传统的休闲方式&#xff0c;更为消费…

Marin说PCB之如何在主板上补偿链路中的走线的等长误差?

一场雨把我困在这里&#xff0c;你冷漠地看我没有穿雨衣淋成落汤鸡。今天刚刚出门时候看天气预报没有雨&#xff0c;于是我就没有带雨衣骑电动车去公司了&#xff0c;谁知道回来的路上被淋成狗了。天气预报就像是女人的脾气那样&#xff0c;不能完全相信的。 好了&#xff0c;我…

什么是视频号招商团长?如何加入成为视频号招商团长

视频号招商团长&#xff0c;是通过微信视频号平台的线上和线下活动&#xff0c;撮合商家和达人进行合作&#xff0c;帮助商家、达人在视频号成长发展&#xff1b;同时还可以通过邀请内容创作者入驻微信视频号并为其提供支持&#xff1b;从而获取佣金收益的&#xff0c;而其作用…

【LeetCode算法】第100题:相同的树

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路&#xff1a;二叉树的先序遍历。采用递归的先序遍历方法&#xff0c;首先访问根节点若不同则返回false&#xff0c;其次访问左子树和右子树。在访问左右子树时&#xff0c;需要注意…

CAN总线学习笔记-CAN帧结构

数据帧 数据帧&#xff1a;发送设备主动发送数据&#xff08;广播式&#xff09; 标准格式的11ID不够用了&#xff0c;由此产生了扩展格式 SOF&#xff1a;帧起始&#xff0c;表示后面一段波形为传输的数据位 ID&#xff1a;标识符&#xff0c;区分功能&#xff0c;同时决定优…

【qt】项目移植

项目移植 一.前言二.同名问题三.具体操作1.修改文件名2.修改类名3.修改一些不能自动改的名4.修改.ui文件5.删除原来自动生成的ui_xxx.h文件6.修改头文件 四.导入项目五.使用导入的项目六.项目建议 一.前言 终于概率论考完了,有时间了,接着上个项目,我们继续来完成我们的多窗口开…

探索 LLM 预训练的挑战,GPU 集群架构实战

万卡 GPU 集群实战&#xff1a;探索 LLM 预训练的挑战 一、背景 在过往的文章中&#xff0c;我们详细阐述了LLM预训练的数据集、清洗流程、索引格式&#xff0c;以及微调、推理和RAG技术&#xff0c;并介绍了GPU及万卡集群的构建。然而&#xff0c;LLM预训练的具体细节尚待进一…

Qt——升级系列(Level Two):Hello Qt 程序实现、项目文件解析、Qt 编程注意事项

Hello Qt 程序实现 使用“按钮”实现 纯代码方式实现&#xff1a; // Widget构造函数的实现 Widget::Widget(QWidget *parent): QWidget(parent) // 使用父类构造函数初始化QWidget&#xff0c;传入父窗口指针, ui(new Ui::Widget) // 创建Ui::Widget类的实例&#xff0c;并…

YOLOv8_obb预测流程-原理解析[旋转目标检测理论篇]

YOLOv8_obb的预测流程,主要分预处理模块、推理模块和后处理模块。这里面有很多内容是和目标检测预测流程是重合的,主要区别在于Angle分支、NMS后处理以及regularize_rboxes部分。本文也主要介绍一下这三个模块,其他模块可以结合YOLOv8预测流程-原理解析[目标检测理论篇]一起…

Ffmpeg安装和简单使用

Ffmpeg安装 下载并解压 进入官网 (https://ffmpeg.org/download.html)&#xff0c;选择 Window 然后再打开的页面中下滑找到 release builds&#xff0c;点击 zip 文件下载 环境变量配置 下载好之后解压&#xff0c;找到 bin 文件夹&#xff0c;里面有3个 .exe 文件 然后复制…

Zookeeper复习

一、入门 1、概念 zookeeper文件系统通知机制 2.特点 1&#xff09;、一个领导者&#xff0c;多个跟随者组成的集群。 2&#xff09;、集群中只要有半数以上存活机制&#xff0c;zookeeper集群能正产服务。zk适合安装奇数台。 3&#xff09;、全局数据一致&#xff1a;每…

量化投资分析平台 迅投 QMT(四)获取标的期权的代码

量化投资分析平台 迅投 QMT [迅投 QMT](https://www.xuntou.net/?user_code7NYs7O)我目前在使用有了底层标的如何获取期权的交易代码呢&#xff1f;上代码历史帖子 迅投 QMT 我目前在使用 两个月前&#xff08;2024年4月&#xff09;迅投和CQF有一个互动的活动&#xff0c;进…

5G+北斗智能手持终端在哪些行业中发挥作用

在当今科技融合发展的浪潮中&#xff0c;5G北斗智能手持终端正逐步成为驱动各行各业智能化升级的关键力量。这一融合创新技术不仅重塑了传统的通信与定位方式&#xff0c;而且在多个核心领域展现了其变革性的应用价值。 5G北斗智能手持终端因其独特的技术组合&#xff0c;在多个…

人工智能芯片封装技术及应用趋势分析

简介人工智能&#xff08;AI&#xff09;、物联网&#xff08;IoT&#xff09;和大数据的融合正在开创全新的智能时代&#xff0c;以智能解决方案改变各行各业。人工智能芯片在支持人工智能学习和推理计算方面发挥着非常重要的作用&#xff0c;可实现各行各业的多样化应用。 本…

【1990年-2022年】地级市人均GDP数据集(excel+shp)

数据简介&#xff1a;人均国内生产总值&#xff08;Real GDP per capita&#xff09;是人们了解和把握一个国家或地区的宏观经济运行状况的有效工具&#xff0c;即“人均GDP”&#xff0c;常作为发展经济学中衡量经济发展状况的指标&#xff0c;是最重要的宏观经济指标之一。 将…

首批Milvus Cloud获得亚马逊云科技生成式 AI 合作伙伴能力认证

Milvus Cloud正式宣布通过亚马逊云科技生成式 AI 能力认证!这一认证不仅肯定了 Zilliz 在人工智能和非结构化数据领域的卓越能力,也标志着 Zilliz 在推动 AI 技术创新和应用的道路上迈出了重要一步。 亚马逊云科技生成式 AI 能力认证,可以通过认证帮助合作伙伴更好地利用亚马…

手持终端RFID电子标签读写器超高频手持机

RFID手持机具备RFID读写功能&#xff0c;可以对RFID标签进行识读&#xff0c;是有特定功能的PDA(便携式移动终端)。 作为现代化信息管理工具的重要组成部分&#xff0c;其强大的功能和便捷的操作性正在越来越多的领域得到应用。从物流仓储到零售管理&#xff0c;从生产制造到医…

【全开源】小区入户安检系统(FastAdmin + Uni-APP)

守护家的每一道防线 一款基于FastAdmin Uni-APP开发的小区入户安检系统(前端可发布为小程序、H5、App)。可针对不同行业自定义安检项目&#xff0c;线下安检&#xff0c;线上留存&#xff08;安检拍照/录像&#xff09;&#xff0c;提高安检人员安检效率。 一、引言&#xff…