最新版微服务项目搭建
一,项目总体介绍
在本项目中,我将使用alibabba的 nacos 作为项目的注册中心,使用 spring cloud gateway 做为项目的网关,用 openfeign 作为服务间的调用组件。
项目总体架构图如下:

注意:我的Java环境是17,下面的pom 中默认的是1.8,大家可以自己修改一下
在这里我使用了mysql 的主从复制,当然你怎么用都可以,取决于你的项目,或者使用 canal 更加方便,当然后续我也会使用canal同步数据,解决缓存一致性问题,nginx这里我会使用openresty,至于介绍和安装请看 openresty安装
1.1、组件介绍、安装
nacos:
1.1.1、介绍:
- 动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。
- 动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。
- 配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。
- Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助您管理所有的服务和应用的配置。
- Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。(官网介绍)地址:官网
1.1.2、安装: 这里使用 docker 安装 (docker 不会安装的看我“微服务监控”第五章)
1.1.2.1、docker 镜像拉取
docker pull nacos/nacos-server
1.1.2.2、创建挂载目录
mkdir -p /mydata/nacos/logs/ #新建logs目录mkdir -p /mydata/nacos/conf/ #新建conf目录
1.1.2.3、启动容器(拷贝文件)
docker run -p 8848:8848 --name nacos -d nacos/nacos-server
复制文件
docker cp nacos:/home/nacos/logs/ /mydata/nacos/docker cp nacos:/home/nacos/conf/ /mydata/nacos/
删除容器
docker rm -f nacos
1.1.2.4、mysql 中创建 nacos 所需要的库 nacos-config(随意)
在拷贝的 conf 文件夹下会有 mysql 的 sql 文件,执行一下就 OK 了
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849--privileged=true -e JVM_XMS=1g -e JVM_XMX=2g -e MODE=standalone-v /mydata/nacos/logs/:/home/nacos/logs -v /mydata/nacos/conf/:/home/nacos/conf/--restart=always nacos/nacos-server
参数介绍:
1、docker run -d : 启动容器 -d是后台启动并返回容器id的意思
2、–name nacos :为容器指定一个名称
3、-p 8848:8848 -p 9848:9848 -p 9849:9849 : 指定端口映射,注意这里的p不能大写,大写是随机端口映射
4、–privileged=true : 扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,可能会出现cannot open directory
5、-e JVM_XMS=1g : 为jvm启动时分配的内存
6、-e JVM_XMX=2g : 为jvm运行过程中分配的最大内存
7、-e MODE=standalone : 使用 standalone模式(单机模式),MODE值有cluster(集群)模式/standalone模式两种,MODE必须大写
8、-v /mydata/nacos/logs/:/home/nacos/logs : 将容器的/home/nacos/logs目录挂载到 /mydata/nacos/logs
9、-v /mydata/nacos/conf/:/home/nacos/conf/: 将容器的/home/nacos/conf目录挂载到 /mydata/nacos/conf
10、–restart=always :重启docker时,自动启动相关容器
注意:开放端口 8848 9848 9849
1.1.2.4、修改配置文件(宿主机)
vim /mydata/nacos/conf/application.properties
spring.datasource.platform=mysqldb.num=1db.url.0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTCdb.user=rootdb.password=root
重启 nacos 容器
docker restart nacos
安装 nacos 搞定!!!
其他组件在使用到时会介绍
二、项目创建
2.1、在 idea 中创建一个 spring 项目,删除 src 作为聚合目录,这个就不过多赘述
接下来看 pom 文件的配置
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.siyu</groupId><artifactId>study</artifactId><version>0.0.1-SNAPSHOT</version><name>study</name><!--描述--><description>study</description><!-- 子模块 这里你有那些子模块就有那些 moudle--><modules><module>common-api</module><module>common-utils</module><module>service</module><module>gateway</module></modules><!-- 打包方式--><packaging>pom</packaging><!-- 属性配置 spring boot spring cloud spring cloud alibaba 版本一定要兼容,否则会失败--><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>3.0.2</spring-boot.version><spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version><spring-cloud.version>2022.0.0</spring-cloud.version></properties><!--包管理--><dependencyManagement><dependencies><!-- spring boot 版本管理 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!-- spring cloud alibaba 版本管理 --><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><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><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.siyu.StudyApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
2.2、版本对应详情
在这里我给出版本对应截图,一定要版本对应哦,不然不兼容会报错



