广告
返回顶部
首页 > 资讯 > 精选 >SpringCloud怎么实现Zuul集群
  • 355
分享到

SpringCloud怎么实现Zuul集群

2023-06-20 13:06:05 355人浏览 薄情痞子
摘要

小编给大家分享一下SpringCloud怎么实现Zuul集群,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、使用 Nginx+Zuul 实现网关集群互联网公司中网关都是集群 搭建集群: Nginx+Zuul 一主一备,或

小编给大家分享一下SpringCloud怎么实现Zuul集群,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

一、使用 Nginx+Zuul 实现网关集群

互联网公司中网关都是集群 搭建集群: Nginx+Zuul 一主一备,或者轮询多个。

微服务中,所有服务请求都会统一请求到Zuul网关上。

图示:

SpringCloud怎么实现Zuul集群

过程:客户端发送请求统一到Nginx上,在使用Nginx实现反向代理和负载均衡,采用轮询算法转发到网关上。

1.创建Eurek注册中心、会员服务、订单服务 (略)

搭建Zull集群前,应该对Eureka注册中心,以及创建SpringBoot项目应该有了解,这里就不一 一赘述了。

实际上创建会员服务、订单服务这一步可以省略,因为我们仅仅是为了演示Nginx对Zuul网关的负载均衡效果。

会员服务配置:

过程:客户端发送请求统一到Nginx上,在使用Nginx实现反向代理和负载均衡,采用轮询算法转发到网关上。1.创建Eurek注册中心、会员服务、订单服务 (略)

搭建Zull集群前,应该对Eureka注册中心,以及创建springBoot项目应该有了解,这里就不一 一赘述了。实际上创建会员服务、订单服务这一步可以省略,因为我们仅仅是为了演示Nginx对Zuul网关的负载均衡效果。

会员服务配置:

#会员服务server:  port: 8082spring:  application:    name: member-service    #服务名#Eureka配置eureka:  client:    service-url:      defaultZone: Http://127.0.0.1:8761/eureka/     #注册中心的地址

订单服务:

#订单服务server:  port: 8081spring:  application:    name: order-service   #服务名#Eureka配置eureka:  client:    service-url:      defaultZone: http://127.0.0.1:8761/eureka/      #注册中心地址

2. 创建Zuul服务

application.yml文件中配置 (Zull的配置生产时一般是放到配置中心中)

#配置Zuul端口server:  port: 81spring:  application:    name: zull-gateway-service    #服务名#Eureka配置eureka:  client:    service-url:      defaultZone: http://127.0.0.1:8761/eureka/    #注册中心地址      # 配置网关反向代理,例如访问/api-member    @Override    public String filterType() {        System.out.println("filterType()...");        return "pre";    }        @Override    public int filterOrder() {        System.out.println("filterOrder()...");        return 0;    }        @Override    public boolean shouldFilter() {        System.out.println("shouldFilter()...");        return true;    }        @Override    public Object run() throws ZuulException {        // 获取上下文        //RequestContext currentContext = RequestContext.getCurrentContext();        //httpservletRequest request = currentContext.getRequest();        //获取userToken       // String userToken = request.getParameter("userToken");        //System.out.println("userToken: "+userToken);        //if (StringUtils.isEmpty(userToken)) {            //不会继续执行调用服务接口,网关直接响应给客户端            //currentContext.setSendZuulResponse(false);            //currentContext.setResponseStatusCode(401);           // currentContext.setResponseBody("userToken is Null");           // return null;       // }else if(!userToken.equals("10010")){           // currentContext.setSendZuulResponse(false);            //currentContext.setResponseStatusCode(401);            //currentContext.setResponseBody("userToken is Error");            //return null;        //}        // 否则正常执行业务逻辑,调用服务.....        System.out.println("访问Zuul网关端口为:"+prot +"(total:"+ ( count++) +")");        return null;    }}

启动两个Zuul服务,端口号分别为81和82

3. 下载Nginx服务器

这里演示使用windows版本,linux安装也很简单,后面操作都一样。

windows版下载地址:http://nginx.org/en/download.html

SpringCloud怎么实现Zuul集群

下载好后解压,进入conf目录找到nginx.conf文件打开,配置如下:

#配置上游服务器 集群,默认轮询机制upstream backServer{server 127.0.0.1:81;server 127.0.0.1:82;# 补充: backup表示从服务器或者叫备用服务器  只有当主服务器(81、82端口)都不能访问时才会访问此(83端口)备用服务器 当主服务器恢复正常后 则访问主服务器#server 127.0.0.1:83 backup;}    server {        listen       80;        server_name  localhost;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            ##root   html;#指定上游负载均衡服务器proxy_pass http://backServer/;            index  index.html index.htm;        }    }

双击nginx.exe启动Nginx服务器

二、 测试

浏览器访问http://localhost/api-member

我们可以看到两个网关分别输出了日志,实现了负载均衡

SpringCloud怎么实现Zuul集群

SpringCloud怎么实现Zuul集群

我们看到访问的次数不一样,这其实和使用Google浏览器有关,可以换其他浏览器试试。

三、补充

Nginx和网关的区别在什么地方?

都可以实现反向代理。

都可以实现负载均衡,Nginx是服务端负载均衡,Zuul是本地负载均衡。

Nginx也可以实现网关,为什么不用Nginx实现网关呢?

因为微服务网关是针对整个微服务实现统一的请求拦截,网关基本上都是采用自己熟悉的语言开发的,目的方便易学。

网关的作用:

网关对所有服务会话进行拦截

网关安全控制、统一异常处理、xxs、sql注入

权限控制、黑名单和白名单、性能监控、日志打印等

