# 微服务平台(后端)
版本选择:
Spring Boot: 2.5.7
Spring Cloud:2020.0.5
- Spring Cloud gateway: 3.0.6
 - Spring cloud Eureka: 3.0.5
 
# 1. Eureka-Server 配置
引入依赖:
<dependencies> | |
    <dependency> | |
<groupId>org.springframework.cloud</groupId>  | |
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>  | |
    </dependency> | |
</dependencies> | 
application.yml 文件:
spring:  | |
application:  | |
name: guan-service-register  | |
server:  | |
port: 8888  | |
eureka:  | |
instance:  | |
hostname: 127.0.0.1  | |
client:  | |
register-with-eureka: false  | |
fetch-registry: false  | |
serviceUrl:  | |
defaultZone: http://localhost:${server.port}/eureka/  | 
启动类:
import org.springframework.boot.SpringApplication;  | |
import org.springframework.boot.autoconfigure.SpringBootApplication;  | |
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;  | |
@SpringBootApplication | |
@EnableEurekaServer | |
public class ServiceRegisterApplication {  | |
public static void main(String[] args) {  | |
SpringApplication.run(ServiceRegisterApplication.class, args);  | |
    } | |
} | 
# 2. gateway 配置
引入 maven 依赖:
<dependencies> | |
    <dependency> | |
<groupId>org.springframework.cloud</groupId>  | |
<artifactId>spring-cloud-starter-gateway</artifactId>  | |
    </dependency> | |
    <dependency> | |
<groupId>org.springframework.cloud</groupId>  | |
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  | |
    </dependency> | |
    <!--actuator 监控 --> | |
    <dependency> | |
<groupId>org.springframework.boot</groupId>  | |
<artifactId>spring-boot-starter-actuator</artifactId>  | |
    </dependency> | |
</dependencies> | 
application.yml 文件:
server:  | |
port: 9000  | |
spring:  | |
application:  | |
name: guan-gateway  | |
cloud:  | |
gateway:  | |
discovery:  | |
locator:  | |
enabled: true  | |
lower-case-service-id: true  | |
      # 配置路由 | |
routes:  | |
- id: oauth  | |
uri: lb://guan-auth  | |
predicates:  | |
- Path=/auth-api/**  | |
filters:  | |
- StripPrefix=1 # 跳过 1 级前缀,访问会映射到 lb://guan-auth/**  | |
logging:  | |
pattern:  | |
dateformat: HH:mm:ss.SSS  | |
eureka:  | |
instance:  | |
prefer-ip-address: true  | |
instance-id: ${spring.cloud.client.ip-address}:${server.port}  | |
client:  | |
service-url:  | |
defaultZone: http://127.0.0.1:8888/eureka/  | |
# 开放所有页面节点,默认只开启 health、info 两个节点 | |
management:  | |
endpoints:  | |
web:  | |
exposure:  | |
include: '*'  | 
启动类:
import org.springframework.boot.SpringApplication;  | |
import org.springframework.boot.autoconfigure.SpringBootApplication;  | |
@SpringBootApplication | |
public class GatewayApplication {  | |
public static void main(String[] args) {  | |
SpringApplication.run(GatewayApplication.class, args);  | |
    } | |
} | 
# 3. 引入服务类
以 guan-auth 为例
maven 依赖:
<dependencies> | |
    <dependency> | |
<groupId>org.springframework.boot</groupId>  | |
<artifactId>spring-boot-starter-web</artifactId>  | |
    </dependency> | |
    <dependency> | |
<groupId>mysql</groupId>  | |
<artifactId>mysql-connector-java</artifactId>  | |
    </dependency> | |
    <dependency> | |
<groupId>com.baomidou</groupId>  | |
<artifactId>mybatis-plus-boot-starter</artifactId>  | |
    </dependency> | |
    <dependency> | |
<groupId>edu.dublbo.platform</groupId>  | |
<artifactId>guan-common</artifactId>  | |
    </dependency> | |
    <dependency> | |
<groupId>org.springframework.cloud</groupId>  | |
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  | |
    </dependency> | |
</dependencies> | 
application.yml 配置文件:
# 服务启动的端口 | |
server:  | |
port: 8000  | |
spring:  | |
application:  | |
name: guan-auth  | |
logging:  | |
pattern:  | |
console: '%d{HH:mm:ss.SSS,CTT} %level (%file:%line\)- %m%n'  | |
eureka:  | |
instance:  | |
prefer-ip-address: true  | |
instance-id: ${spring.cloud.client.ip-address}:${server.port}  | |
client:  | |
    # 注册到 Eureka 的注册中心 | |
#    register-with-eureka: true | |
    # 获取注册实例列表 | |
#    fetch-registry: true | |
service-url:  | |
      # 配置注册中心地址 | |
defaultZone: http://127.0.0.1:8888/eureka  | 
启动类:
import org.mybatis.spring.annotation.MapperScan;  | |
import org.springframework.boot.SpringApplication;  | |
import org.springframework.boot.autoconfigure.SpringBootApplication;  | |
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;  | |
@SpringBootApplication | |
@EnableEurekaClient | |
public class GuanAuthApplication {  | |
public static void main(String[] args) {  | |
SpringApplication.run(GuanAuthApplication.class, args);  | |
    } | |
} | 
# 4. 测试
访问 auth 服务:
- 通过 path 访问:localhost:9000/auth-api/auth 服务接口 url
 - 通过 spring.application.name 访问:localhost:9000/guan-auth/auth 服务接口 url