2.3、创建二级聚合模块
创建子模块 file ——> new ——> Module——> spring 脚手架创建就可以(创建完成后你可以删掉 src作为二级聚合)
子模块创建完毕后,我们看一下pom(我这里做了二级聚合),在这里贴一下我的项目结构如图

首先我们看看sercvie 的 pom
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.siyu</groupId><artifactId>service</artifactId><version>0.0.1-SNAPSHOT</version><name>service</name><!--描述--><description>service</description><!--打包方式--><packaging>pom</packaging><!--子模块--><modules><module>user-service</module><module>homework-service</module><module>student-service</module></modules><!--父模块--><parent><groupId>com.siyu</groupId><artifactId>study</artifactId><version>0.0.1-SNAPSHOT</version></parent><!--版本--><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>3.0.2</spring-boot.version></properties><dependencies><!--spring boot web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--测试包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--Java 连接 mysql jar--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency><!--mybatis plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency><!--openfeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--nacos discovery--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><exclusions><exclusion><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></exclusion></exclusions></dependency><!--nacos config--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><exclusions><exclusion><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></exclusion></exclusions></dependency><!--nacos 客户端--><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>2.3.2</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.siyu.service.ServiceApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
2.4、创建子模块
创建过程和上面创建方式一样,不过多赘述。看看 user-service 的 pom
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.siyu</groupId><artifactId>user-service</artifactId><version>0.0.1-SNAPSHOT</version><name>user-service</name><!--描述--><description>user-service</description><!--父模块--><parent><groupId>com.siyu</groupId><artifactId>service</artifactId><version>0.0.1-SNAPSHOT</version></parent><!--版本--><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>3.0.2</spring-boot.version></properties><dependencies><!-- user-api 在common-api中,主要定义entity 和 feign接口 --><dependency><groupId>com.siyu</groupId><artifactId>user-api</artifactId><version>0.0.1-SNAPSHOT</version></dependency><!--common-utils 主要定义一些公共工具--><dependency><groupId>com.siyu</groupId><artifactId>common-utils</artifactId><version>0.0.1-SNAPSHOT</version><scope>compile</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.siyu.UserServiceApplication</mainClass><skip>false</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
看看 appliction.yml (后期会迁移到 nacos)
server:port: 8080
spring:config:import: "nacos:user-service.yaml" # nacos 中的配置文件application:name: user-service #服务名cloud:nacos:discovery:server-addr: ip:8848 #nacos地址config:server-addr: ip:8848import-check:enabled: falsefile-extension: yaml # nacos 配置文件类型datasource: # datasource 不过多解释driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://ip:33061/study?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=truepassword: rootusername: root
# mybatis plus 不过多解释
mybatis-plus:mapper-locations: classpath:/mapper/**/*.xmltype-aliases-package: com.siyu.entityglobal-config:db-config:id-type: autologic-delete-value: 1 # 逻辑已删除值(默认为 1)logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)configuration:map-underscore-to-camel-case: truecache-enabled: false
接下来看看启动类 UserServiceApplication.java
@EnableDiscoveryClient //启动服务发现(nacos)
@EnableFeignClients // 启动 openfeign
@SpringBootApplication
@MapperScan(basePackages = "com.siyu.mapper")
public class UserServiceApplication {public static void main(String[] args) {SpringApplication.run(UserServiceApplication.class, args);}}
2.5、创建common-api
创建过程一样,不做过多介绍(删掉启动类,这个模块不需要启动),一起看看 common-api 的目录结构

