Compare commits

...

1 Commits

Author SHA1 Message Date
liukai
f08e4faa15 搭建微服务注册到eureka 2025-10-20 17:30:39 +08:00
6 changed files with 153 additions and 42 deletions

61
pom.xml
View File

@@ -3,20 +3,18 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 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> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>com.ai</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-ai-parent</artifactId>
<version>3.5.5</version> <version>1.0.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>com.ai</groupId> <artifactId>spring-ai-app</artifactId>
<artifactId>spring_ai_app</artifactId> <version>1.0.1</version>
<version>1.0.0</version> <name>spring-ai-app</name>
<name>spring_ai_app</name> <description>spring-ai-app</description>
<description>spring_ai_app</description>
<properties> <properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<java.version>21</java.version> <java.version>21</java.version>
<!-- spring ai 正式版-->
<spring.ai.bom>1.0.1</spring.ai.bom>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
@@ -24,6 +22,16 @@
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
@@ -43,66 +51,35 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId> <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.10.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId> <artifactId>mybatis-plus-generator</artifactId>
<version>3.5.5</version>
</dependency> </dependency>
<!-- 数据库驱动 --> <!-- 数据库驱动 -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
<version>3.18.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
<dependencyManagement>
<dependencies>
<!-- spring ai 版本管理-->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring.ai.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 阿里百炼版本管理-->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-bom</artifactId>
<version>1.0.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>

View File

@@ -3,7 +3,11 @@ package com.ai.app;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableDiscoveryClient
@EnableTransactionManagement
@SpringBootApplication @SpringBootApplication
@MapperScan(basePackages = "com.ai.app.mapper") @MapperScan(basePackages = "com.ai.app.mapper")
public class SpringAiAppApplication { public class SpringAiAppApplication {

View File

@@ -0,0 +1,18 @@
# 服务注册配置
eureka:
instance:
# 设置实例ID
instance-id: ${spring.cloud.client.ip-address}:${server.port}:@project.version@
# 使用IP进行服务注册
prefer-ip-address: true
metadata-map:
management:
# 设置健康检查接口的访问路径
context-path: ${server.servlet.context-path}/actuator
client:
service-url:
# Eureka服务端注册地址多个地址以逗号分隔
defaultZone: http://139.224.53.200:8000/register/eureka
# 日志配置
logging:
config: classpath:env/dev/logback-spring-dev.xml

View File

@@ -0,0 +1,19 @@
# 服务注册配置
eureka:
instance:
# 设置实例ID
instance-id: ${eureka.instance.ip-address}:${server.port}:@project.version@
# 使用IP进行服务注册
prefer-ip-address: true
ip-address: 139.224.53.200
metadata-map:
management:
# 设置健康检查接口的访问路径
context-path: ${server.servlet.context-path}/actuator
client:
service-url:
# Eureka服务端注册地址多个地址以逗号分隔
defaultZone: http://139.224.53.200:8000/register/eureka
# 日志配置
logging:
config: classpath:env/test/logback-spring-test.xml

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- debug设置为true将打印出logback内部日志信息实时查看logback运行状态。默认值为false。-->
<!-- scan设置为true时配置文件如果发生改变将会被重新加载默认值为true。-->
<!-- scanPeriod设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。
当scan为true时此属性生效。默认的时间间隔为1分钟。-->
<configuration debug="false">
<!-- ConsoleAppender把日志输出到控制台 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 默认情况下,每个日志事件都会立即刷新到基础输出流。-->
<!-- 这种默认方法更安全因为如果应用程序在没有正常关闭appender的情况下退出则日志事件会丢失。 -->
<!-- 但是为了显着增加日志记录吞吐量可以将immediateFlush属性设置为false -->
<immediateFlush>true</immediateFlush>
<encoder>
<!-- %37():如果字符没有37个字符长度,则左侧用空格补齐 -->
<!-- %-37():如果字符没有37个字符长度,则右侧用空格补齐 -->
<!-- %15.15():如果记录的线程字符长度小于15(第一个)则用空格在左侧补齐,如果字符长度大于15(第二个),则从开头开始截断多余的字符 -->
<!-- %-40.40():如果记录的logger字符长度小于40(第一个)则用空格在右侧补齐,如果字符长度大于40(第二个),则从开头开始截断多余的字符 -->
<!-- %msg日志打印详情 -->
<!-- %n:换行符 -->
<!-- %highlight():转换说明符以粗体红色显示其级别为ERROR的事件红色为WARNBLUE为INFO以及其他级别的默认颜色。 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) --- [%15.15(%thread)] %cyan(%-40.40(%logger{40})) : %msg%n</pattern>
<!-- 控制台也要使用UTF-8不要使用GBK否则会中文乱码 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- root记录器如果没有设置其他记录器默认都按照根记录器的配置输出 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
<!-- 指定项目中某个包日志输出规则 -->
<!-- 级别依次为【从高到低】FATAL > ERROR > WARN > INFO > DEBUG > TRACE -->
<!-- additivity设置成false表示不叠加输出到更高层次的记录器中否则会重复打印 -->
<logger name="com.ai" level="DEBUG" additivity="true" />
<logger name="com.ai.app.mapper" level="TRACE" additivity="true" />
<logger name="org.mybatis" level="DEBUG" additivity="true" />
<logger name="org.springframework.web.servlet.DispatcherServlet" level="DEBUG" additivity="true" />
<logger name="org.springframework.cloud.sleuth" level="DEBUG" additivity="true" />
</configuration>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- warn日志-->
<appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<immediateFlush>true</immediateFlush>
<File>logs/info_log.log</File>
<append>true</append>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/%d/info_log.%d.%i.log</fileNamePattern>
<maxHistory>7</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
<maxFileSize>10MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%15.15(%thread)] %-40.40(%logger{40}) : %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- error日志-->
<appender name="error_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<immediateFlush>true</immediateFlush>
<File>logs/error_log.log</File>
<append>true</append>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/%d/error_log.%d.%i.log</fileNamePattern>
<maxHistory>7</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
<maxFileSize>10MB</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level --- [%15.15(%thread)] %-40.40(%logger{40}) : %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="WARN">
<appender-ref ref="info_log" />
<appender-ref ref="error_log" />
</root>
<logger name="com.ai" level="INFO" additivity="true" />
</configuration>