【Java】SpringCloud整合Zuul网关

SpringCloud整合Zuul网关

isWulongbo发布于 今天 06:03

简介

网关的作用

网关可以拦截客户端所有请求,对该请求进行权限控制,负载均衡,日志管理,接口调用监控等。

网关与过滤器的区别

过滤器是拦截单个tomcat服务器进请求,网关是拦截整个微服务所有请求。

网关和Nginx的区别

  1. 相同点:Zuul和Nginx都可以实现负载均衡,反向代理,过滤请求,实现网关效果。
  2. 不同点:Nginx采用C语音编写,Zuul采用java语音编写。Zuul负载均衡实现:采用Ribbon+Eureka实现本地负载均衡。Nginx实现负载均衡:采用服务器端实现负载均衡。

zuul网关实现反向代理

新建springcloud-zuul-gateway 模块

  • pom依赖:

<?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">

<parent> <artifactId>springcloud-parents</artifactId>

<groupId>com.baba.wlb</groupId>

<version>1.0-SNAPSHOT</version>

</parent> <modelVersion>4.0.0</modelVersion>

<artifactId>springcloud-zuul-gateway</artifactId>

<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Finchley.M7</version>

<type>pom</type>

<scope>import</scope>

</dependency> </dependencies> </dependencyManagement>

<dependencies> <!--SpringCloud zuul 网关-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-zuul</artifactId>

</dependency>

<!--SpringCloud Eureka 客户端-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

</dependency> </dependencies>

<!--注意:这里必须添加,否则各种依赖有问题-->

<repositories>

<repository> <id>spring-milestones</id>

<name>Spring Milestones</name>

<url>https://repo.spring.io/libs-milestone</url>

<snapshots> <enabled>false</enabled>

</snapshots> </repository> </repositories></project>

  • application.yml 配置文件

## api网关端口号

server:

port: 80

## 服务注册名称

spring:

application:

name: server-zuul

eureka:

client:

service-url:

##当前服务注册到Eureka服务地址

defaultZone: http://localhost:8100/eureka,http://localhost:9100/eureka

register-with-eureka: true

## 需要检索服务信息

fetch-registry: true

zuul:

routes:

## 表示定义转发服务规则

api-a:

### 当客户端发送请求http://127.0.0.1:80/api-member开头的,都会转发到会员服务

path: /api-member/**

### 会员服务别名 zuul默认整合ribbon,自动实现轮询效果

serviceId: app-member

api-b:

### 当客户端发送请求http://127.0.0.1:80/api-order开头的,都会转发到订单服务

path: /api-order/**

### 订单服务别名 zuul默认整合ribbon,自动实现轮询效果

serviceId: app-order

  • AppGateway 启动类

package com.baba.wlb;

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;

/**

* @Author wulongbo

* @Date 2021/1/28 11:52

* @Version 1.0

*/@SpringBootApplication

@EnableEurekaClient

@EnableZuulProxy

public class AppGateway {

//@EnableZuulProxy 开启网关代理

public static void main(String[] args) {

SpringApplication.run(AppGateway.class, args);

}

}

启动服务

依次Eureka Server、Zuul网关、Member服务、Order服务
访问订单接口:http://localhost:8200/getOrderByMember?name=11
【Java】SpringCloud整合Zuul网关
再访问网关:http://localhost/api-order/getOrderByMember?name=11
【Java】SpringCloud整合Zuul网关
实现了反向代理!

javaspringboot

阅读 36发布于 今天 06:03

本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议


wulongbo

我的专栏

avatar

isWulongbo

在人生的头三十年,你培养习惯,后三十年,习惯铸就你

178 声望

8 粉丝

0 条评论

得票时间

avatar

isWulongbo

在人生的头三十年,你培养习惯,后三十年,习惯铸就你

178 声望

8 粉丝

宣传栏

简介

网关的作用

网关可以拦截客户端所有请求,对该请求进行权限控制,负载均衡,日志管理,接口调用监控等。

网关与过滤器的区别

过滤器是拦截单个tomcat服务器进请求,网关是拦截整个微服务所有请求。

网关和Nginx的区别

  1. 相同点:Zuul和Nginx都可以实现负载均衡,反向代理,过滤请求,实现网关效果。
  2. 不同点:Nginx采用C语音编写,Zuul采用java语音编写。Zuul负载均衡实现:采用Ribbon+Eureka实现本地负载均衡。Nginx实现负载均衡:采用服务器端实现负载均衡。

zuul网关实现反向代理

新建springcloud-zuul-gateway 模块

  • pom依赖:

<?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">

<parent> <artifactId>springcloud-parents</artifactId>

<groupId>com.baba.wlb</groupId>

<version>1.0-SNAPSHOT</version>

</parent> <modelVersion>4.0.0</modelVersion>

<artifactId>springcloud-zuul-gateway</artifactId>

<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Finchley.M7</version>

<type>pom</type>

<scope>import</scope>

</dependency> </dependencies> </dependencyManagement>

<dependencies> <!--SpringCloud zuul 网关-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-zuul</artifactId>

</dependency>

<!--SpringCloud Eureka 客户端-->

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

</dependency> </dependencies>

<!--注意:这里必须添加,否则各种依赖有问题-->

<repositories>

<repository> <id>spring-milestones</id>

<name>Spring Milestones</name>

<url>https://repo.spring.io/libs-milestone</url>

<snapshots> <enabled>false</enabled>

</snapshots> </repository> </repositories></project>

  • application.yml 配置文件

## api网关端口号

server:

port: 80

## 服务注册名称

spring:

application:

name: server-zuul

eureka:

client:

service-url:

##当前服务注册到Eureka服务地址

defaultZone: http://localhost:8100/eureka,http://localhost:9100/eureka

register-with-eureka: true

## 需要检索服务信息

fetch-registry: true

zuul:

routes:

## 表示定义转发服务规则

api-a:

### 当客户端发送请求http://127.0.0.1:80/api-member开头的,都会转发到会员服务

path: /api-member/**

### 会员服务别名 zuul默认整合ribbon,自动实现轮询效果

serviceId: app-member

api-b:

### 当客户端发送请求http://127.0.0.1:80/api-order开头的,都会转发到订单服务

path: /api-order/**

### 订单服务别名 zuul默认整合ribbon,自动实现轮询效果

serviceId: app-order

  • AppGateway 启动类

package com.baba.wlb;

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;

/**

* @Author wulongbo

* @Date 2021/1/28 11:52

* @Version 1.0

*/@SpringBootApplication

@EnableEurekaClient

@EnableZuulProxy

public class AppGateway {

//@EnableZuulProxy 开启网关代理

public static void main(String[] args) {

SpringApplication.run(AppGateway.class, args);

}

}

启动服务

依次Eureka Server、Zuul网关、Member服务、Order服务
访问订单接口:http://localhost:8200/getOrderByMember?name=11
【Java】SpringCloud整合Zuul网关
再访问网关:http://localhost/api-order/getOrderByMember?name=11
【Java】SpringCloud整合Zuul网关
实现了反向代理!

以上是 【Java】SpringCloud整合Zuul网关 的全部内容, 来源链接: utcz.com/a/109661.html

回到顶部