Nacos教程

常见的微服务架构:

1. dubbo:
        zookeeper +dubbo + SpringMVC/SpringBoot
        配套 通信方式:rpc
        注册中心:zookeeper / redis
2.SpringCloud
        全家桶+ 轻松嵌入第三方组件 (Netflix)
        配套 通信方式:http restful
        注册中心:eruka
        配置中心:config
        断 路 器:hystrix
        网关:zuul
        分布式追踪系统:sleuth + zipkin
3.SpringCloud Alibaba
Nacos教程_第1张图片

Nacos教程_第2张图片

1.什么是Nacos?

        nacos是 spring cloud alibaba 生态中非常重要的一个组件,它有两个作用:
  1. 注册与发现中心;
  2. 配置中心

        nacos有注册中心的作用,我们常见的配置中心还有zkeureka

微服务 CAP  原则:
1 C(consistency): 一致性,同一时刻的同一请求的实例返回结果相同,属于强一致性性,也就是说,在集群环境中,对外提供的服务信息是完全一致的,但是在效率上面可能会有一定的损耗;
2 A(availability): 可用性,所有实例的读写请求在一定的时间内可以得到正确的响应,它是弱一致性,可能在极短的时间内,不同实例获取到的信息是不一致的,但是服务可用并且最终数据是一致的;
3 P(Partition tolerance): 分区容错性,在网络异常的情况下,仍旧能够提供正常的响应,这是在微服务系统中必须要保证的;
Nacos教程_第3张图片
        nacos在启动时,默认是 AP 模式,可以通过指令将 nacos 变为 CP 模式,在我们经常使用的微服务中,我们是选择使用AP 模式的,此时的所有实例都属于临时实例。临时实例和持久实例最显著的区别就是在健康检查发现服务有问题时,持久实例被标注为不健康,而临时实例会直接剔除。

Nacos教程_第4张图片


2.nacos基本使用

        nacos大体分为两部分: nacos 服务端和 nacos 客户端,首先是 nacos 服务端 ,这一部分是不需要做任何改动,直接启动服务即可。
下载:

Nacos教程_第5张图片

启动:

方式一:

Nacos教程_第6张图片

默认以集群的方式启动

Nacos教程_第7张图片

方式二:windows命令启动 (后缀standalone指的是以单例的方式进行启动)

.\startup.cmd -m standalone

访问:http://localhost:8848/nacos

Nacos教程_第8张图片

开启后默认账号密码均为nacos,即可访问服务

Nacos教程_第9张图片


3.创建nacos客户端

        idea 创建springboot项目,引入jar包。

Nacos教程_第10张图片

2.1.3.RELEASE


    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery
    ${spring-cloud-alibaba-version}
启动类添加注解
// nacos使用的注解
@EnableDiscoveryClient

Nacos教程_第11张图片

application.yml  配置
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848  #服务地址(默认端口号为8848)
  application:
    name: cloud-user-provider #服务名

注意:版本对应问题


4.nacos集群配置

        Nacos集群默认最小要有三个节点,而且三个节点的配置中心的数据都需要存储在 MySQL 数据库中。
        在mysql 中创建数据库 nacos ,并在 nacos conf 目录下找到 nacos-mysql.sql 文件导入数据库

Nacos教程_第12张图片

修改 application.properties 文件,打开数据库连接并修改连接信息
Nacos教程_第13张图片

conf 目录下,修改文件名 cluster.conf.example cluster.conf

Nacos教程_第14张图片

IP( 可使用 ipconfig 查看自己的 IP 地址 )+ 端口号

Nacos教程_第15张图片

注意:端口号不要连续,如 8081 8082 8083 。连续端口会报错

启动(三个):

Nacos教程_第16张图片

启动后在集群管理即可查看:

Nacos教程_第17张图片


5.nacos负载均衡

        nacos实现负载均衡是通过内置的 Ribbon 实现的。默认的负载均衡策略是使用的 Ribbon 中的默认策略 —轮询(我的端口号为3333)。

        负载均衡实现前提,服务名相同

server:
  port: 8881
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:3333  #服务地址(默认端口号为8848)
  application:
    name: cloud-user-provider #服务名
dubbo:
  application:
    name: cloud-user-provider
  scan:
    base-packages: com.hz.service.impl #扫包
  protocol:
    # 协议名称
    name: dubbo
    port: -1
    #注册中心
  registry:
    #注册中心地址列表,同一集群内的多个地址用逗号分隔
    address: nacos://127.0.0.1:3333


6.nacos配置中心

        nacos同 spring-cloud-config 一样,可以作为一个配置中心,统一的来管理配置,可以配置多套环境, 各个微服务可以按需到nacos 配置中心拉取相关配置, 且支持动态刷新 @RefreshScope

Nacos教程_第18张图片

Nacos教程_第19张图片

Nacos教程_第20张图片

新建配置:

Nacos教程_第21张图片

idea新建项目,引 jar 包,



    org.springframework.boot
    spring-boot-starter-web



    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery
    ${spring-cloud-alibaba-version}



    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-config
    ${spring-cloud-alibaba-version}
创建bootstrap.yml

Nacos教程_第22张图片

Nacos教程_第23张图片

application.yml 中添加
Nacos教程_第24张图片

注意:使用nacos 作为配置中心时,
需要创建一个 bootstrap.yaml application.yaml 两个配置文件,
bootstrap.yaml 优先级 高于 application.yaml ,加载时实现加载 bootstrap.yaml 中的相关配置

 

你可能感兴趣的:(微服务,java,微服务,nacos)