看看 common-api 的 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.siyu</groupId><artifactId>common-api</artifactId><version>0.0.1-SNAPSHOT</version><name>common-api</name><description>common-api</description><packaging>pom</packaging><parent><groupId>com.siyu</groupId><artifactId>study</artifactId><version>0.0.1-SNAPSHOT</version></parent><modules><module>user-api</module><module>homework-api</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-boot.version>3.0.2</spring-boot.version></properties><dependencies><dependency><groupId>com.siyu</groupId><artifactId>common-utils</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>
2.6、feign接口编写
创建 feign接口
package com.siyu.feign;import com.siyu.util.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;@FeignClient(name = "homework-service") //微服务服务名
public interface HomeWorkFeign {@GetMapping("homework/list") // 要访问的微服务路径和请求方式Result getHomeworkList(); // 方法名和返回结果
}
调用 feign 接口
@RestController
@RequestMapping("user")
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate HomeWorkFeign homeWorkFeign; // 导入feign 接口@GetMapping("/{id}")public Result<Object> getUserById(@PathVariable("id") Integer id){return Result.ok("查询成功",userService.getById(id));}@GetMapping("/list")public Result<Object> getUserById(){return Result.ok("查询成功",homeWorkFeign.getHomeworkList()); //调用feign 接口}
}
2.7、网关 gateway 模块
首先创建一个gateway模块 (要注意的是不要导入 spring boot we 包,具体原因就不解释了,自行了解)
看看 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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.siyu</groupId><artifactId>gateway</artifactId><version>0.0.1-SNAPSHOT</version><name>gateway</name><description>gateway</description><parent><groupId>com.siyu</groupId><artifactId>study</artifactId><version>0.0.1-SNAPSHOT</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>3.0.2</spring-boot.version></properties><dependencies><!--网关--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--服务注册与发现依赖--><dependency><groupId>com.alibaba.cloud </groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><exclusions><exclusion><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></exclusion></exclusions></dependency><!--nacos 客户端--><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>2.3.2</version></dependency><!--负载均衡--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.siyu.gateway.GatewayApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
</project>
看看 gateway 的 application.yml
server:port: 8088spring:application:name: gateway # 服务名称cloud:nacos:discovery:server-addr: ip:8848gateway:discovery:locator:enabled: falseroutes: # 网关路由配置- id: user-service # 路由id, 自定义,唯一即可uri: lb://user-service # 路由的目的地,lb是负载均衡,后面跟服务名称predicates: # 路由断言,也就是判断是否符合路由规则的条件- Path=/user-service/** # path 按照路径进行匹配,只要以/order-service/开头就符合规则filters:- StripPrefix=1 # 过滤器,去除请求的前缀路径,StripPrefix=1 表示去除请求路径的第一个路径片段- id: homework-serviceuri: lb://homework-servicepredicates:- Path=/homework-service/**filters:- StripPrefix=1
在注释里基本都有详细的解释,这里就不过多赘述
在这里我们给大家贴一张nacos的截图,服务注册列表

