三、Nacos

三、Nacos

    1、简介

        (1)、2018年7月发布第一个release版本,Nacos注册中心分为server与client,server采用Java编写,为client提供注册发现服务与配置服务。而client可以用多语言实现,client与微服务嵌套在一起,nacos提供sdk和openApi,如果没有sdk也可以根据openApi手动写服务注册与发现和配置拉取的逻辑。

            Nacos就是注册中心+配置中心的组合,等价于Eureka + Config + Bus。Nacos默认自带的是嵌入式数据库derby实现数据存储。所以如果启动多个默认配置下的Nacos节点,数据存储存在一致性问题,所以Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL存储。

            Nacos集成Ribbon,可以实现负载均衡。

        (2)、特性 

            ①、服务发现和服务健康监测

                Nacos支持基于DNS和基于RPC的服务发现,Nacos提供对服务的实时的健康检查。服务注册的策略的是每5秒向Nacos Server发送一次心跳,心跳带上了服务名、服务IP、服务端口等信息。同时Nacos Server也会向client主动发起健康检查,支持tcp/http检查。如果15秒内无心跳且健康检查失败则认为实例不健康,如果30秒内健康检查失败则剔除实例。

            ②、动态配置服务

                Nacos提供了一个简洁易用的UI帮助管理所有的服务和应用的配置。动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷,配置中心化管理让实现无状态服务变得更简单。

            ③、动态DNS服务

                动态DNS服务支持权重路由,更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。

            ④、服务及其元数据管理

                Nacos能从微服务平台建设的视角管理数据中心的所有服务及元数据。

    2、Nacos作为注册中心

        应用:Provider、Sob

        (1)、引入pom

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

        (2)、修改yml 

            Provider配置

spring:
  application:
    name: provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

            Consumer配置

spring:
  application:
    name: demo
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

        (3)、修改启动类

            @EnableDiscoveryClient

            开启服务发现

    3、Nacos作为配置中心

        boostrap.yml由父ApplicationContext加载,比applicaton.yml优先加载,boostrap.yml里面的属性不能被覆盖。

        (1)、DataID方案

            ①、页面配置

                默认空间+默认分组+新建dev和test两个DataID

            ②、yml配置

                bootstrap.yml

spring:
  application:
    name: demo
  cloud:
    nacos:
      discovery:
#        作为注册中心
        server-addr: localhost:8848
      config:
#        作为配置中心
        server-addr: localhost:8848
        file-extension: yaml

                application.yml

spring:
  profiles:
#    active: dev # 读取application-dev.yaml
    active: test # 读取application-test.yaml

        (2)、Group方案

            ①、页面配置可配置为DEV_GROUP或TEST_GROUP

            ②、yml配置

                bootstrap.yml

spring:
  application:
    name: demo
  cloud:
    nacos:
      discovery:
#        作为注册中心
        server-addr: localhost:8848
      config:
#        作为配置中心
        server-addr: localhost:8848
        file-extension: yaml
#        group: TEST_GROUP #Test环境
        group: DEV_GROUP #Dev环境

                application.yml

spring:
  profiles:
#    active: dev # 读取application-dev.yaml
#    active: test # 读取application-test.yaml
    active: info

        (3)、Namespace

            ①、新建test、dev命名空间

            ②、在命名空间创建配置文件,根据是否需要自定义Group

            ③、配置yml

                bootstrap.yml

spring:
  application:
    name: demo
  cloud:
    nacos:
      discovery:
#        作为注册中心
        server-addr: localhost:8848
      config:
#        作为配置中心
        server-addr: localhost:8848
        file-extension: yaml
#        group: DEV_GROUP #Dev环境
        group: TEST_GROUP #Test环境
        namespace: 1e3dc5d7-747b-47e9-b0ed-07874e27fcd3

                application.yml

spring:
  profiles:
#    active: info
#    active: test # 读取application-test.yaml
    active: dev # 读取application-dev.yaml

    4、集群实现

        (1)、下载安装nacos-server

            ①、官网下载nacos-server

            ②、解压安装包,找到bin目录下的startup.cmd

                Windows:直接运行startup.cmd

                Mac:执行命令:sh  startup.sh -m standalone

            ③、安装运行成功后直接访问:http://localhost:8848/nacos       用户名/密码默认:nacos

        (2)、Nacos持久化配置修改

            ①、在nacos-server-1.1.4\nacos\conf目录下找到sql脚本nacos-mysql.sql,执行SQL。

            ②、在nacos-server-1.1.4\nacos\conf目录下找到application.properties,添加一下配置

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

        (3)、配置Nacos集群

            ①、梳理出Nacos服务的地址和端口号

                例:192.168.111.144:3333

                       192.168.111.144:4444

                       192.168.111.144:5555

            ②、在nacos-server-1.1.4\nacos\conf目录下找到cluster.conf.example,复制后改为cluster.conf。添加Nacos集群每台机器的地址加端口号

        (4)、配置Nginx

            配置Nginx作为负载均衡器指向Nacos集群,负责负载均衡Nacos集群。

            例:192.168.111.144:1111

        (5)、创建测试项目配置yml

spring:
  application:
    name: sob
  cloud:
    nacos:
      discovery:
#        配置Nginx地址,做集群
        server-addr: 192.168.111.144:1111

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值