# 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.mzph.cn/pingmian/23401.shtml

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

相关文章

Ubuntu系统本地搭建WordPress网站并发布公网实现远程访问

文章目录 前言1. 搭建网站&#xff1a;安装WordPress2. 搭建网站&#xff1a;创建WordPress数据库3. 搭建网站&#xff1a;安装相对URL插件4. 搭建网站&#xff1a;内网穿透发布网站4.1 命令行方式&#xff1a;4.2. 配置wordpress公网地址 5. 固定WordPress公网地址5.1. 固定地…

阿里云安装python依赖报错 Requirements should be satisfied by a PEP 517 installer.

Collecting basicsr1.4.2 (from -r requirements.txt (line 16))Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/86/41/00a6b000f222f0fa4c6d9e1d6dcc9811a374cabb8abb9d408b77de39648c/basicsr-1.4.2.tar.gz (172 kB)━━━━━━━━━━━━━━━━━━━━…

功能安全TSC

TSC 与 FSR 的基本概念 一、引言 在功能安全领域中,TSC(Technical Safety Concept,技术安全概念)和 FSR(Functional Safety Requirements,功能安全要求)是两个至关重要的概念。它们对于确保系统的安全性和可靠性起着关键作用。本文将详细阐述 TSC 和 FSR 的定义、内涵,…

QQ号码采集器

寅甲QQ号码采集软件, 一款采集QQ号、QQ邮件地址&#xff0c;采集QQ群成员、QQ好友的软件。可以按关键词采集&#xff0c;如可以按地区、年龄、血型、生日、职业等采集。采集速度非常快且操作很简单。

电能质量在线监测装置

安科瑞电气股份有限公司 祁洁 15000363176 一、装置概述 APView500电能质量在线监测装置采用了高性能多核平台和嵌入式操作系统&#xff0c;遵照IEC61000-4-30《测试和测量技术-电能质量测量方法》中规定的各电能质量指标的测量方法进行测量&#xff0c;集谐波分析、波形采…

如何应对Android面试官 -> 玩转 MVx(MVC、MVP、MVVM、MVI)

前言 本章主要基于以下几个方向进行 MVx 的讲解&#xff0c;带你玩转 MVx&#xff1b; MVC、MVP、MVVM、MVI 它们到底是什么&#xff1f; 分文件、分模块、分模式 一个文件打天下 为什么不要用一个页面打天下&#xff1f; 页面是给用户看的&#xff0c;随着版本的迭代&…

6.6小结

Problem - A - Codeforces 思路&#xff1a; 一次最多只能走一步或者两步&#xff0c;只需要判断后面两个是不是都是*就行 #include<bits/stdc.h> using namespace std; char a[1010]; int main() {int t;cin >> t;while (t--){int n, flag0;int ans 0;cin >…

kali扩容

通过wmware虚拟机–>设置–>添加40G容量的硬盘。 ──(root㉿kali)-[~/桌面] fdisk -lDisk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors …

DevOps的原理及应用详解(二)

本系列文章简介&#xff1a; 在当今快速变化的商业环境中&#xff0c;企业对于软件交付的速度、质量和安全性要求日益提高。传统的软件开发和运维模式已经难以满足这些需求&#xff0c;因此&#xff0c;DevOps&#xff08;Development和Operations的组合&#xff09;应运而生&a…

Qt5学习笔记

一、基础知识 1、基本控件类型 水平弹簧与垂直弹簧的父类都是QSpaceItem。关于PushButton相关的控件类型&#xff1a; QPushButton&#xff1a;最基础的按钮类型。QToolButton&#xff1a;可以控制图片、文字任意组合的显示方式的按钮类型。QRadioButton&#xff1a;就像rad…

Java多线程-初阶1

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 关注博主带你了解更多数据结构知识 1. 认识线程&#xff08;Thread&#xff09; 1.线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代…

高并发数据处理中心服务器设计

涉及的相关框架Spring Cloud、RabbitMQ、Redis 和 MySQL&#xff1b; Spring Cloud&#xff1a;用于微服务的开发&#xff0c;确保服务间的通信和协作。 RabbitMQ&#xff1a;用于异步消息队列&#xff0c;确保系统的高可用性和扩展性。 Redis&#xff1a;用作缓存&#xff…

计算机图形学入门07:光栅化中的采样与走样

1.什么是光栅化&#xff1f; 在前面的章节里提过&#xff0c;光栅化(Rasterization)就是将物体投影在屏幕上的图形&#xff0c;依据像素打散&#xff0c;每一个像素中填充不同的颜色。 如下图中的老虎&#xff0c;可以看到屏幕上有各种多边形&#xff0c;这些多边形经过各种变换…

ARM功耗管理架构演进及变迁

安全之安全(security)博客目录导读 目录 一、功耗管理架构演进及变迁概述 二、多核 三、big.LITTLE 四、DynamIQ

教师办公神器推荐,口碑爆棚!

亲爱滴老师们&#xff0c;我要给大家安利几款超级实用的教师办公神器&#xff0c;不仅功能强大&#xff0c;而且口碑爆棚&#xff0c;绝对能让你们的工作效率飞起来&#xff01; 博思白板&#xff1a;创意无限&#xff0c;教学生动 一款可以无限扩展的数字白板&#xff0c;让教…

Lodop 实现局域网打印

文章目录 前言一、Lodop支持打印的方式lodop 打印方式一般有3种&#xff1a;本地打印局域网集中打印广域网AO打印 二、集成步骤查看lodop 插件的服务端口&#xff1a;查看ip后端提供接口返回ip&#xff0c;前端动态获取最后步骤 前言 有时候会根据不同的ip来获取资源文件&…

Github 最新的上传代码操作步骤

github取消了密码账号授权登录方式 原有的link到github账户后&#xff0c;还需要进行令牌的授权 首先需要创建一个令牌。可以参照以下链接 创建好令牌之后&#xff0c;以后需要执行 git remote set-url origin https://[令牌代码]github.com/xxx/xxx/完整的操作流程如下&am…

linux网络 dns域名解析

目录 DNS 域名体系结构 如何实现域名解析 正向解析 反向解析 主从服务器解析 bond 网卡 DNS 是域名系统的简称 域名和ip地址之间的映射关系 互联网中 IP地址是通信的唯一标识 逻辑地址 访问网站 域名 IP地址不好记 域名朗朗上口 好记 域名解析的目的就是为了实现 访…

为什么我们需要在软件本地化过程中使用术语服务?

你知道软件翻译和本地化的术语服务吗&#xff1f;此解决方案涵盖源术语和目标术语的创建、开发和维护。所有术语都存储在具有多个字段的数据库中&#xff0c;包括术语定义、用法示例、上下文和历史记录。这使我们能够正确处理每个术语的创建或更改请求&#xff0c;避免创建重复…

docker容器内时区相差8小时问题

docker容器内时区相差8小时问题&#xff1a; 提示&#xff1a;java 时间记录差*小时&#xff1a; 进入容器内修改&#xff08;已经实践过的&#xff09; &#xff08;1&#xff09;更改容器时间 也就是操作的文件夹是容器内的文件夹&#xff0c;不再是宿主机的 首先是从宿主机…