山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十二)- 微服务(2)

news2024/9/23 9:26:10

目录

4. Ribbon负载均衡

4.1 负载均衡流程

4.2 负载均衡策略

4.3 Ribbon饥饿加载

5. Nacos注册中心

5.1 服务注册到nacos

5.2 nacos服务分级存储模型

5.3 根据权重负载均衡

5.4 环境隔离--namespace


4. Ribbon负载均衡

4.1 负载均衡流程

4.2 负载均衡策略

默认实现是轮流循环策略,是ZoneAvoidanceRule

修改负载均衡规则 :

  1. 代码方式,在order-service启动类中添加(作用于全局,即order微服务访问任何微服务都遵循该策略),修改为随机策略 :

  
      @Bean
      public IRule randomRule(){
          return new RandomRule();
      }
  1. 配置文件方式 ,只针对某个服务(指定服务名,如下面的userservice), 在配置文件中 :

      
      userservice:
        ribbon:
          NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule     # 负载均衡规则

4.3 Ribbon饥饿加载

Ribbon默认是懒加载,只有在第一次访问时才去创建LoadBalanceClient,请求时间会很长,

饥饿加载会在项目启动时就创建,降低第一次访问耗时

饥饿加载的配置

在order-service 配置文件中 :

  
  ribbon:
    eager-load:
      enable: true   #  开启饥饿加载
      clients: 
        -userservice   # 指定饥饿加载的服务名称  可以是一个集合
        -xxxservice
        -xxxxservice

5. Nacos注册中心

启动nacos命令 :

管理员身份运行cmd到nacos安装的bin目录下

  
  startup.cmd -m standalone

访问页面 :

  
   http://192.168.142.1:8848/nacos/index.html

5.1 服务注册到nacos

引入依赖 在父工程中加入 :

  
          <!--nacos的管理依赖-->
              <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                  <version>2.2.5.RELEASE</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>

在user-service中引入nacos服务发现依赖

  
          <!--nacos客户端依赖包-->
          <dependency>
              <groupId>com.alibaba.cloud</groupId>
              <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
          </dependency>

修改user-service的yml配置文件 order-service同理 把user-service服务发现到nacos

  
  spring:
    datasource:
      url: jdbc:mysql://localhost:3306/cloud_user?useSSL=false
      username: root
      password: 888888
      driver-class-name: com.mysql.jdbc.Driver
    application:
      name: userservice  # user服务的服务名称
    cloud:
      nacos:
        server-addr: localhost:8848    # nacos服务地址

5.2 nacos服务分级存储模型

​ user-serviced的配置文件添加

  
    cloud:
      nacos:
        server-addr: localhost:8848    # nacos服务地址
        discovery:
          cluster-name: HZ  # 集群名称   HZ代指杭州

开多端口方法 :

修改选项中点击添加VM选项,弹出提示框中添加 -Dserver.port=要开的新端口

结果演示 :

在order-service中加入同样配置,测试order在调用userservice是否优先选择本地集群,把order-service放在HZ,user-service两个分支一个在HZ,一个在SH

order-service的yml文件中同样配置

  
    cloud:
      nacos:
        server-addr: localhost:8848    # nacos服务地址
        discovery:
          cluster-name: HZ  # 集群名称   HZ代指杭州

在order-service的yml配置文件中修改对userservice的负载均衡规则 :

  
  userservice:
    ribbon:
      NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule     # 负载均衡规则

测试结果 : 在杭州集群的order-service只调用了在杭州集群的user-service而未调用在上海集群的user-service

NacosRule负载均衡规则 :

  1. 优先选择本地集群

  2. 本地集群找不到提供者,才去其他集群寻找

  3. 确定了可用实例列表后,再采用随机均衡负载挑选实例

5.3 根据权重负载均衡

通过修改权重控制访问频率,权重越大访问频率越高

5.4 环境隔离--namespace

在页面新建命名空间

修改order-service的yml文件,新增namespace指定命名空间的id

  
  spring:
    datasource:
      url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
      username: root
      password: 888888
      driver-class-name: com.mysql.jdbc.Driver
    application:
      name: orderservice  # order服务名称
    cloud:
      nacos:
        server-addr: localhost:8848    # nacos服务地址
        discovery:
          cluster-name: HZ  # 集群名称   HZ代指杭州
          namespace: 9d2976a6-9560-46b7-a680-260801971b01   #   命名空间的id

修改结果 :

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python基础知识:py文件转换为jupyter文件

搜索了很多&#xff0c;都没什么用&#xff0c;会出现一些json错误&#xff0c;最终直接新建文件成功: 在自己电脑安装Anaconda&#xff0c;安装jupyter notebook&#xff0c;输入命令打开jupyter notebook&#xff1a; 在Anoconda命令行中cd到自己要转换文件的地址&#xff0…

天正T20专业建筑v7.0~v10.0版本下载,天正T20专业建筑软件获取

利用AutoCAD这一全球知名的图形平台&#xff0c;我们成功研发出了最新一代的T20天正建筑软件V8.0。这款软件以其卓越的性能和专业化的功能&#xff0c;在建筑施工图设计领域展现出了强大的实力&#xff0c;赢得了广大建筑设计师的青睐。 T20天正建筑软件V8.0在继承了AutoCAD的稳…

【自动驾驶技术栈学习】2-软件《大话自动驾驶》| 综述要点总结 by.Akaxi

----------------------------------------------------------------------------------------------------------------- 致谢&#xff1a;感谢十一号线人老师的《大话自动驾驶》书籍&#xff0c;收获颇丰 链接&#xff1a;大话自动驾驶 (豆瓣) (douban.com) -------------…

