网关Netfilx Zuul:---(Eureka高可用操作)

2023-11-13

之前我们创建完成了3个Eureka的客户端的服务操作,你会发现我们还是没有能够通过微服来进行对他访问,还是必须通过自己服务的端口号来进行访问,那么我们的微服务是没有能够完成的,这个时候我们就需要通过网关进行操作

 其实网关就是为客户端提供统一入口,再通过网关的路由进行转发找到对应的服务就好了,网关最大的作用就是路由,路由的作用就是通过客户的url来访问到不同的微服务就好了。

Zuul有个特殊能力叫做负载均衡-----默认的负载均衡的策略是轮询策略

API网关的作用;

 创建网关项目(我这里加载不出来创建的时候不能够向我一样叫gateway):

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.pb</groupId>
    <artifactId>kehuduan</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>kehuduan</name>
    <description>kehuduan</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR5</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

 

 下面我们对某些细节进行调整比如,如下图所示:

 需要打开网关项目的yml文件进行配置:

spring:
  application:
    name: gateway
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 9000
zuul:
  routes:
    client: /c/**    #表示把所有请求地址改为以c开头,后面支持访问所有

最后浏览器中输入地址http://localhost:9000/c/msg测试即可

Eureka高可用操作:

 我们看所有的服务都会注册到注册中心一旦注册中心挂掉了是万万不能的所以我们下面要学习下注册中心的高可用操作

其实配置特别简单对于eureka我们只它既是服务端,又是客户端所以我们只需要进行服务的互相注册就可以了

我们使用Idea给我们提供的便利来进行如下操作

 再把8761复制一份改成8762就可以:

 8761向8762进行注册

然后立即启动该配置完成的8761的服务

8762向8761进行注册:

 完成配置后立即启动8762的服务

我们会在浏览器看到如下情况表明互相注册成功,如下所示:

8761的服务

 8762的服务

如果有报错

 

下面我们来启动eureak的client进行操做进行 想erueak服务进行注册,

你会发现在服务注册的那里分别会有后客户端的服务,如下所说:

 

 但是还是有个非常严重的问题就是我们在erueak的client中注册的时候只向8761那个Eureak的服务进行了注册,所以如果8761挂掉了,那么所有的服务也就全部挂掉了,为了避免这种情况的发生我们可以在Eureka的客户端同时向多个Eureak的服务端进行注册即可,如下面yml文件的修改:

spring:
  application:
    name: client

  eureka:
     client:
       service-url:
         defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
server:
  port: 8003

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网关Netfilx Zuul:---(Eureka高可用操作) 的相关文章

随机推荐

  • Tensorflow 1.13训练模型.pb文件转换成Tensorflowlite可以使用的.tflite文件过程记录

    Tensorflow 1 13训练模型 pb文件转换成Tensorflowlite可以使用的 tflite文件过程记录 前言 之前一直通过1 13版本的TensorflowGpu训练模型 使用范围局限在电脑端 例如opencv调用模型等等
  • unity游戏开发-socket网络通信

    本篇主要是分享基于unity的客户端socket网络通信方案 关于服务器的c socekt搭建放在了这里 基于C 的Tcp服务端通信 其中关于socekt粘包断包的处理放在这里分享了 C socket粘包断包处理 目录 整体设计 TcpCl
  • Spring Security Oauth2 认证(获取token/刷新token)流程(password模式)

    1 本文介绍的认证流程范围 本文主要对从用户发起获取token的请求 oauth token 到请求结束返回token中间经过的几个关键点进行说明 2 认证会用到的相关请求 注 所有请求均为post请求 获取access token请求 o
  • BUUCTF WEB刷题记录

    第一题 刚打开的页面 看源码 发现source php 访问source php 我们要用file参数带出flag 但是有白名单限制 第一个和第二个判断是对file本身的值进行判断 第三个和第四个是对 前面的file值进行判断 所以我们可以
  • jeecg-boot字典翻译改造(支持实体类详情查询自动翻译)

    找到字典切面类 DictAspect 改造方法 parseDictText 支持自动生成的列表接口 单个实体类查询翻译 代码如下 private void parseDictText Object result if result inst
  • 2023 最新版IntelliJ IDEA 2023.1创建Java Web前(vue3)后端(spring-boot3)分离 项目详细步骤(图文详解)

    文章目录 接上篇 项目构建所需的相关工具 Java IDEA maven NodeJS Vue Visual Studio Code 后端项目创建详细步骤 1 开始创建新项目 2 输入项目名称 选择项目存储位置 项目管理工具 Maven 选
  • Hibernate lazy load.

    HIBERNATE的持久化对象加载策略 延迟加载 也就是用到的时候才去加载 这样可以提高一些性能 Hibernate的lazy loading 采用了一个HibernateSession来管理session 它的逻辑是每进行一次数据库操作
  • unpkg 与 npm 的基本介绍

    目录 定义 特点 原理 使用 npm安装流程 npm install npm update registry 区别 总结 定义 UNPKG是一个基于npm registry 的静态资源 CDN 服务 它可以快速获取和使用任何JavaScri
  • springmvc中操作json,配置FastJson

    目前网络上传递数据大部分都是json和xml 但是xml使用的很少了 这里主要介绍json 一般来说json常用的场景是提供外部接口 请求内使用request域就足够了 springmvc对于json的支持 上图 1 请求json方式分析
  • 搭建AI智能语音外呼系统

    随着人工智能技术的发展 近半年来涌现了大量基于人工智能的呼叫中心业务服务商和集成商 仅电销机器人这一个方向就至少有近百家公司正在推广运营 包括百度 讯飞 智齿 硅基 百应 箭鱼 容联等 商务上的需求非常强烈 整个市场都飞快地热闹起来 一套可
  • Redis优化秒杀系统

    Redis优化秒杀系统 使用背景 普通的基于mss框架的系统在并发量不是很高的情况下 对redis的需求不是很高 redis在系统中的角色相当于一个对象缓存器 在高并发的系统中 比如秒杀系统 在某一刻对数据库中的一条数据可能是成千上万的用户
  • 前端页面生成PDF方案之puppetter

    1 新建一个文件夹 例如 test 2 新建一个js文件 例如test js 3 进入test文件夹 在该目录下运行命令行 并执行下面命令 npm init 4 运行命令安装 npm i puppetter 5 编辑test js cons
  • 常量池、运行时常量池、字符串值基本概念区分

    常量池 Constant Pool 常量池数据编译期被确定 是Class文件中的一部分 存储了类 方法 接口等中的常量 当然也包括字符串常量 字符串池 字符串常量池 String Pool String Constant Pool 是常量池
  • 微信公众平台开发笔记4(关注回复自定义消息)

    基于WXJava开发 最终目的 实现关注回复自定义消息 一条文本 一条图片 点击菜单发送视频或音频 音乐可以发送但是不能正常播放 猜测是填写的地址有问题 音频上传时需要先在接口测试平台多媒体文件上传接口上传缩略图 jpeg 新建WxMess
  • 从0实现基于Linux socket聊天室-实现聊天室的登录、注册功能-3

    上一篇我们已经讲了如何搭建一个多线程的服务器模型 可以支持多个客户端同时连接服务器 本篇我们来实现多个客户端 如何实现向服务器注册信息 并实现登录的功能 想了解更多Linux 编程知识 请关注 公众号 一口Linux 数据结构 接着上一篇的
  • Redis学习:哨兵模式

    主从切换技术的方法是 当主服务器宕机后 需要手动把一台从服务器切换为主服务器 这就需要人工干预 费事费力 还会造成一段时间内服务不可用 这不是一种推荐的方式 更多时候 我们优先考虑哨兵模式 一个典型哨兵模式 哨兵配置文件 sentinel
  • freeCAD part工作台,两个物体做合集相加的布尔组合先后顺序区别

    两个紧挨 空间尺寸上无缝隙 的物体 在part 工作台下做union的布尔操作 先选中和后选中的物体顺序还是有区别的 之前一直没注意 一直遇到问题才发现 例如有如图的2个物体 这里面的cut和fusion003已经做好了 现在我想把他组合到
  • c语言中英文转换器在线转换器,汉英转换器

    路由器之家网今天精心准备的是 汉英转换器 下面是详解 汉译英 英语是国际语言 因此我们非常重视英语的 English is an international language Thus we attach great importance
  • 深入学习jquery源码之isFunction()和isPlainObject()

    深入学习jquery源码之isFunction 和isPlainObject isArray obj 概述 测试对象是否为数组 参数 obj Object 用于测试是否为数组的对象 b append isArray b true b isF
  • 网关Netfilx Zuul:---(Eureka高可用操作)

    之前我们创建完成了3个Eureka的客户端的服务操作 你会发现我们还是没有能够通过微服来进行对他访问 还是必须通过自己服务的端口号来进行访问 那么我们的微服务是没有能够完成的 这个时候我们就需要通过网关进行操作 其实网关就是为客户端提供统一