一、首先搭建一个eureka的注册中心:
1.在启动类上加上注解@EnableEurekaServer
2.在资源文件中配置注册中心 的一些配置
server.port=8888
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
这样注册中心就搭好了。
二、搭建一个普通的服务提供者,并将服务注册到注册中心
1.在服务提供的启动类上加上注解@EnableDiscoveryClient
2.然后在资源文件中配置自己的服务和连接注册中心的配置
server.port=9009
spring.application.name=ok
eureka.client.service-url.defaultZone=http://localhost:8888/eureka
服务名称是ok,端口号是9009
下面是发布的服务:访问返回ok
@RestController
public class Ctl {
@RequestMapping("/tts")
public String tts(){
return "ok";
}
}
两个都启动之后访问一下localhost:9009/tts,可以成功访问
三、然后在写Zuul路由器的服务
1.在建立项目的时候把zuul的依赖加上包括eureka的依赖,因为有它也需要注册到注册中心
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
2.建完项目之后在启动类上加上注解@EnableZuulProxy
1. 在资源文件中加上配置到注册中心的配置端口号是9008
server.port=9008
spring.application.name=zuulserver
eureka.client.service-url.defaultZone=http://localhost:8888/eureka
2.然后启动访问localhost:9008加上服务名称
3.可以看到这时候通过访问zuul路由访问到了9009注册的服务实现了路由
4.最后为了方便有时候服务的名称过长,为了统一管理可以在资源文件中加上一个配置:
zuul.routes.ok=/app/**
ok是服务的名称记得修改,后面是映射的路径,然后直接访问这个路径就可以
这个是加上配置重启之后访问的路径。