微服务案例搭建
目录
一、案例搭建
1.数据库表
2.服务模块
二、具体代码实现如下:
(1) 首先是大体框架为:
(2)父模块中的pom文件配置
(3)shop_common模块,这个模块里面只需要配置pom.xml,与实体类
(4)在shop_product、shop_order、shop_user子模块中导入公共子模块common的坐标
(4.1)shop_product的pom.xml
(4.2)shop_order的pom.xml
(4.3)shop_user的pom.xml
三、服务调⽤
1.RestTemplate介绍
2.RestTemplate⽅法介绍
3.通过RestTemplate调⽤微服务
(1)shop_order的控制层
(2)shop_order的 service层:
(3)shop_order的 OrderMappper数据访问层代码:
(4)shop_order的 测试类主入口代码:
(5)shop_order的 测试类主入口代码:
一、案例搭建
使⽤微服务架构的分布式系统,微服务之间通过⽹络通信。我们通过服务提供者与服务消费者来描述微服 务间的调⽤关系。
服务提供者:服务的被调⽤⽅,提供调⽤接⼝的⼀⽅
服务消费者:服务的调⽤⽅,依赖于其他服务的⼀⽅
我们以电商系统中常⻅的⽤户下单为例,⽤户向订单微服务发起⼀个购买的请求。在进⾏保存订单之前 需要调⽤商品微服务查询当前商品库存,单价等信息。在这种场景下,订单微服务就是⼀个服务消费 者,商品微服务就是⼀个服务提供者。

1.数据库表
shop_order订单表
shop_product商品表
shop_user⽤户表
2.服务模块
创建公共⽗模块springcloud_alibaba
创建公共模块 shop_common ,⽤于存放公共的实体类和⼯具类
创建订单微服务模块 shop_order 端⼝809X
创建商品微服务模块 shop_product 端⼝808X
创建⽤户微服务模块 shop_user 端⼝807X
二、具体代码实现如下:
(1) 首先是大体框架为:

其中common用于存在实体类对象,order用于创建订单,product用于操作产品信息,user用于操作用户信息。
(2)父模块中的pom文件配置
<!-- 项目基本信息 --><groupId>com.zad</groupId><artifactId>springcloud_alibaba</artifactId><version>1.0-SNAPSHOT</version>
这里定义了项目的基本信息,包括groupId(组织标识符)、artifactId(项目标识符)、和version(版本号)。这些信息唯一标识了该Maven项目。
<!-- pom:父文件 --><packaging>pom</packaging>
这个项目打包类型为pom,意味着它是一个聚合项目或父项目,用来管理多个子模块。
<!-- 父项目的子模块 --><modules><module>shop_order</module><module>shop_product</module><module>shop_user</module><module>shop_commen</module></modules>
定义了该父项目的四个子模块。
<!-- 依赖版本的锁定 --><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-cloud.version>Greenwich.RELEASE</spring-cloud.version><spring-cloud-alibaba.version>2.1.1.RELEASE</spring-cloud-alibaba.version></properties>
这里定义了一些属性,如Java版本、编码格式,以及Spring Cloud和Spring Cloud Alibaba的版本。这些属性可以在整个POM文件中复用,方便管理和升级。
<!--dependencyManagement所包含的坐标,子项目不会直接继承,需要声明才可继承--> <dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
在dependencyManagement部分定义了依赖管理。这里指定了Spring Cloud和Spring Cloud Alibaba的依赖项及其版本。这些依赖项不会自动应用到子项目中,子项目需要显式声明才能继承。
(3)shop_common模块,这个模块里面只需要配置pom.xml,与实体类
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"><parent><artifactId>springcloud_alibaba</artifactId><groupId>com.zad</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shop_commen</artifactId><!-- 依赖 --><dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.12</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.56</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><dependency><groupId>com.zad</groupId><artifactId>springcloud_alibaba</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
在domain包下创建了三个实体类用于创建存储订单、产品、用户,这里只展示订单的代码,其余代码均相同逻辑:
@TableName("shop_order")
@Data
public class Order {@TableId(value = "oid",type = IdType.AUTO)private Long oid;//订单id//用户@TableField("uid")private Integer uid;//用户id@TableField("username")private String username;//用户名//商品@TableField("pid")private Integer pid;//商品id@TableField("pname")private String pname;//商品名称@TableField("pprice")private Double pprice;//商品单价//数量@TableField("number")private Integer number;//购买数量
}
通过@TableName映射shop_order数据库,其余的都是成员变量的创建和映射。
(4)在shop_product、shop_order、shop_user子模块中导入公共子模块common的坐标
<!-- shop-common --><dependency><groupId>com.zad</groupId><artifactId>shop_commen</artifactId><version>1.0-SNAPSHOT</version></dependency>
(4.1)shop_product的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"><parent><artifactId>springcloud_alibaba</artifactId><groupId>com.zad</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shop_product</artifactId><dependencies><!-- springboot-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- shop-common --><dependency><groupId>com.zad</groupId><artifactId>shop_commen</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.zad</groupId><artifactId>springcloud_alibaba</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
(4.2)shop_order的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"><parent><artifactId>springcloud_alibaba</artifactId><groupId>com.zad</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shop_order</artifactId><dependencies><!-- springboot-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- shop-common --><dependency><groupId>com.zad</groupId><artifactId>shop_commen</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.zad</groupId><artifactId>springcloud_alibaba</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>
(4.3)shop_user的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"><parent><artifactId>springcloud_alibaba</artifactId><groupId>com.zad</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>shop_user</artifactId><dependencies><!-- springboot-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- shop-common --><dependency><groupId>com.zad</groupId><artifactId>shop_commen</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.zad</groupId><artifactId>springcloud_alibaba</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
三、服务调⽤
前⽂已经编写了三个基础的微服务,在⽤户下单时需要调⽤商品微服务获取商品数据。那应该怎么做 呢?总⼈皆知商品微服务提供了供⼈调⽤的HTTP接⼝。所以可以再下定单的时候使⽤http请求的相关⼯ 具类完成,如常⻅的HttpClient ,OkHttp,当然也可以使⽤Spring提供的RestTemplate
1.RestTemplate介绍
Spring框架提供的RestTemplate类可⽤于在应⽤中调⽤rest服务,它简化了与http服务的通信⽅式,统 ⼀了RESTful的标准,封装了http链接, 我们只需要传⼊url及返回值类型即可。相较于之前常⽤的 HttpClient ,RestTemplate是⼀种更优雅的调⽤RESTful服务的⽅式。
在Spring应⽤程序中访问第三⽅REST服务与使⽤Spring RestTemplate类有关。 RestTemplate类的设 计 原则与许多其他Spring 模板类(例如JdbcTemplate、JmsTemplate)相同,为执⾏复杂任务提供了⼀ 种具有默认⾏为的简化⽅法。
RestTemplate默认依赖JDK提供http连接的能⼒(HttpURLConnection),如果有需要的话也可以通过 setRequestFactory⽅法替换为例如 Apache HttpComponents、 Netty或OkHttp等其它HTTP library。 考虑到RestTemplate类是为调⽤REST服务⽽设计的,因此它的主要⽅法与REST的基础紧密相连就不⾜ 为奇了,后者是HTTP协议的⽅法:HEAD、GET、 POST、 PUT、 DELETE和OPTIONS。例如, RestTemplate类具有headForHeaders()、getForObject()、 postForObject()、 put()和delete()等⽅法。
2.RestTemplate⽅法介绍

