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

目录

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

修改结果 :

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

看潮成长日程表用户手册(上)

看潮成长日程表用户手册&#xff08;上&#xff09; 一、特色功能1、以每周日程表为主要形式2、全时管控的时间管理3、持续的日程管理4、分期间时间表5、按日排程&#xff0c;按周输出6、夏季作息时间处理7、年度假日处理8、休息日处理9、弹性日程10、完成记录11、多种输出形式…

C++-指针

在C中&#xff0c;指针是至关重要的组成部分。它是C语言最强大的功能之一&#xff0c;也是最棘手的功能之一。 指针具有强大的能力&#xff0c;其本质是协助程序员完成内存的直接操纵。 指针&#xff1a;特定类型数据在内存中的存储地址&#xff0c;即内存地址。 指针变量的定…

【第39天】SQL进阶-SQL设计优化-反范式设计(SQL 小虚竹)

回城传送–》《100天精通MYSQL从入门到就业》 文章目录 零、前言一、练习题目二、SQL思路初始化数据什么是反范式设计例子反范式设计的优点反范式设计的缺点实战中要注意的坑 三、总结四、参考 零、前言 今天是学习 SQL 打卡的第 39 天。 ​ 我的学习策略很简单&#xff0c;…

瓦罗兰特账号怎么注册 瓦罗兰特延迟高用什么加速器

《瓦罗兰特》&#xff08;Valorant&#xff09;是由拳头游戏&#xff08;Riot Games&#xff09;开发并发行的一款免费的多人在线第一人称射击游戏&#xff08;FPS&#xff09;&#xff0c;它结合了传统的硬核射击机制与英雄角色的能力系统&#xff0c;为玩家提供了独特的竞技体…

无忧易售ERP:智慧采购,重塑供应链管理新高度

在当今瞬息万变的商业环境中&#xff0c;高效的采购策略不仅是成本控制的关键&#xff0c;更是企业竞争力的体现。无忧易售ERP&#xff0c;作为一站式企业资源规划解决方案的领航者&#xff0c;专为现代企业量身打造了集成化的采购管理模块&#xff0c;以智能化、自动化的工具为…

适用于Android的最佳数据恢复软件

如果您的 Android 设备崩溃&#xff0c;您需要找到一种方法来取回您的数据。幸运的是&#xff0c;有许多数据恢复程序可以帮助您恢复丢失的文件。有些是免费的&#xff0c;而另一些则需要付费。这是适用于Android设备的最佳数据恢复软件列表。 什么是数据恢复软件&#xff1f; …

python-数据可视化

python-数据可视化 ** 数据可视化指的是通过可视化表示来探索数据&#xff0c;它与数据挖掘**紧密相关&#xff0c;而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表示的小型数字列表&#xff0c;也可以是数以吉字节的数据 最流行的工具之一…

eBPF可观测之网络流量控制和管理traffic control浅尝

目录 工程背景 环境准备 安装工具​​​ 安装依赖包 安装C依赖库 操作步骤 目录结构 代码展示 效果展示 拓展提升 工程背景 首先发表一个"暴论" eBPF在可观测方面的应用&#xff0c;就是各种google。 不需要学习内核&#xff0c;只要掌握ebpf开发套路。…

什么是“SQL注入攻击”?如何预防和应对?

一、SQL注入攻击的概念 SQL注入攻击是一种针对数据库驱动的应用程序的攻击技术&#xff0c;其中攻击者通过在应用程序的输入字段中插入或“注入”恶意的SQL代码&#xff0c;试图非法访问、操作或破坏后端数据库。当应用程序不正确地处理用户输入&#xff0c;并将其直接拼接到SQ…

【NumPy】NumPy线性代数模块详解:掌握numpy.linalg的核心功能

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

国产数据库替代加速 助力数字中国建设