关于Nginx负载均衡故障转移:

设置备用服务器(主从架构),只有当所有主服务器不可用时才会负载到备服务器,当主服务器恢复正常时则负载到主服务器。

upstream backServer{server 127.0.0.1:81;server 127.0.0.1:82;# 补充: backup表示从服务器或者叫备用服务器  只有当主服务器(81、82端口)都不能访问时才会访问此(83端口)备用服务器 当主服务器恢复正常后 则访问主服务器server 127.0.0.1:83 backup;}

设置Nginx转发请求超时时间

upstream backServer{server 127.0.0.1:81;server 127.0.0.1:82;server 127.0.0.1:83 backup;}location / {        proxy_pass   http://backServer/;        proxy_redirect  default;    proxy_connect_timeout 1;  # 超时1s则转发到其他服务,宕机情况下也适用    proxy_read_timeout 1;    proxy_send_timeout 1;

看完了这篇文章,相信你对“SprinGCloud怎么实现Zuul集群”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: SpringCloud怎么实现Zuul集群

本文链接: https://www.lsjlt.com/news/297098.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringCloud怎么实现Zuul集群
    小编给大家分享一下SpringCloud怎么实现Zuul集群,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、使用 Nginx+Zuul 实现网关集群互联网公司中网关都是集群 搭建集群: Nginx+Zuul 一主一备,或...
    99+
    2023-06-20
  • SpringCloud如何实现Zuul集群(负载均衡)
    目录前言:一、使用 Nginx+Zuul 实现网关集群1.创建Eurek注册中心、会员服务、订单服务 (略)2. 创建Zuul服务3. 下载Nginx服务器二、 测试三、补充Ngin...
    99+
    2022-11-12
  • 在Springcloud中怎么用zuul来实现网关功能
    这篇文章给大家分享的是有关在Springcloud中怎么用zuul来实现网关功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。个人分类: Spring Cloud编辑一、简介    ...
    99+
    2023-06-05
  • SpringCloud怎么将Eureka Server集群化
    这篇文章主要介绍“SpringCloud怎么将Eureka Server集群化”,在日常操作中,相信很多人在SpringCloud怎么将Eureka Server集群化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-05
  • SpringCloud Zuul怎么实现负载均衡和熔断机制
    小编给大家分享一下SpringCloud Zuul怎么实现负载均衡和熔断机制,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、场景Zuul网关下实现其负载均衡与熔...
    99+
    2023-06-20
  • SpringCloud注册中心集群怎么创建
    本篇内容介绍了“SpringCloud注册中心集群怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!集群环境搭建我们新建两个注册中心工程...
    99+
    2023-06-05
  • SpringCloud Zuul实现负载均衡和熔断机制方式
    一、场景 笔者就Zuul网关下实现其负载均衡与熔断机制(雪崩)进行实践,前提是已经导入zuul相关依赖 springboot版本:1.5.9.RELEASE springcloud版...
    99+
    2022-11-12
  • MongoDB中怎么实现集群
    本篇文章给大家分享的是有关MongoDB中怎么实现集群,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。基本概念文档(document):文档是M...
    99+
    2022-10-18
  • Hadoop集群同步怎么实现
    本篇内容介绍了“Hadoop集群同步怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、同步方式  选择一个机器,作为时间服务器(这里...
    99+
    2023-06-02
  • Redis7.0部署集群怎么实现
    这篇“Redis7.0部署集群怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis7.0部署集群怎么实现”文章吧...
    99+
    2023-07-02
  • Node.js进程集群怎么实现
    这篇文章主要介绍了Node.js进程集群怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js进程集群怎么实现文章都会有所收获,下面我们一起来看看吧。一、cluster模块Node.js是单线程处...
    99+
    2023-07-02
  • php中怎么实现集群部署
    这篇“php中怎么实现集群部署”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php中怎么实现集群部署”文章吧。一、什么是集群...
    99+
    2023-07-05
  • 怎么实现Oracle集群自启动
    这篇文章主要讲解了“怎么实现Oracle集群自启动”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现Oracle集群自启动”吧!我们先看如下部分:Ora...
    99+
    2022-10-18
  • Prometheus中怎么实现集群监控
    Prometheus中怎么实现集群监控,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 1、Prometheus 对比 Zabbix和...
    99+
    2022-10-19
  • ElasticSearch中怎么实现集群分布式
    本篇文章为大家展示了ElasticSearch中怎么实现集群分布式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。索引(index)“索引” 这个词在 Elastic...
    99+
    2022-10-18
  • 怎么实现slave集群负载均衡
    这篇文章主要讲解了“怎么实现slave集群负载均衡”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现slave集群负载均衡”吧!一.介绍由于互联网系统读...
    99+
    2022-10-18
  • MongoDB中怎么实现分片与集群
    这期内容当中小编将会给大家带来有关MongoDB中怎么实现分片与集群,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、 mongodb分片与集群拓扑图二、分片与集群的部署...
    99+
    2022-10-18
  • MongoDB中怎么实现分布式集群
    本篇文章给大家分享的是有关 MongoDB中怎么实现分布式集群,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。集群概览mongodb 相关的进程...
    99+
    2022-10-18
  • Facebook中怎么实现Hadoop和AvatarNode集群
    这篇文章给大家介绍Facebook中怎么实现Hadoop和AvatarNode集群,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Facebook将数据存储在利用Hadoop/Hive搭建的数据仓库上,这个数据仓库拥有4...
    99+
    2023-06-10
  • PHP怎么实现数据库集群备份
    这篇“PHP怎么实现数据库集群备份”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“PHP怎么实现数据库集群备份”文章吧。一、概...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作