大家周末愉快啊!!!

今天趁加班忙完了,写一篇关于 SpringCloud 网关(geteway)的文章。
简单说下需求:
1、转发请求
2、响应头可修改
3、实现跨域
4、兼容其他项目
最近做的网关项目,分享出一个例子给大家,已上传至 GitHub,可自行下载。亲,记得 fork 一下哦
下载链接:(由于一些限制,链接暂时不能用了,后面再重新上传,有需要的可以直接找我要demo,会尽快上传)
虽然说这个项目没多大的复杂性,但是对于开始使用SpringCloud的程序猿们来说,还是很头大的。why?
里面很多的不兼容性,就让你会头大的不得了,更别说走一步错一步了。所以,盆友们,需要多点耐心哟。
这里有些地方不方便贴出来,如果有问题的话可以私信我。
众所周知,SpringCloud只是将Springboot更好的利用了一番,所以SpringCloud项目都是Springboot架构的。
SpringCloud 网关,这里我们使用Eureka做,为什么用Eureka呢?
原因如下:
a、遵循AP原则
b、Eureka Server 也可以运行多个实例来构建集群,解决单点问题
c、去中心化
d、自我保护机制
这里主要分为2个部分来讲,另外一个部分是一个demo用例。
一、Eureka 客户端的搭建
新建Springboot项目,取名demo-eureka-server,新建applicaiton.yml文件,内容如下
server:
#端口号
port: 8761
#eureka:
eureka:
instance:
hostname: eureka地址
client:
# 是否注册到eurekaserver
registerWithEureka: false
# 是否拉取信息
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eurka-server
新建Springboot项目启动类:EurekaServerApplication
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run( EurekaServerApplication.class, args );
}
}
修改pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<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.mxk.demo</groupId>
<artifactId>demo-eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo-eureka-server</name>
<description>Demoproject for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/>
</parent>
<properties>
<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>Finchley.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.sp

最低0.47元/天 解锁文章
1229

被折叠的 条评论
为什么被折叠?