5月24日&#xff0c;随着第七届数字中国建设峰会在福州的成功举办&#xff0c;释放数据要素价值、发展新质生产力成为当下热议的话题。 数据作为新型生产要素&#xff0c;是数字化、网络化、智能化的重要基础。北京人大金仓信息技术股份有限公司&#xff08;以下简称人大金仓&a…

如何改变echo在Linux下的输出颜色

文章目录 问题回答常规输出字体加粗斜体字带下划线闪烁效果 参考 问题 我正在尝试使用 echo 命令在终端中打印文本。 我想把文本打印成红色。我该怎么做&#xff1f; 回答 你可以使用 ANSI escape codes 定义控制输出颜色的变量。 ANSI escape codes是一种用于在文本中设置…

动手学深度学习23 LeNet

动手学深度学习23 LeNet 1. LeNet2. 代码3. QA 1. LeNet 两层卷积两层池化两层全连接 卷积就是让每一层shape不断压缩变小【高宽减少】&#xff0c;通道数增多&#xff0c;把特征信息放到不同的通道里面。每一个通道认为是一个模式。然后再做全连接的输入。 2. 代码 impor…

4款让人骄傲的国产软件,功能过于强大,却被误认为是外国佬研发

说到国产软件&#xff0c;许多人可能会有“流氓软件、弹屏广告多、隐藏消费套路”等负面印象。 这种偏见导致一些功能强大、用户友好的国产软件被误认为是外国人开发的。 1、格式工厂 格式工厂是一个很实用的国产格式转换工具&#xff0c;它完全免费且没有广告&#xff0c;不…

大模型实战-动手实现单agent

文章目录 入口cli_main.py工具tools.pyprompt prompt_cn.pyLLM 推理 model_provider.py致谢 agent 的核心思想&#xff1a;不断调用 LLM&#xff08;多轮对话&#xff09;&#xff0c;让 LLM 按照指定的格式&#xff08;例如 json&#xff09;进行回复&#xff0c;提取 LLM 回复…

【LaTex】11 ACM参考文献顺序引用 - 解决 ACM-Reference-Format 顺序不符合论文实际引用顺序的问题

【LaTex】11 ACM参考文献顺序引用 写在最前面解决 ACM-Reference-Format 顺序不符合论文实际引用顺序的问题问题描述问题原因如何解决问题解决方案1&#xff08;更简单&#xff09;解决方案2&#xff08;更自由&#xff09; 小结 &#x1f308;你好呀&#xff01;我是 是Yu欸 …

巧用java8的stream流的.collect(Collectors.toMap(arg1,arg2))

最近公司接手了一个低代码二次开发平台的需求&#xff0c;需要连接多张表的数据然后展示到界面上。 按照java的sql思路&#xff0c;我们直接通过left join去关联表就行了&#xff0c;但是该低代码平台有对sql连表查询有限制&#xff0c;就是有些表它是存在一个domainKey的&…

牛客题霸-SQL大厂面试真题(一)

本文基于前段时间学习总结的 MySQL 相关的查询语法&#xff0c;在牛客网找了相应的 MySQL 题目进行练习&#xff0c;以便加强对于 MySQL 查询语法的理解和应用。 由于涉及到的数据库表较多&#xff0c;因此本文不再展示&#xff0c;只提供 MySQL 代码与示例输出。 以下内容是…

Java | Leetcode Java题解之第101题对称二叉树

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isSymmetric(TreeNode root) {return check(root, root);}public boolean check(TreeNode u, TreeNode v) {Queue<TreeNode> q new LinkedList<TreeNode>();q.offer(u);q.offer(v);while (!q.…

大数据框架总结(全)

☔️ 大数据框架总结&#xff08;全&#xff09; 关注“大数据领航员”&#xff0c;在公众号号中回复关键字【大数据面试资料】&#xff0c;即可可获取2024最新大数据面试资料的pdf文件 一. Hadoop HDFS读流程和写流程 HDFS写数据流程 &#xff08;1&#xff09;客户端通过…