spring cloud alibaba之Nacos(服务注册与发现、配置管理、服务管理)扫盲知识

spring cloud alibaba中文文档链接
spring cloud alibaba github链接

  1. spring cloud alibaba主要功能
    在这里插入图片描述

  2. spring cloud alibaba主要组件
    在这里插入图片描述

  3. spring cloud alibaba 之 Nacos
    一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台.
    即Nacos就是注册中心 + 配置中心的组合.
    Nacos = Eureka + Config + Bus

  4. nacos与其他注册中心对比
    在这里插入图片描述

  5. nacos可以切换AP和CP
    C: consistency 一致性,所有节点在同一时间看到的数据是一致的.
    A: avaliable 可用性,所有的请求都会收到响应.
    切换模式命令:
    在这里插入图片描述

  6. AP和CP何时使用何种模式
    在这里插入图片描述

  7. 使用nacos需要导入的配置

    <!--        nacos-config配置中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <!--        nacos-discovery服务注册与发现-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  8. nacos的配置文件有两个: bootstrap.yml和application,yml
    在这里插入图片描述

  9. Nacos中的dataid的组成格式及SpringBoot配置文件中的匹配规则
    在这里插入图片描述
    即:
    在这里插入图片描述
    在这里插入图片描述
    注: yaml格式的配置文件不能写.yml,只能写.yaml.否则会报错

  10. nacos自带动态刷新
    当修改nacos中的配置文件时,再次调用查看配置的接口,就会发现配置已经刷新.

  11. nacos中的namespace、group、data id三者关系,以及为什么这么设计
    在这里插入图片描述

  • 最外层的namespace用于区分部署环境,主要用来实现隔离.比如有开发、测试、生产三个环境,就可以创建三个namespace,不同的namespace之间是隔离的.默认namespace=public.
  • Group和DataID逻辑上区分两个目标对象,Group可以把不同的微服务划分到同一个分组中.Group默认是DEFAULT_GROUP.
  • Service就是微服务,一个Service可以包含多个Cluster(集群),Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分.比方为了容灾,将service微服务分别部署在了杭州机房和广州机房,这时杭州机房的service微服务集群名称是HZ,广州机房的service微服务集群名称是GZ,这样还可以尽量让同一个机房的微服务相互调用,以提升性能.
  1. Nacos的三种部署模式
  • 单机模式: 用于测试和单机使用
  • 集群模式: 用于生产环境,确保高可用
  • 多集群模式: 用于多数据中心场景

默认Nacos使用嵌入式数据库实现数据的存储.所以,如果启动多个默认配置下的Nacos节点,数据存储存在一致性的问题.所以Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MYSQL的存储.

  1. Nacos持久化配置解释及步骤
    Nacos默认自带的是嵌入式数据库derby.
    derby到mysql切换配置步骤:
  • 打开nacos/conf/nacos-mysql.sql,可以看到提示: /* 数据库全名 = nacos_config */, 所以新建数据库nacos_config,在该数据库下新建查询,并执行nacos-mysql.sql中的语句,会创建出11张表.
  • 打开nacos/conf/application.properties文件,添加下面连接数据库语句
    在这里插入图片描述
  • 启动nacos,可以看到全新的空记录界面,以前是derby默认的嵌入式数据库.
  1. Nacos集群配置
  • 总架构
    在这里插入图片描述

  • Linux服务器上mysql数据库配置
    新建nacos_config数据库,然后在该数据库下执行nacos/conf/nacos-mysql.sql中的sql语句.

  • 配置application.properties
    在该文件下添加如下内容
    在这里插入图片描述

  • linux服务器上nacos的集群配置cluster.conf
    nacos/conf下有默认配置cluster.conf.example,先拷贝重命名为cluster.conf,然后在该文件中添加ip地址:端口号.
    通过ifconfig可查询出本机ip地址(linux下也可以通过hostname -i).
    在这里插入图片描述
    注: ip地址:端口号之间不能有空格,否则虽然能启动,但是nacos.log文件会报错,并且nacos图形化界面的节点列表为空.

  • 编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口,然后保存退出
    在这里插入图片描述
    在这里插入图片描述

  • 配置Nginx,由它作为负载均衡器
    修改nginx/conf/nginx.conf(监听端口linux默认是80, mac os电脑上默认是8080)
    在这里插入图片描述

  • 测试通过nginx访问nacos
    在nacos/bin目录下执行sh startup.sh -p 3333 -m standalone、sh startup.sh -p 4444 -m standalone、sh startup.sh -p 5555 -m standalone 启动nacos集群.(不加-m standalone,nacos的节点列表为空,微服务也不能注册,但是加了的话节点列表只显示一个实例,刷新一次显示另一个实例,就不是集群了应该,不知道怎么回事)
    启动nginx:

    mac下通过如下命令启动:
    nginx
    linux下通过如下命令启动:
    ./nginx -c /usr/local/nginx/conf/nginx.conf
    

    输入http://172.19.99.221(ip):1111(port)/nacos通过nginx访问nacos

  • 微服务的application.yml文件中配置spring.cloud.nacos.discovery.server-addr

server:
  port: 9002

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: 172.19.99.221:1111       # nginx的1111端口,做集群
#        server-addr: localhost:8848

management:
  endpoints:
    web:
      exposure:
        include: '*'
  • 启动9002微服务,并通过http://172.19.99.221(ip):1111(port)/nacos可以看到9002微服务注册进nacos.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值