您的位置:首页 > 教育 > 锐评 > 山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十二)- 微服务(2)

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

2025/5/10 3:28:50 来源:https://blog.csdn.net/qq_64663346/article/details/139271850  浏览:    关键词:山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十二)- 微服务(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微服务访问任何微服务都遵循该策略),修改为随机策略 :

  @Beanpublic 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=falseusername: rootpassword: 888888driver-class-name: com.mysql.jdbc.Driverapplication: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=falseusername: rootpassword: 888888driver-class-name: com.mysql.jdbc.Driverapplication:name: orderservice  # order服务名称cloud:nacos:server-addr: localhost:8848    # nacos服务地址discovery:cluster-name: HZ  # 集群名称   HZ代指杭州namespace: 9d2976a6-9560-46b7-a680-260801971b01   #   命名空间的id

修改结果 :

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com