天天看点

Spring cloud 之Netflix Eureka系列四(feign整合服务网关zuul)

一、项目总体介绍

                 这次项目整合依然复用上一节系列三的代码进行操作,增加新的项目模块(spring-cloud-zuul),

            1.1、项目背景:我们的一个系统进行服务拆分后形成许多的微服务,我们需要对这些微服务进行统计的管理,于是我们需要设置一个网管(总入口)对这些服务进行管理(如路由操作、权限的设置、日志操作,配置文件等)。

           1.2、项目功能:用spring-cloud组件zuul进行服务网关的设置管理我们微服务应用

           1.3、项目总体结构介绍(依旧是四个模块)

                          eureka-registry:eureka服务注册中心   

                          user-service-api:定义用户服务接口(接口实体类的定义)

                          user-service-provider:用户服务生产者

                          user-service-feign:用户服务客户端

                           spring-cloud-zuul:服务网关

   二、项目核心代码

             2.1、项目目录结构

Spring cloud 之Netflix Eureka系列四(feign整合服务网关zuul)

          2.2、项目依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-eureka</artifactId>
	<version>1.3.5.RELEASE</version>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-zuul</artifactId>
	<version>1.3.5.RELEASE</version>
</dependency>
           

       2.3、项目代码

-----------------------------项目启动文件-----------------------------------
@EnableZuulProxy
@EnableDiscoveryClient
@SpringBootApplication
public class SpringCloudZuulApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringCloudZuulApplication.class, args);
	}

}



----------------------------项目配置文件------------------------------------------
## 设置应用名称
spring.application.name = spring-cloud-zuul
## Zuul 服务端口
server.port = 6060

## 整合 Eureka
## Eureka Server 服务 URL,用于客户端注册
## application.properties 会继承bootstrap.properties 属性
## 因此,application.properties 没有必要配置 eureka.client.serviceUrl.defaultZone
eureka.client.serviceUrl.defaultZone=\
  http://localhost:7000/eureka

### bootstrap 上下文配置
# 配置客户端应用名称: zuul , 可当前应用是 spring-cloud-zuul
#spring.cloud.config.name = zuul
## profile 是激活配置
#spring.cloud.config.profile = prod
## label 在Git中指的分支名称
#spring.cloud.config.label = master
## 采用 Discovery client 连接方式
### 激活 discovery 连接配置项的方式
#spring.cloud.config.discovery.enabled=true
### 配置 config server 应用名称
#spring.cloud.config.discovery.serviceId = spring-cloud-config-server
           

继续阅读