SpringCloud入门教程合集(1)-SpringCloud简介与Eureka+Feign实现服务注册中心、服务提供与服务消费
场景
SpringCloud 总体架构与核心子项目
SpringCloud 总体架构
1. 基础设施层
服务注册与发现:Eureka/Nacos
配置中心:Spring Cloud Config/Nacos
消息总线:Spring Cloud Bus
2. 服务通信层
负载均衡:Ribbon/LoadBalancer
服务调用:Feign/OpenFeign
API网关:Gateway/Zuul
3. 服务治理层
熔断降级:Hystrix/Sentinel
服务监控:Turbine/Hystrix Dashboard
分布式追踪:Sleuth/Zipkin
4. 数据层
分布式缓存:Spring Cache + Redis
分布式事务:Seata
数据库中间件:ShardingSphere
5. 安全控制层
认证授权:Spring Security OAuth2
服务鉴权:JWT
安全网关:Spring Cloud Gateway Security
SpringCloud Netflix 家族项目
SpringCloud Netflix 是 SpringCloud 早期版本的核心组件集合,为微服务架构提供了一系列成熟的解决方案。
尽管部分组件已进入维护模式,但理解其设计理念对掌握微服务架构仍有重要意义。
主要组件
Eureka - 服务注册与发现
Ribbon - 客户端负载均衡
Hystrix - 熔断降级
Zuul - API网关
Feign - 声明式REST客户端
SpringCloud Alibaba 家族项目
SpringCloud Alibaba 是阿里巴巴开源的一套微服务解决方案,为 SpringCloud 生态提供了丰富的企业级组件支持。
主要组件
Nacos - 服务注册与配置中心
Sentinel - 流量控制与熔断降级
Seata - 分布式事务解决方案
RocketMQ - 消息中间件集成
消息轨迹:完整追踪消息生命周期
事务消息:支持分布式事务场景
延迟消息:支持定时消息投递
顺序消息:保证局部顺序消费
Dubbo - RPC通信框架
高性能:基于Netty的NIO通信
多协议:支持Dubbo/REST/gRPC等
负载均衡:随机/轮询/最少活跃调用等策略
服务治理:条件路由/黑白名单/权重调节
Eureka 服务注册与发现框架介绍
1. 两大组件
Eureka Server:注册中心服务器,提供服务注册和发现功能
Eureka Client:服务提供者和消费者,会注册到 Eureka Server
2. 重要术语
服务注册(Register):服务启动时向 Eureka 注册自己的信息
服务续约(Renew):客户端定期发送心跳维持注册
服务下线(Cancel):客户端关闭时主动通知 Eureka
服务剔除(Eviction):Eureka 清理长时间无心跳的服务
服务获取(Fetch Registry):客户端从服务器获取服务注册表
3. 服务注册流程
服务提供者启动后向 Eureka Server 注册
Eureka Server 将注册信息存储到注册表
服务消费者从 Eureka Server 获取服务列表
消费者通过负载均衡调用服务提供者
2. 自我保护机制
当超过85%的客户端没有心跳时,Eureka 进入自我保护模式
在此模式下不会剔除任何服务实例
通过 eureka.server.enable-self-preservation 配置
Feign与OpenFeign
Feign
Feign 是 Netflix 开发的声明式 HTTP 客户端。
主要特点
通过注解方式定义和实现 HTTP API 调用
整合了 Ribbon 实现客户端负载均衡
支持可插拔的编码器和解码器
OpenFeign
OpenFeign 是 Spring Cloud 对 Feign 的增强和整合
主要特点
作为 Feign 的升级版本被纳入 Spring Cloud 生态
深度整合 Spring MVC 注解
支持 Spring Cloud 的服务发现(如 Eureka)
提供更完善的 Spring Boot 支持
OpenFeign 核心功能
声明式服务调用
负载均衡
自动集成 Ribbon
支持多种负载均衡策略(轮询、随机等)
服务熔断
可与 Hystrix 或 Sentinel 集成实现熔断降级
请求/响应处理
支持自定义编码器/解码器
支持请求拦截器和响应处理器
常用注解
@FeignClient 声明Feign客户端,主要参数:name/value(服务名), url(直接指定URL)
@RequestMapping 与Spring MVC用法一致
@GetMapping 映射GET请求
@PostMapping 映射POST请求
@RequestParam 请求参数
@PathVariable URL路径变量
@RequestBody 请求体
核心特性对比
最佳实践
最佳实践
接口设计原则
保持Feign接口与服务提供方API一致
使用继承或组合避免重复定义
为复杂对象定义DTO而非直接使用领域模型
性能优化建议
启用HTTP连接池(OKHttp或HttpClient)
合理设置超时时间
对频繁调用的接口考虑缓存结果
异常处理
实现ErrorDecoder处理特定状态码
统一异常转换机制
安全考虑
使用拦截器添加认证信息
敏感信息不应出现在URL或日志中
目录
场景
SpringCloud 总体架构与核心子项目
SpringCloud 总体架构
SpringCloud Netflix 家族项目
SpringCloud Alibaba 家族项目
Eureka 服务注册与发现框架介绍
Feign与OpenFeign
Feign
OpenFeign
核心特性对比
编辑
最佳实践
实现
学前准备(小白必看)
项目创建步骤详解
创建父工程(管理所有模块)
Eureka服务注册中心
服务提供者开发
服务消费者开发
全流程测试
注:
博客:
霸道流氓气质-CSDN博客
实现
学前准备(小白必看)
1. 你需要先掌握的基础
Java基础(类、接口、注解的概念)
SpringBoot简单项目搭建(会写@RestController)
HTTP协议基本了解(GET/POST请求)
项目创建步骤详解
创建父工程(管理所有模块)
IDEA-File → New → Project
选择 Maven → 勾选 Create from archetype → 选择 maven-archetype-site-simple
填写GroupId:ArtifactId:完成创建
修改pom
<packaging>pom</packaging> <!-- 注意这里是pom类型 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</version></parent><properties><java.version>1.8</java.version><spring-cloud.version>2021.0.8</spring-cloud.version><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><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></dependencies></dependencyManagement>
Eureka服务注册中心
在父工程上右键 → New → Module
选择Maven → 不选archetype
ArtifactId填写:eureka-server
修改pom.xml 添加依赖
<dependencies><!-- Eureka服务端依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><!-- 健康检查(可选) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies>
配置文件application.yml
server:port: 8761 # Eureka默认端口eureka:instance:hostname: localhost # 主机名client:register-with-eureka: false # 不注册自己fetch-registry: false # 不获取注册表service-url:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ spring:application:name: eureka-server # 应用名称
启动类编写
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer // 关键注解:启用Eureka服务端功能
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}
}
启动并访问
运行启动类后,浏览器访问:http://localhost:8761
你会看到Eureka的管理界面(此时还没有服务注册)
服务提供者开发
创建service-provider模块
添加依赖
<dependencies><!-- Eureka客户端依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!-- Web支持 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
配置文件application.yml
server:port: 8081 # 服务端口spring:application:name: service-provider # 重要!这是服务名称eureka:client:service-url:defaultZone: http://localhost:8761/eureka/ # 注册到Eurekainstance:instance-id: ${spring.application.name}:${server.port} # 实例IDprefer-ip-address: true # 显示IP地址
编写业务接口
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/provider")
public class ProviderController {// 简单测试接口@GetMapping("/hello")public String hello() {return "Hello, I'm Provider Service!";}// 模拟获取用户信息@GetMapping("/user/{id}")public String getUser(@PathVariable Integer id) {return "User Info - ID: " + id + ", Name: User" + id;}
}
启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient // 启用服务发现客户端
public class ServiceProviderApplication {public static void main(String[] args) {SpringApplication.run(ServiceProviderApplication.class, args);}
}
验证注册
先启动Eureka Server
再启动Service Provider
刷新Eureka页面(http://localhost:8761),应该能看到SERVICE-PROVIDER服务
服务消费者开发
创建service-consumer模块
添加依赖
<dependencies><!-- Eureka客户端 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!-- OpenFeign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!-- Web支持 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
配置文件application.yml
server:port: 8082spring:application:name: service-consumereureka:client:service-url:defaultZone: http://localhost:8761/eureka/# Feign配置(可选)
feign:client:config:default: # 全局配置connectTimeout: 5000 # 连接超时5秒readTimeout: 5000 # 读取超时5秒
创建Feign客户端接口
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;@FeignClient(name = "service-provider") // 指定服务名称
public interface ProviderClient {// 对应provider的/hello接口@GetMapping("/provider/hello")String callHello();// 对应provider的/user/{id}接口@GetMapping("/provider/user/{id}")String getUser(@PathVariable Integer id);
}
编写消费者Controller
import com.badao.feign.ProviderClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/consumer")
public class ConsumerController {@Autowiredprivate ProviderClient providerClient; // 注入Feign客户端@GetMapping("/test")public String testFeign() {return "Feign调用结果:" + providerClient.callHello();}@GetMapping("/user/{id}")public String getUser(@PathVariable Integer id) {return "通过Feign获取:" + providerClient.getUser(id);}
}
启动类(关键注解)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients // 关键!启用Feign客户端扫描
public class ServiceConsumerApplication {public static void main(String[] args) {SpringApplication.run(ServiceConsumerApplication.class, args);}
}
全流程测试
启动顺序很重要!
启动 eureka-server(端口8761)
启动 service-provider(端口8081)
启动 service-consumer(端口8082)
验证服务注册
访问 http://localhost:8761
测试接口调用
直接调用Provider:
http://localhost:8081/provider/hello
返回:Hello, I'm Provider Service!
通过Feign调用:
http://localhost:8082/consumer/test
返回:Feign调用结果:Hello, I'm Provider Service!
带参数的调用:
http://localhost:8082/consumer/user/123
相关文章:
SpringCloud入门教程合集(1)-SpringCloud简介与Eureka+Feign实现服务注册中心、服务提供与服务消费
场景 SpringCloud 总体架构与核心子项目 SpringCloud 总体架构 1. 基础设施层 服务注册与发现:Eureka/Nacos 配置中心:Spring Cloud Config/Nacos 消息总线:Spring Cloud Bus 2. 服务通信层 负载均衡:Ribbon/LoadBalancer…...
【Linuc】深入理解 Linux 文件权限
文章目录 一、权限基础解析1. 权限三元组2. 权限类型与数字映射二、查看文件权限三、修改权限实战1. chmod 命令符号模式数字模式(推荐)2. chown 修改归属四、特殊权限机制1. SetUID (Set User ID)2. SetGID (Set Group ID)3. Sticky Bit五、高级权限管理1. 默认权限控制2. A…...
ExtraMAME:复古游戏的快乐“时光机”
嘿,小伙伴们!今天电脑天空要给大家安利一款超有趣的软件——ExtraMAME!如果你对复古街机游戏念念不忘,那它绝对能成为你的快乐源泉,带你瞬间穿越回那个充满游戏机的黄金时代。 ExtraMAME是一款基于MAME(Mu…...
没有 Mac,如何把 iOS App 成功上架?
开发者的 iOS 上架折腾记:没有 Mac,也能搞定? 最近在帮朋友把一个跨平台 Flutter 项目上架到 App Store,结果被 iOS 上架的那套流程卡得头都大了。其实这也不是第一次碰壁了——每次到“申请证书 打包 上传”的时候,…...
使用VMware Workstation pro 17.5.1在Windows上安装Ubuntu 24.04.2的 详细步骤
一、准备工作 1. 下载Ubuntu 24.04.2 ISO镜像 官方下载地址:Ubuntu 24.04.2 (Noble Numbat) 选择 ubuntu-24.04.2-desktop-amd64.iso(桌面版)或 ubuntu-24.04.2-live-server-amd64.iso(服务器版)。 2. 确认系统要求…...
栈与队列详解及模拟实现
目录 一、栈(Stack):后进先出 1.1 什么是栈 1.2 栈的使用 1.3 栈的模拟实现 1.4 栈的经典应用 二、队列(Queue):先进先出 2.1 什么是队列 2.2 队列的使…...
Cursor无法SSH远程连接服务器免密登录问题
在本地机器和Ubuntu服务器之间实现SSH远程免密连接,可按如下步骤操作: 1. 生成SSH密钥对 在本地机器上开启终端,使用以下命令生成SSH密钥对: ssh-keygen -t rsa按提示操作,一般直接回车,这样密钥会生成在…...
【Vue】全局事件总线 TodoList 事件总线
目录 一、 实现所有组件看到x事件 二、 实现$on $off 以及 $emit 总结不易~ 本章节对我有很大的收获, 希望对你也是!!! 本节素材已上传至Gitee:yihaohhh/我爱Vue - Gitee.com 全局事件总线图: 本节素材…...
动态规划背包问题
一、0-1背包问题 0-1背包问题就是给定n个物品和一个容量为C的背包,物品i的重量是Wi,其价值是Vi。问:应该如何选择装入背包的物品,使总价值最大且总重量不超过C? 1.确定状态表示 dp[i][j] 表示在背包容量为j时,从下标…...
ctfshow web入门 web49
信息收集 此%非彼%,%0a中的%不会被识别,因为识别之前就已经自动转化为了换行符 所以和之前一样的解法,没什么好说的 if(isset($_GET[c])){$c$_GET[c];if(!preg_match("/\;|cat|flag| |[0-9]|\\$|\*|more|less|head|sort|tail|sed|cut|…...
AI+浏览器自动化:Nanobrowser Chrome 扩展的使用「详细教程」
AI+浏览器自动化:Nanobrowser Chrome 扩展的使用「详细教程」 一、前言二、Nanobrowser简介2.1 项目背景2.2 核心特性三、安装与配置3.1 安装方式3.1.1 Chrome Web Store安装3.1.2 手动安装最新版3.2 基本配置3.2.1 添加API Key3.2.2 选择模型3.2.3 其他设置四、核心功能详解4…...
【表设计】外键的取舍-分布式中逐渐消失的外键
在分布式大行其道的今天,为什么外键约束越来越少? 外键-数据链接带来强制完整性 在关系型数据库中,外键(Foreign Key)可以用于建立和强制两个表之间的数据链接。 在层次数据结构一篇的闭包表简单设计中,…...
HarmonyOS 5.0 分布式数据协同与跨设备同步
大家好,我是 V 哥。 使用 Mate 70有一段时间了,系统的丝滑使用起来那是爽得不要不要的,随着越来越多的应用适配,目前使用起来已经和4.3的兼容版本功能差异无碍了,还有些纯血鸿蒙独特的能力很是好用,比如&am…...
多行文本省略
方式1 兼容性不好 height: 100px; line-height: 25px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4;方式2 利用浮动环绕、空白元素站位margin-top调整位置 <div class"wrap"><div class"more"…...
Adobe卸载清理工具Creative Cloud Cleaner Tool下载
Adobe Creative Cloud Cleaner Tool 是 Adobe 公司官方推出的一款卸载清理工具,主要用于清理 Creative Cloud 应用程序在安装、更新或卸载过程中可能遗留下来的错误配置文件、缓存、注册表项或其他系统级残留内容。相比一般的卸载程序,它更深入地处理系统…...
分布式、高并发-Day03
以下是 Day 3 详细学习内容(线程池拒绝策略实战:DiscardOldestPolicy与CallerRunsPolicy,30 分钟完整计划),包含策略原理、分步代码实战和场景解析: 📖 今日学习目标 掌握DiscardOldestPolicy…...
高等数学第四章---不定积分(4.4有理函数的不定积分2)
&4.4有理函数的不定积分2 篇幅有限制,例题的解答会占大量字符,html限制字符为22000个左右。这里继续探讨上文的有理函数的不定积分。 一、三角函数有理式的不定积分 由 sin x \sin x sinx, cos x \cos x cosx 以及常数经过有限次加、减、…...
C++中指针使用详解(4)指针的高级应用汇总
C 中指针的高级应用非常丰富,掌握这些内容能让你写出更高性能、更底层控制力强的代码。下面是应用模块梳理和例子讲解。 目录预览 函数指针与回调机制指针数组 vs 数组指针指针与类成员函数(成员函数指针)智能指针(unique_ptr, s…...
Java 8 非对称加密代码示例
以下是使用Java 8实现RSA非对称加密的完整代码示例,包括密钥生成、加密和解密过程。 1. 生成RSA密钥对 import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; impor…...
Linux环境基础与开发工具使用
1. Linux编译器vim 1.1 vim的基本概念讲解 vim有很多种模式,我们初学者常用的就是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。 命令/正常模式(Normal mode) …...
【BUG】‘DetDataSample‘ object has no attribute ‘_gt_sem_seg‘
问题: 使用mmdetection框架使用COCO格式训练自定义数据集时,其中模型使用HTC模型时出现如下问题: AttributeError: ‘DetDataSample’ object has no attribute ‘_gt_sem_seg’. Did you mean: ‘gt_sem_seg’? results self(**data, mode…...
C# Winforms 本地化 多语言支持 字符串资源
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
ts bug 找不到模块或相应类型的声明,@符有红色波浪线
解决方法:在env.d.ts文件中添加以下代码,这段代码是一个 TypeScript 的声明文件,用于让 TypeScript 知道如何处理 Vue 单文件组件(.vue 文件)的导入。 /// <reference types"vite/client" /> // 声明…...
赛灵思 XCZU11EG-2FFVC1760I XilinxFPGAZynq UltraScale+ MPSoC EG
XCZU11EG-2FFVC1760I 是 Zynq UltraScale MPSoC EG 系列中性能最强的器件之一,集成了四核 ARM Cortex-A53 应用处理器、双核 Cortex-R5 实时处理器与 Mali-400 MP2 GPU,并结合了 653,100 个逻辑单元与丰富的片上存储资源,可满足高性能计算、A…...
VSCode|IDEA|PyCharm无缝接入DeepSeek R1实现AI编程
文章目录 前言一、流程简介1. 获取DeepSeek R1的API密钥2. 在编程软件中下载安装 Continue 插件**IDEA**PyCharm 3. 配置Continue文件 二、使用体验利用 DeepSeek R1进行 AI 编程 前言 本文将介绍如何在 VSCode|IDEA|PyCharm 软件中接入 DeepSeek R1 实现 AI 编程,…...
深入浅出 PostgreSQL:从历史演进到高阶优化技术
引言 PostgreSQL 是一个免费开源的对象关系型数据库,既支持传统的 SQL 查询,也支持 JSON 等非关系数据类型,因其高度可扩展性和社区活跃度,已成为众多互联网、金融和企业级应用的首选数据库 (Introduction to PostgreSQL - W3Sch…...
塔能水泵节能方案:精准驱动工厂能耗优化
在工厂的能源消耗体系中,水泵作为关键的动力设备,其运行效率直接关系到整体能耗水平。传统水泵在长期运行中,受设计局限、工艺成本约束等因素影响,普遍存在效率低下、能源浪费严重的问题。塔能科技针对这一痛点,推出了…...
SSCLMD模型代码实现详解
SSCLMD模型代码实现详解 1. 项目源码结构 SSCLMD项目的源码结构如下: SSCLMD-main/ ├── README.md ├── ST4.xlsx ├── Supplementary File.docx ├── code/ │ ├── calculating_similarity.py │ ├── data_preparation.py │ ├── data_…...
【coze】故事卡片(图片、音频、文字)
【coze】故事卡片(图片、音频、文字) 1、创建智能体2、添加人设与回复逻辑3、添加工作流(1)创建工作流(2)添加大模型节点(3)添加提示词优化节点(4)添加豆包图…...
限免开关实施版本保护措施,保证项目灰度发布安全
迭代用户限免权限校验业务 新增限免开关实现普通用户权益更新,实施版本保护措施,保证项目灰度发布安全; // 是否展示限免标识 func (t *BasePrivilegeService) IsPromotionFree(p consumParams) bool {// 限免开关isFreeUseOpen : p.cfg.Vip…...
C#中从本地(两个路径文件夹)中实时拿图显示到窗口中并接收(两个tcp发送的信号)转为字符串显示在窗体中实现检测可视化
多窗口源码 C#中从本地(两个路径文件夹)中实时拿图显示到窗口中并接收(两个tcp发送的信号)转为字符串显示在窗体中实现检测可视化资源-CSDN文库 读图结果展示 字符串结果展示 利用TCP调试工具创建两个tcp 再次启动程序 就链接…...
了解一下OceanBase中的表分区
OceanBase 是一个高性能的分布式关系型数据库,它支持 SQL 标准的大部分功能,包括分区表。分区表可以帮助管理大量数据,提高查询效率,通过将数据分散到不同的物理段中,可以减少查询时的数据扫描量。 在 OceanBase 中操…...
生成了一个AI算法
import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms # 1. 数据预处理 transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,)) # MNIST单通道归一化 ]) train_da…...
C# 使用SunnyUI控件 (VS 2019)
前言:建议下载源码,源码中包含了各种控件的用法案例。 下载 帮助文档: 文档预览 - Gitee.comGitee: SunnyUI: SunnyUI.NET 是基于.NET Framework 4.0、.NET8、.NET9 框架的 C# WinForm UI、开源控件库、工具类库、扩展类库、多页面开发框架。GitHub: h…...
在 Win11 下安装 Wireshark 的详细步骤
目录 一、了解 Wireshark1. 作用和功能2. 使用步骤 二、下载安装包三、运行安装包四、使用 Wireshark1. 抓包2. 窗口介绍3. 过滤器(显示 / 捕获过滤器)4. 保存过滤后的报文1)显示过滤器表达式2)过滤表达式的规则 5. 封包列表6. 封…...
【AI提示词】六顶思考帽工具专家
提示说明 提供专业的六顶思考帽工具应用服务,帮助用户从多角度进行创新性问题解决。 提示词 # Role: 六顶思考帽工具专家## Profile - language: 中文 - description: 提供专业的六顶思考帽工具应用服务,帮助用户从多角度进行创新性问题解决 - backgr…...
解锁RAG:AI 2.0时代的“知识外挂”是如何炼成的?
——从原理到实战,揭秘检索增强生成如何颠覆传统AI 引言:当AI学会“开卷考试” 如果传统大模型是“闭卷学霸”,那RAG(Retrieval-Augmented Generation,检索增强生成)就是那个考试时带着“百科全书”的超级…...
使用 ANSYS SIwave 求解器在 ANSYS AEDT 中预测串行通道性能并生成眼图
PCB 仿真 如今,无线射频设备日益复杂,对大型复杂 PCB 设计进行准确、高效仿真的需求也随之增加。在设计流程的早期识别和预测潜在问题可以节省资源、时间和金钱。SIwave 可帮助您对现代高性能电子产品中典型的高速通道和完整的输电系统进行建模、仿真和…...
启发式算法-模拟退火算法
模拟退火算法是一种基于概率的启发式优化算法,用于解决大规模组合优化问题,其灵感来源于金属退火过程中的物理现象。其基本原理是从一个初始解开始,然后在当前解的邻域内随机生成一个新解,如果新解的目标函数值优于当前解…...
机器视觉框架源码——解读3(常用的资源和样式)
这是关于框架解读的第三篇文章,将结合理论和框架代码进行讲解。 WPF中的各类工件元素,都可以设置其样式,如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Backgroud) 字体颜色(Foreground) 边距(Margin) 水平位置(HorizontalAlignment) 垂直位置(VerticalAlignment) 而样…...
勒索病毒肆虐时代:数据库加密存储的实践指南
在2025年第一季度,全球勒索攻击损失突破150亿美元,某跨国制造企业因数据库未加密被勒索3000枚比特币,某省级医保系统遭攻击导致参保人信息泄露……当医疗数据、金融资产、知识产权成为黑客的提款机,数据库加密已从技术选项升级为生…...
next中的server comonent中如何共享session
在 Next.js 的服务器组件(Server Components)里共享会话(session),可以借助第三方库(如 next-auth 或 express-session 结合自定义 API 路由)来实现,下面为你详细介绍这两种常见的实…...
Desfire Ev1\Ev2\Ev3卡DES\3K3DES\AES加解密读写VB.Net示例源码
本示例使用发卡器:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.1d292c1bSxJTb6&ftt&id917152255720 Public Class Form1Public Declare Function pcdbeep Lib "OUR_MIFARE.dll" (ByVal xms As Integer) As BytePublic Declare Fu…...
商业实战将归巢网内容构建为本地RAG模型的完整指南01-优雅草卓伊凡
商业实战将归巢网内容构建为本地RAG模型的完整指南01-优雅草卓伊凡 今天卓伊凡收到了老客户归巢网关于对本地RAG模型建立的咨询,这点也让卓伊凡得深入研究下,毕竟老客户肯定不是说着玩的,主要最终实现目的是建立模型开始使用AI智能问答。 一…...
langchain4j整合springboot
环境介绍 JDK17Spring Boot: 3.0.2 创建springboot工程 IDEA新建一个springboot项目,使用Spring lnitializr快速构建。 选择Spring Boot: 3.0.2以及Spring Web依赖 添加maven依赖 创建完springboot项目之后,在pom中添加关键依赖 <properties&g…...
在线时间戳转换工具
给大家推荐一个在线时间戳转换工具 点击跳转-鸽鸽在线工具 这个工具除了时间戳转换,到首页还能选择使用很多其他小工具,欢迎使用...
Codeforces Round 1023 (Div. 2) (A-D)
每周至少五篇博客:(1/5) A. LRC and VIP 题意 您有一个大小 n n n 的数组 a a a - a 1 , a 2 , … a n a_1, a_2, \ldots a_n a1,a2,…an 。 您需要将 n n n 元素分为 2 2 2 序列 B B B 和 C C C ,以满足以下条件: 每个元素…...
[Survey]Remote Sensing Temporal Vision-Language Models: A Comprehensive Survey
BaseInfo TitleRemote Sensing Temporal Vision-Language Models: A Comprehensive SurveyAdresshttps://arxiv.org/abs/2412.02573Journal/Time2024 arxivAuthor北航 上海AI LabCodehttps://github.com/Chen-Yang-Liu/Awesome-RS-Temporal-VLM 1. Introduction 传统遥感局限…...
Linux56 YUM源配置
epel未启动 显示系统未通过注册 配置YUM仓库 本地YUM仓库 1.备份 tar -zcf repo.tar.gz *.repo 2.挂载 mount -o ro /dev/sr0 /mnt 3.开机自启 chmod x /etc/rc.local echo ‘mount -o ro /dec/sr0 /mnt’ /etc/rc.local 4.编写本地YUM仓库 local.repo [local] namelocal yum …...
mysql 如何查询数据库链接日志
1,查看是否开启日志 SHOW GLOBAL VARIABLES LIKE general_log; -- 查看是否开启通用查询日志(包括连接记录) 1.1,假如没开启,可以临时开启,做测试;服务重启,配置失效…...