标签:logs gateway 项目 art 自己 上层 article 技术 验证
基于Spring的微服务结点在能力上没有高低贵贱之分,但是在角色上会分为边缘服务和内部服务两部分。内部服务是为对内暴露服务的结点,供架构内部来调用;边缘服务是对外部网络暴露的服务结点,也就是对外API接口。Zuul对路由的配置有三种方式:
第一种(path-url):如果请求/sina这个地址,将会转发到http://www.sina.com.cn上去
第二种(path-serviceId):如果请求/user-consumer开头的地址,将会转发到eureka上serviceId为sc-user-provider这个服务上去。
第三种(给微服务名指定path):给sc-user-provider这个微服务指定了它的请求地址是/user-service/*
(其实这里还隐藏了第四种:什么都不配,默认给注册到eureka上的所有服务以第三种方式进行路由,path就是微服务自己的名字,但是此种方式又是不安全的,相当于将非边缘服务也暴露给外网,一般需要关闭这个默认配置zuul.ignored-services=,或者至少将受保护的微服务列表维护到zuul.ignored-services中)
今天介绍一下第一种方式
1、新建项目sc-zuul,对应的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>spring-cloud</groupId>
<artifactId>sc-zuul</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>sc-zuul</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
</dependencies>
</project>
2、新建配置文件application.yml
server:
port: 8070
spring:
application:
name: sc-zuul
zuul:
routes:
sina:
path: /sina/**
url: http://www.sina.com.cn
baidu:
path: /baidu/**
url: http://www.baidu.com
3、新建启动类ZuulApplication.java
package sc.zuul;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
@SpringBootApplication
@EnableZuulProxy
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class, args);
}
}
4、启动项目
5、验证
访问地址http://127.0.0.1:8070/baidu/跳转到百度
访问地址http://127.0.0.1:8070/sina/跳转到新浪
https://blog.csdn.net/yejingtao703/article/details/77816555/
https://www.cnblogs.com/ityouknow/p/6944096.html
标签:logs gateway 项目 art 自己 上层 article 技术 验证
原文地址:https://blog.51cto.com/13538361/2492015