分为三组:
- getForObject --- optionsForAllow 分为一组,这类方法是常规的 Rest API(GET、POST、DELETE 等)方法调用;
- exchange:接收一个 RequestEntity 参数,可以自己设置 HTTP method,URL,headers 和 body,返回 ResponseEntity;
- execute:通过 callback 接口,可以对请求和返回做更加全面的自定义控制。
3.通过RestTemplate调⽤微服务
(1)shop_order的控制层
@RestController
public class OrderController {@Autowiredprivate RestTemplate restTemplate;@Autowiredprivate IOrderService orderService;//下单@RequestMapping("/order/prod/{pid}")public Order order(@PathVariable("pid") Integer pid) {//调用商品微服务,查询商品信息Product product =restTemplate.getForObject("http://localhost:8081/product/" + pid, Product.class);//下单(创建订单)Order order = new Order();order.setUid(1);order.setUsername("测试用户");order.setPid(pid);order.setPname(product.getPname());order.setPprice(product.getPprice());order.setNumber(1);orderService.createOrder(order);return order;}
}
其中RestTemplate对象是用于在服务之间发起 HTTP 请求的模板类。它封装了 HTTP 请求和响应的处理逻辑,提供了一组便捷的方法来与外部 RESTful 服务进行交互。
通过.getForObject方法,调用商品微服务,通过 HTTP GET 请求调用商品服务的接口获取商品信息。
然后再创建order对象通过mybatis-puls提供的接口来调用创建订单的方法:
(2)shop_order的 service层:
接口:
public interface IOrderService extends IService<Order> {//创建订单void createOrder(Order order);
}
IService 是 MyBatis-Plus 提供的一个通用服务接口,提供了许多 CRUD(创建、读取、更新、删除)操作的默认实现方法。继承了 IService<Order> 后,IOrderService 接口就拥有了这些通用的 CRUD 功能,比如 save、remove、update、getById 等。
实现类:
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService {@Autowired(required = false)private OrderMapper orderMapper;@Overridepublic void createOrder(Order order) {orderMapper.insert(order);}
}
这个继承了ServiceImpl抽象类,是 MyBatis-Plus 提供的一个抽象类,实现了IService接口的大部分常用方法,又实现了IOrderService的接口,通过继承 ServiceImpl,OrderServiceImpl 类自动获得了所有 CRUD 方法的实现,无需手动编写这些基本操作的代码。
(3)shop_order的 OrderMappper数据访问层代码:
@Mapper
public interface OrderMapper extends BaseMapper<Order> {
}
BaseMapper 是 MyBatis-Plus 提供的一个通用 Mapper 接口,已经实现了基本的 CRUD(创建、读取、更新、删除)操作。
(4)shop_order的 测试类主入口代码:
@SpringBootApplication
public class OrderApplication {public static void main(String[] args) {SpringApplication.run(OrderApplication.class);}@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}}
因为控制器需要用到restTemplate,所以在测试类中定义了一个RestTemplate的bean。
(5)shop_order的 测试类主入口代码:
server:port: 8091
spring:application:name: service_orderdatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:///shop?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=trueusername: rootpassword: password
其中server:port代表配置Spring Boot 应用的服务器端口号。
spring: application: name: service-order配置应用程序的名称为 service-order。这个名称在微服务架构中很重要,通常用于服务发现、注册中心(如 Nacos 或 Eureka)等场景。
后面的是配置数据库和jdbc的连接。
这里我就省略shop_product和shop_user的代码了,同时执行三个模块,通过shop_order中的restTemplate去调用地址实现获取商品信息和用户信息,最后进行下单操作。
执行结果:

