前言
zuul是做代理,路由,请求过滤的组件。他要和eureka结合使用,注入到eureka中。
1.新建zuul工程,引入zuul相关依赖
<!-- zuul路由网关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
2.修改yml文件
server:
port: 9537
spring:
application:
name: mservice-zuul
eureka:
client:
service-url:
#指定注册中心的地址
# defaultZone: http://localhost:7001/eureka 单机版的注册中心
#这里其实只需要配置一个注册中心就行了,服务会同步到集群中的其他注册中心,但是不能保证你注册的这个服务端是OK的,所以多些几个
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
instance:
#指定服务在注册中心管理界面显示的名称 status栏
instance-id: dmservice-zuul-9537
#显示服务所在机器的ip
prefer-ip-address: true
3.主启动类中加入注解@EnableZuulProxy
@SpringBootApplication
@EnableZuulProxy
public class ZuulMain_9537 {
public static void main(String[] args) {
SpringApplication.run(ZuulMain_9537.class, args);
}
}
4.通过zuul访问服务
启动eureka,服务提供方,zuul工程,先直接访问服务提供方检查接口是否好使。
通过zuul访问服务提供方的接口
http://localhost:9537/dept-provider-hystrix/deptWithId/1
localhost:9537 是zuul的地址
dept-provider-hystrix 是服务提供的服务名称,这里要注意的是,要小写!
deptWithId/1是接口的requestMapping