1. 程式人生 > >SpringCloud——服務閘道器(eureka-zuul)

SpringCloud——服務閘道器(eureka-zuul)

服務閘道器(zuul)又稱路由中心,用來統一訪問所有api介面,維護服務。

Spring Cloud Zuul通過與Spring Cloud Eureka的整合,實現了對服務例項的自動化維護,所以在使用服務路由配置的時候,我們不需要向傳統路由配置方式那樣去指定具體的服務例項地址,只需要通過Ant模式配置檔案引數即可

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.springcloud.demo</groupId>
  <artifactId>eureka-zuul</artifactId>
 <version>dev</version>
	<packaging>jar</packaging>

	<name>springcloud-eureka-zuul</name>
	<description>Demo Project of Eureka zuul</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.7.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
	    <!--main方法類 -->
		<start-class>com.cc.yonyou.app.zuul.BootMain</start-class>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Dalston.SR4</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka</artifactId>
		</dependency>
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
	
		
		
		
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.2.2</version>
        </dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		
		
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.0.20</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.12</version>
		</dependency>
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper</artifactId>
			<version>4.1.6</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>  
   		 	<artifactId>spring-boot-starter-redis</artifactId> 
   		 	<version>1.3.8.RELEASE</version> 
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<!--打包跳過測試外掛-->
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            	<artifactId>maven-surefire-plugin</artifactId>
            	<configuration>
            		<skip>true</skip>
            	</configuration>
            </plugin>
		</plugins>
	</build>
	

</project>

application.properties

#在註冊中心顯示的名字
spring.application.name=rndealer-eureka-zuul
#埠
server.port= 12001
#禁止在ribbon中使用
ribbon.eureka.enabled: false 
#註冊中心的地址
eureka.client.serviceUrl.defaultZone=http://localhost:12000/eureka/
#啟用熔斷的開關
feign.hystrix.enabled=true

#路由
zuul.routes.user.path=/eureka-server/**
zuul.routes.user.serviceId=eureka-server

BootMain.java

package com.springcloud.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;

@EnableEurekaClient
@EnableZuulProxy
@SpringBootApplication
public class BootMain {

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

	}

}