Beego 使用教程 8:Session 和 Cookie

beego 是一个用于Go编程语言的开源、高性能的 web 框架 beego 被用于在Go语言中企业应用程序的快速开发&#xff0c;包括RESTful API、web应用程序和后端服务。它的灵感来源于Tornado&#xff0c; Sinatra 和 Flask beego 官网&#xff1a;http://beego.gocn.vip/ 上面的 be…

AI架构设计7:TGI

这个专栏主要关注围绕着AI运用于实际的业务场景所需的系统架构设计。整体基于云原生技术&#xff0c;结合开源领域的LLMOps或者MLOps技术&#xff0c;充分运用低代码构建高性能、高效率和敏捷响应的AI中台。该专栏需要具备一定的计算机基础。 若在某个环节出现卡点&#xff0c;…

质量评估门户:您AI内容的质量守护者

在当今这个内容饥渴和内容疯狂的世界里&#xff0c;AI驱动的内容创作既是一种流行趋势&#xff0c;有时也是一个改变游戏规则的存在。但强大的能力伴随着巨大的责任……即确保质量的责任。 想象一下&#xff1a;你拥有一个AI[和创意团队]&#xff0c;他们以闪电般的速度输出博…

unity制作app(9)--拍照 相册 上传照片

1.传输照片&#xff08;任何较大的数据&#xff09;都需要扩展服务器的内存空间。 2.还需要base64编码 2.1客户端发送位置的编码 2.2服务器接收部分的代码

全球首个AI代理驱动的元宇宙生态Wondra,让Web3再次伟大

前段时间&#xff0c;因为OpenAI的Sora发布、英伟达财报的发布&#xff0c;英伟达市值直逼2.5万亿美金&#xff0c;使得Crypto行业的AI赛道热度飙升&#xff0c;WLD&#xff0c;AGIX&#xff0c;FET等项目都有了不俗的表现。而这几天&#xff0c;因为大盘整体向好&#xff0c;再…

css中实现背景方格

background: rgba(241,241,241,0.1); background-image:linear-gradient(90deg, rgba(241,243,244,1) 10%, transparent 0),linear-gradient(rgba()241,243,244,1 10%, transparent 0); background-size: 10px 10px; 表现出来的样子就是这个样子

回顾java-异常

异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中&#xff0c;异常本身是一个类&#xff0c;产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。 需…

vivado改变波形图窗口颜色

点击右上角的设置图标 翻译对照

老板:2个亿的销售额,利润只有55万!电商这个生意真的到头了?

近来&#xff0c;一段对话轰动了半个电商圈的老板&#xff0c;干拼多多&#xff0c;2亿的销售额&#xff0c;利润只有55万&#xff01; 其实造成这一现象的原因就是“内卷” 说一句电商行业真实的现状&#xff0c;电商发展了十几年&#xff0c;网友对网购已经完全熟悉&#x…

专业上门预约洗衣洗鞋管理系统一站式解决方案

洗衣洗鞋店管理系统一站式解决方案&#xff0c;不仅运营稳定且功能强大&#xff0c;堪称现代生活中的得力助手。 在这个快节奏的时代&#xff0c;人们对便捷性的渴望愈发强烈。洗衣洗鞋作为日常生活中的一项琐碎事务&#xff0c;也亟需一个高效、省心的解决方案。为此&#xf…

双向带头链表实现

目录 一. 逻辑结构图解 1. 节点中存储的值 2.逻辑实现 二. 各种功能实现 1. 创建节点函数 2. 初始化哨兵位 3. 尾插 4. 头插 5. 尾删 6. 头删 7. 打印链表值 8. 查找数据&#xff0c;返回节点地址 9. 指定地址后插入节点 10. 删除指定地址节点 11. 销毁链表 三.…

english语法

从句&#xff1a;简单句连词 介词

接口测试及接口测试常用的工具详解

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 首先&#xff0c;什么是接口呢&#xff1f; 接口一般来说有两种&#xff0c;一种是程序内部的接口&#xff0c;一种是系统对外的接口。 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息…

17、24年--信息系统工程——数据工程

1、数据建模 数据建模是对现实世界中具体的人、物、活动和概念进行抽象、表示和处理,变成计算机可处理的数据,也就是把现实世界中的数据从现实世界抽象到信息世界和计算机世界。 1.1 数据模型 根据模型应用目的不同,可以将数据模型划分为三类:概念模型、逻辑模型和物理模型…

数组基础-笔记

数组是非常基础的数据结构&#xff0c;实现运用和理解是两回事 数组是存放在连续内存空间上的相同类型的数据的集合 可以方便的通过下表索引的方式获取到下标下对应的数据。 举一个字符数组的例子&#xff1a; 注意两点&#xff1a; 数组下标从0开始 数组内存空间的地址是连…

文心一言 VS 讯飞星火 VS chatgpt (269)-- 算法导论20.2 4题

四、修改 proto-vEB 结构&#xff0c;以支持重复关键字。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在原始的 van Emde Boas 树&#xff08;vEB tree&#xff09;结构中&#xff0c;关键字&#xff08;key&#xff09;是唯一的&#xff0c;不允许有重复的关…

数据集005:螺丝螺母目标检测数据集(含数据集下载链接)

数据集简介 背景干净的目标检测数据集。 里面仅仅包含螺丝和螺母两种类别的目标&#xff0c;背景为干净的培养皿。图片数量约420张&#xff0c;train.txt 文件描述每个图片中的目标&#xff0c;label_list 文件描述类别 另附一个验证集合&#xff0c;有10张图片&#xff0c;e…