在数据库中也可以查询到增加的订单信息。
相关文章:
微服务案例搭建
目录 一、案例搭建 1.数据库表 2.服务模块 二、具体代码实现如下: (1) 首先是大体框架为: (2)父模块中的pom文件配置 (3)shop_common模块,这个模块里面只需要配置pom.xml,与实体…...
SAP负库存
业务示例 在系统中,对于一些物料而言,不能立即将收到的交货输入为收货。如果要使发货无论如何都是可以过帐的,则需要允许这些物料的负库存。 负库存 发货数量大于预订数量时,过帐该发货就会出现负库存。如果由于组织原因&#…...
集团数字化转型方案(三)
集团数字化转型方案通过系统整合人工智能(AI)、大数据、云计算和物联网(IoT)技术,建立了一个全面智能化的业务管理平台,涵盖从业务流程自动化、数据驱动决策支持,到客户体验优化和供应链管理的各…...
ESP32智能设备:蓝牙音箱、AI语音助手、环境监测与调节以及智能控制,基于BLE与MQTT技术(代码详解)
本文将介绍如何实现一个功能丰富的ESP32项目,集成蓝牙音箱、AI语音助手、智能设备控制器、环境监测与调节等功能。通过本项目,您将学习到硬件设计、嵌入式编程、蓝牙技术、音频处理、人工智能与语音识别、物联网平台、数据分析及用户界面构建等技术。 一…...
web渗透测试 学习导图
web渗透学习路线 前言 一、web渗透测试是什么? Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web…...
WordPress禁止后台自定义功能
wordpress后台可以彻底禁止主题的自定义菜单功能,下面这段代码添加到functions.php文件中,后台外观菜单中的”自定义”就会消失不见了。 add_filter(map_meta_cap, function($caps, $cap){if($cap customize){return [do_not_allow];}return $caps; },…...
(六)Flink 窗口计算
窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。 目录 时间概念 窗口类型 窗口划分 窗口的生命周期 Window Assigners 窗口函数 Triggers 窗口触发器 Evictor 数据剔除器 Allowed Lateness 旁路输出 时间…...
SQL 布尔盲注 (injection 第六关)
简介 SQL注入(SQL Injection)是一种常见的网络攻击方式,通过向SQL查询中插入恶意的SQL代码,攻击者可以操控数据库,SQL注入是一种代码注入攻击,其中攻击者将恶意的SQL代码插入到应用程序的输入字段中&am…...
OpenAI 重回巅峰:ChatGPT-4O 最新模型超越谷歌 Gemini 1.5,多项测试夺冠!
谷歌上周发布的Gemini 1.5 Pro模型,在LMSYS办的聊天机器人竞技场Chatbot Arena中获得第一名。但是,OpenAI迅速反应,推出了最新的chatgpt-4o-latest模型,重新夺回了冠军头衔。 chatgpt-4o-latest模型简介 OpenAI最近推出了名为gpt-…...
软件工程(2)面向对象方法:Booch方法与开发实例
Booch方法(Booch Method)是由Grady Booch提出的一种面向对象的软件开发方法。它是一种系统分析与设计的框架,主要用于设计和建模面向对象的系统。Booch方法特别关注对象模型的构建,以及类、对象和它们之间的关系。以下是Booch方法…...
高阶面试-concurrentHashMap的整理
算不上死磕,里面太痛苦了,现在很多位移等操作还看不懂,只是先理清大致思路,面试用 concurrentHashMap的实现原理 为啥会用到?并发安全。之前都用的hashtable实现线程安全的map,但是太过笨重,不…...
VSCode系列 - 如何用VSCode搭建C++高效开发环境(1)
VSCode是笔者用过的最好用的开发工具,没有之一。笔者14年的码龄生涯中,先后用过Eclipse、 IntelliJ IDEA、 WebStorm、 PyCharm、 Visual Studio(2010/2013/2015)、 NetBeans、 Sublime Text等,但自从用VSCode之后,就再没换过其他…...
【人工智能】Python融合机器学习、深度学习和微服务的创新之路
1. 🚀 引言1.1 🚀 人工智能的现状与发展趋势1.2 📜 机器学习、深度学习和神经网络的基本概念1.3 🏆 微服务架构在人工智能中的作用 2. 🔍 机器学习的演变与创新2.1 🌟 机器学习的历史回顾2.2 🧠…...
Stability AI发布了单目视频转4D模型的新AI模型:Stable Video 4D
开放生成式人工智能初创公司Stability AI在3月发布了Stable Video 3D,是一款可以根据图像中的物体生成出可旋转的3D模型视频工具。Stability AI在7月24日发布了新一代的Stable Video 4D,增添了赋予3D模移动作的功能。 Stable Video 4D能在约40秒内生成8…...
网站如何被Google收录?
想让你的网站快速被Google收录?试试GSI快速收录服务吧,这是通过谷歌爬虫池系统来实现的。这套系统吸引并圈养Google爬虫,提高你网站的抓取频率。每天有大量Google爬虫抓取你的网站页面,大大提高了页面的收录概率,从而增…...
LearnOpenGL——法线贴图、视差贴图学习笔记
LearnOpenGL——法线贴图、视差贴图学习笔记 法线贴图 Normal Mapping一、基本概念二、切线空间1. TBN矩阵2. 切线空间中的法线贴图 三、复杂模型四、小问题 视差贴图 Parallax Mapping一、基本概念二、实现视差贴图三、陡峭视差映射 Steep Parallax Mapping四、视差遮蔽映射 P…...
界面优化 - 绘图
目录 1. 基本概念 2. 绘制各种形状 2.1 绘制线段 2.2 绘制矩形 2.3 绘制圆形 2.4 绘制文本 2.5 设置画笔 2.6 设置画刷 3. 绘制图片 3.1 绘制简单图片 3.2 平移图片 3.3 缩放图片 3.4 旋转图片 1. 基本概念 虽然 Qt 已经内置了很多的控件, 但是不能保证现有控件就…...
死锁问题分析和解决——资源回收时
1.描述问题 在完成线程池核心功能功能时,没有遇到太大的问题(Any,Result,Semfore的设计),在做线程池资源回收时,遇到了死锁的问题 1、在ThreadPool的资源回收,等待线程池所有线程退出时ÿ…...
【Java】效率工具模板的使用
Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1 乱码问题4.2 快捷键模板4.3 文件模板 一、前言 提高效率 二、学习内容&am…...
c++指南 -指针和引用
指针和引用 指针的基本概念 指针是存储另一个变量的内存地址的变量。指针变量的声明包括指针类型和星号 (*)。 int* ptr; // ptr 是一个指向 int 类型的指针指针操作 初始化:将指针设置为变量的地址。 int var 10; int* ptr &var; // ptr 现在存储 var 的…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案
一、延迟敏感行业面临的DDoS攻击新挑战 2025年,金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征: AI驱动的自适应攻击:攻击流量模拟真实用户行为,差异率低至0.5%,传统规则引…...
大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
