在微服务应用中,不管config配置中心,consul注册中,都是在集群内部进行访问。那么对外访问时,微服务也需要相应的机制提供api接口。Getway服务网关就是提供该机制的应用服务。在spring cloud中apiGetway主要功能如下:
● 对外提供服务接口
● 对内根据逻辑调用内部多个接口,进行信息聚合返回给调用者
● 异步调用无需等待反馈的服务
在这里,我们采用spring cloud的zuul做服务网关。具体实现方法,如下:
1.环境:
consul正常运行
rabbitmq正常运行
jdk1.8
上一节中second-consul-config-server服务正常运行
2.创建getway项目, second-consul-getway。
1)新建second-consul-getway maven工程,其中pom如下:
<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>
<parent>
<groupId>com.fiberhome</groupId>
<artifactId>second-fiberhome</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>second-consul-getway</artifactId>
<packaging>jar</packaging>
<name>second-consul-getway</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-consul-dependencies</artifactId>
<version>1.0.1.RELEASE&