SpringCloud——Nacos

请添加图片描述
个人名片:

博主:酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志三人行,必有我师焉。

请添加图片描述
本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看

目录

  • 一、安装
  • 二、服务注册
  • 三、集群
  • 四、负载均衡
  • 五、权重设置
  • 六、环境隔离
  • 七、实例

一、安装

从资料中直接解压即可
image.png
启动: 在bin目录中,双击startup.cmd或命令行(.\startup.cmd -m standalone)启动。

二、服务注册

  1. 添加父类

<dependency>
  <groupId>com.alibaba.cloudgroupId>
  <artifactId>spring-cloud-alibaba-dependenciesartifactId>
  <version>2.2.5.RELEASEversion>
  <type>pomtype>
  <scope>importscope>
dependency>
  1. 注释掉user-service和order-service中的pom.xml中的eureka依赖
  2. 添加nacos依赖

<dependency>
  <groupId>com.alibaba.cloudgroupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
  1. 注释掉user-service和order-service中的application.yml中的eureka地址,添加server-addr
spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos服务地址

三、集群

  1. 添加集群名
spring:
  cloud:
    nacos:
      discovery:
        cluster-name: HZ # 配置集群名
  1. 重新启动userapplicationuserapplication1

注意:两个都启动

  1. 修改集群名
spring:
  cloud:
    nacos:
      discovery:
        cluster-name: SH # 配置集群名
  1. 重新启动userapplicationuserapplication1

注意:只启动一个

  1. 效果:

SpringCloud——Nacos_第1张图片

四、负载均衡

  1. 在order-service中的application.yml中添加服务端地址与集群名称
spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: SH # 配置集群名
  1. 修改之前配置过的负载均衡规则
userservice:
  ribbon:
#    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则 随机
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule  # 负载均衡规则 优先会寻找与自己同集群的服务 SH

五、权重设置

在nacos启动后的浏览器页面设置。
SpringCloud——Nacos_第2张图片

六、环境隔离

  1. 通过命名空间设置新的空间SpringCloud——Nacos_第3张图片
  2. 隔离哪个模块在哪个模块的application.yml中命名,这里以order-service为例
spring:
  cloud:
    nacos:
      discovery:
        namespace: 1b5eb97f-62b6-46f4-855f-4f9e47292d79 # 命名空间  ID

注意:此时无法访问order数据。

七、实例

  1. 是否开启临时实例
spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false # 是否是临时实例
  1. 区别:

当相应的模块挂掉时
临时实例,检测缓慢(心跳模式),之后剔除。
非临时实例,检测迅速(主动检测),不会剔除

你可能感兴趣的:(SpringCloud,spring,cloud,java,eureka)