开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 6 天,点击查看活动详情
1.新增modules
2.创建之后根目录的pom.xml文件
3.配置pom.xml文件
3.1配置打包格式
<packaging>jar</packaging>
3.2配置依赖
<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>
<!-- apache 工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>16.0</version>
</dependency>
</dependencies>
Eureka工作原理:
- Eureka 客户端, 客户端向 Eureka Server 注册的时候会提供一系列的元数据信息, 例如: 主机, 端口, 健康检查url等
- Eureka Server 接受每个客户端发送的心跳信息, 如果在某个配置的超时时间内未接收到心跳信息, 实例会被从注册列表中移除
依赖说明: - spring-cloud-starter-netflix-zuul,引入zuul组件
- 引入commons-io和com.google.guava
3.3配置插件
4.新建启动类
新增com.imooc.coupon包并且新建ZuulGatewayApplication启动类
package com.imooc.coupon;
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@EnableZuulProxy
@SpringCloudApplication
public class ZuulGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulGatewayApplication.class,args);
}
}
代码说明:
@EnableZuulProxy 开启网关代理
@SpringCloudApplication 加载springCloud
跟踪源码:可以看到包含EnableDiscoveryClient(服务发现)和
@EnableCircuitBreaker服务熔断相关
EnableCircuitBreaker:服务熔断
5.新增yml配置文件
server:
port: 9000
spring:
application:
name: coupon-gateway
eureka:
client:
service-url :
defaultZone : http://server1:8001/eureka/
代码说明:
- server:port: 9000 :定义网关服务的端口为9000
- defaultZone : http://server1:8001/eureka/:配置服务发现的地址
6.启动ZuulApplicaion应用
7.验证是否成功搭建网关服务
浏览器访问:http://127.0.0.1:8001/
截图如下:
可以看到,coupon-gateway已经正常出现在副本中