Nacos教程

常见的微服务架构:

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

1.什么是Nacos

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

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

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


2.nacos基本使用

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

启动:

方式一:

默认以集群的方式启动

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

.\startup.cmd -m standalone

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

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


3.创建nacos客户端

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

<spring-cloud-alibaba-version>2.1.3.RELEASE</spring-cloud-alibaba-version>
<!--引入nacos-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${spring-cloud-alibaba-version}</version>
</dependency>
启动类添加注解
// nacos使用的注解
@EnableDiscoveryClient

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 文件导入数据库

修改 application.properties 文件,打开数据库连接并修改连接信息

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

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

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

启动(三个):

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


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

新建配置:

idea新建项目,引 jar 包,

<!--为了测试使用spring注解引入-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--引入nacos-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${spring-cloud-alibaba-version}</version>
</dependency>
<!--nacos配置中心-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${spring-cloud-alibaba-version}</version>
</dependency>
创建bootstrap.yml

application.yml 中添加

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

创建Controller测试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚人钊呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值