至此,项目搭建就完毕了!!!
相关文章:
最新版微服务项目搭建
一,项目总体介绍 在本项目中,我将使用alibabba的 nacos 作为项目的注册中心,使用 spring cloud gateway 做为项目的网关,用 openfeign 作为服务间的调用组件。 项目总体架构图如下: 注意:我的Java环境是17…...
spring揭秘19-spring事务01-事务抽象
文章目录 【README】【1】事务基本元素【1.1】事务分类 【2】java事务管理【2.1】基于java的局部事务管理【2.2】基于java的分布式事务管理【2.2.1】基于JTA的分布式事务管理【2.2.2】基于JCA的分布式事务管理 【2.3】java事务管理的问题 【3】spring事务抽象概述【3.1】spring…...
基于Matlab的图像去雾系统(四种方法)关于图像去雾的基本算法代码的集合,方法包括局部直方图均衡法、全部直方图均衡法、暗通道先验法、Retinex增强。
基于Matlab的图像去雾系统(四种方法) 关于图像去雾的基本算法代码的集合,方法包括局部直方图均衡法、全部直方图均衡法、暗通道先验法、Retinex增强。 所有代码整合到App designer编写的GUI界面中,包括导入图片,保存处…...
油猴插件录制请求,封装接口自动化参数
参考:如何使用油猴插件提高测试工作效率 一、背景 在酷家乐设计工具测试中,总会有许多高频且较繁琐的工作,比如: 查询插件版本:需要打开Chrome控制台,输入好几个命令然后过滤出版本信息。 查询模型商品&…...
循环购模式!结合引流和复购于一体的商业模型!
欢迎各位朋友,我是你们的电商策略顾问吴军。今天,我将向大家介绍一种新颖的商业模式——循环购模式,它将如何改变我们的消费和收益方式。你是否好奇,为何商家会提供如此慷慨的优惠?消费一千元,不仅能够得到…...
Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧
Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用&…...
c中 int 和 unsigned int
c语言中,char、short、int、int64以及unsigned char、unsigned short、unsigned int、unsigned int64等等类型都可以表示整数。但是他们表示整数的位数不同,比如:char/unisigned char表示8位整数; short/unsigned short表示16位整…...
sheng的学习笔记-AI-话题模型(topic model),LDA模型,Unigram Model,pLSA Model
AI目录:sheng的学习笔记-AI目录-CSDN博客 基础知识 什么是话题模型(topic model) 话题模型(topic model)是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合),在信息检索、自然语言处理等领域有广泛应用…...
html 页面引入 vue 组件之 http-vue-loader.js
一、http-vue-loader.js http-vue-loader.js 是一个 Vue 单文件组件加载器,可以让我们在传统的 HTML 页面中使用 Vue 单文件组件,而不必依赖 Node.js 等其他构建工具。它内置了 Vue.js 和样式加载器,并能自动解析 Vue 单文件组件中的所有内容…...
html+css网页设计 旅行 蜘蛛旅行社3个页面
htmlcss网页设计 旅行 蜘蛛旅行社3个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…...
考拉悠然产品发布会丨以悠然远智全模态AI应用平台探索AI行业应用
9月6日,成都市大模型新技术新成果发布暨供需对接系列活动——考拉悠然专场,在成都市高新区菁蓉汇盛大举行。考拉悠然重磅发布了悠然远智丨全模态AI应用平台,并精彩展示了交通大模型应用——智析快处等最新的AI产品和技术成果。 在四川省科学…...
LLM大模型学习:揭秘LLM应用构建:探究文本加载器的必要性及在LangChain中的运用
构建 LLM 应用为什么需要文本加载器,langchain 中如何使用文本加载器? 在不同的应用场景中需要使用不同的文本内容作为内容的载体,针对不同的类型的文本,langchain 提供了多种文本加载器来帮助我们快速的将文本切片,从…...
Flutter函数
在Dart中,函数为 一等公民,可以作为参数对象传递,也可以作为返回值返回。 函数定义 // 返回值 (可以不写返回值,但建议写)、函数名、参数列表 showMessage(String message) {//函数体print(message); }void showMessage(String m…...
P3565 [POI2014] HOT-Hotels
~~~~~ P3565 [POI2014] HOT-Hotels ~~~~~ 总题单链接 思路 ~~~~~ 设 g [ u ] [ i ] g[u][i] g[u][i] 表示在 u u u 的子树内,距离 u u u 为 i i i 的点的个数。 ~~~~~ 设 d p [ u ] [ i ] dp[u][i] dp[u][i] 表示: u u u 的子树内存在两个点 x , …...
设计模式 | 单例模式
定义 单例设计模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。这种模式常用于需要控制对某些资源的访问的场景,例如数据库连接、日志记录等。 单例模式涉…...
Web安全之CSRF攻击详解与防护
在互联网应用中,安全性问题是开发者必须时刻关注的核心内容之一。跨站请求伪造(Cross-Site Request Forgery, CSRF),是一种常见的Web安全漏洞。通过CSRF攻击,黑客可以冒用受害者的身份,发送恶意请求&#x…...
IDEA运行Java程序提示“java: 警告: 源发行版 11 需要目标发行版 11”
遇到这个提示一般是在pom.xml中已经指定了构建的Java版本环境是11例如(此时添加了build插件的情况下虽然不能直接运行代码但是maven是可以正常打包构建): <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><…...
车载测试| 汽车的五域架构 (含线控技术知识)
汽车的五域架构是一种将汽车电子控制系统按照功能进行划分的架构模式,主要包括动力域、底盘域、座舱域、自动驾驶域和车身域。(汽车三域架构通常是指将汽车电子系统划分为三个主要领域:动力域、底盘域和智能座舱域(或车身舒适域&a…...
【Linux】gcc/g++ 、make/Makefile、git、gdb 的使用
目录 1. Linux编译器-gcc/g1.1 编译器gcc/g的工作步骤1.2 函数库1.2.1 函数库的作用及分类1.2.2 动态链接和静态链接1.2.3 动态库和静态库的优缺点 1.3 gcc选项 2. Linux项目自动化构建工具-make/Makefile2.1 .PHONY2.2 尝试编写进度条程序 3. git3.1 安装 git3.2 下载项目到本…...
Elastic Stack--ES的DSL语句查询
前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 学习B站博主教程笔记: 最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—Elastic…...
在Node.js后端服务中集成Taotoken调用多种大模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Node.js后端服务中集成Taotoken调用多种大模型 对于Node.js后端开发者而言,将大模型能力集成到Express、Koa或Fastif…...
统信UOS 1060在龙芯3A6000上的性能初探:办公、开发、CAD软件实测,它现在能当主力机了吗?
龙芯3A6000与统信UOS 1060生产力实测:国产组合能否扛起工作大旗?当国产处理器遇上国产操作系统,会碰撞出怎样的火花?龙芯3A6000作为国产CPU的新锐力量,搭配统信UOS 1060操作系统,这套组合在技术圈引发了广泛…...
物理视角下的神经网络:从表达性、统计到动力学的统一理解框架
1. 从物理视角看神经网络:为什么我们需要新的理解框架 如果你和我一样,在实验室里泡了十几年,从早期的多层感知机一路跟到现在的Transformer和扩散模型,你可能会有一个强烈的感受:我们手里的工具越来越强大,…...
DeepSeek V4价格打骨折,宁王京东网易抢着入场,梁文锋:目标是AGI
听雨 发自 凹非寺量子位 | 公众号 QbitAI同一天,DeepSeek又发生两件大事。一边,DeepSeek-V4-Pro API宣布永久降价。从 6月1日起,V4 Pro的API价格将正式调整为当前促销价,不再恢复原价。另一边,The Information爆料&…...
B物理反常的全局拟合:有效场论与机器学习解析新物理信号
1. 项目概述:当B介子衰变“不听话”时,我们如何用数学语言寻找新物理?在粒子物理的精密前沿,标准模型(Standard Model, SM)一直是我们理解微观世界最成功的理论框架。然而,物理学家们从未停止过…...
PCA降维技术解析椭圆曲线Tate-Shafarevich群的数据模式
1. 项目概述:当数论遇到机器学习 作为一名长期在数论和计算数学交叉领域摸索的研究者,我常常思考一个问题:那些深奥的代数几何对象,比如椭圆曲线的Tate-Shafarevich群,其复杂的行为能否被现代的数据科学工具所“看见”…...
小电视空降助手:终极B站广告跳过插件完整指南
小电视空降助手:终极B站广告跳过插件完整指南 【免费下载链接】BilibiliSponsorBlock 一款跳过小电视视频中恰饭片段的浏览器插件,移植自 SponsorBlock。A browser extension to skip sponsored segments in videos, ported from the SponsorBlock 项目…...
Linux内核安全模块深入剖析【2.5】
10.2.2 域间转换同 Tomoyo 一样, AppArmor 的强制访问控制机制是基于文件路径的。在 AppArmor 中的域主要是由进程所执行的文件的路径决定的。 Tomoyo 会不厌其烦地将进程以及进程的祖先所执行过的文件的路径都记录在进程的域中。 AppArmor 不同,它只会将…...
云原生监控体系建设:打造全方位的可观测性平台
云原生监控体系建设:打造全方位的可观测性平台 引言 在云原生时代,监控是保障系统稳定运行的关键。一个完善的监控体系可以帮助我们及时发现问题、定位问题、解决问题。 今天就来分享一下云原生监控体系的建设经验。 监控体系概述 可观测性三支柱 监控体…...
五轴联动机床:什么叫真正做出来了,什么叫组装贴牌
机床厂的数量从来不是问题。打开任何一份机床企业名录,数以千计的厂商密密麻麻排在那里,官网上都写着"五轴联动"“高精度数控”“航空级加工”。但做五轴联动整机与自主数控系统的工厂,放到整个行业里只是极小的一部分;…...
