版本说明:
springboot:2.2.2.RELEASE
jdk:1.8
由于使用的是springCloud的eureka,会存在springboot和springcloud版本不兼容
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
1.创建Eureka 注册中心
导入eureka 依赖包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
application.yml文件配置
server:port:3000
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
serviceUrl:
default-zone: http://${eureka.instance.hostname}:${server.port}/eureka
server:
eviction-interval-timer-in-ms: 5000
在启动类上加上@EnableEurekaServer注解
启动服务后访问:http://localhost:3000/eureka ,可以看到
由于还没有客户端注册进来,所以这里是空的
2.Zuul网关服务
添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
application.yml
eureka:
instance:
instance_id: gateway
client:
service-url:
defaultZone: http://localhost:3000/eureka/
配置服务路由地址 application.properties 文件
server.port=8080
spring.application.name=gateway
#所有以/a/**开头的服务会进到demoA服务
zuul.routes.demoA.path=/a/**
zuul.routes.demoA.serviceId=demoA
zuul.routes.demoA.stripPrefix=false
#同上
zuul.routes.demoC.path=/c/**
zuul.routes.demoC.serviceId=demoC
zuul.routes.demoC.stripPrefix=false
zuul.host.connect-timeout-millis=4000
zuul.host.socket-timeout-millis=2000
启动类上加入一**解
@EnableZuulProxy
@EnableEurekaClient
3.创建客户端demoA和demoC
添加依赖pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
application.yml文件
server:port:8081
spring.application.name:demoA
eureka:
instance:
instance-id: ${spring.cloud.client.hostname}:${server.port}
client:
service-url:
defaultZone: http://localhost:3000/eureka/
在启动类上添加@EnableEurekaClient注解
创建controller
@RestController
@RequestMapping
public class AController {
@GetMapping("/testA")
public void test(){
System.err.println("demoA");
}
}
创建和demoA一样的demoC
demoC端口8082
4个服务都启动后
通过
http://localhost:8080/a/testA 就可以请求到demoA中的接口了
同理demoC ,http://localhost:8080/c/testC
项目demo地址:https://download.csdn.net/download/u010290208/12657119
初次搭建,各位大佬多指教