• 【云原生】微服务Nacos的简单介绍与使用


    前言:
    最近看完了Nacos相关的课程,对相关知识总结如下,希望能够加深最近的印象以及帮助到各位大佬???
    如果文章有需要改进的地方还请大佬斧正???
    小威先感谢各位小伙伴儿了???
    在这里插入图片描述

    文章目录

    ??Nacos简介

    国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。
    Nacos是构建以“服务”为中的现代应架构(例如微服务范式、云原生范式)的服务基础设施,致力于微服务的发现、管理和信息配置,能帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理,从更敏捷、更容易的构建、交付和管理微服务平台。Nacos几乎支持所有主流类型的服务的发现、配置和管理。Nacos服务领域模型主要分为命名空间、集群、服务
    在这里插入图片描述

    ??Nacos实现原理

    和我们之前介绍的Eureka很相似。

    Nacos注册中心分为server与client,server采Java编写,为client提供注册发现服务与配置服务。而client可以用多种语言实现,client与微服务嵌套在起,nacos提供sdk和openApi,如果没有sdk也可以根据openApi手动写服务注册与发现和配置拉取的逻辑。

    服务注册的策略的是每5秒向nacos server发送次心跳,心跳带上了服务名,服务ip,服务端等信息。同时 nacos server也会向client 主动发起健康检查,支持tcp/http检查。
    Nacos 而且支持基于 DNS 和基于 RPC 的服务发现。

    原SDK、OpenAPI、或个独的Agent TODO注册 Service 后,服务消费者可以使DNS TODO或HTTP&API查找和发现服务。

    如果15秒内无心跳且健康检查失败则认为实例不健康,如果30秒内健康检查失败则剔除实例
    Nacos 提供对服务的实时的健康检查,阻向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层。

    在这里插入图片描述

    ??Nacos的使用

    1.引依赖:在cloud-demo父工程的pom文件中的中引入SpringCloudAlibaba的依赖

    
        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        2.2.6.RELEASE
        pom
        import
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在user-service和order-service中的pom文件中引入nacos-discovery依赖:

       
    com.alibaba.cloud    
    spring-cloud-starter-alibaba-nacos-discovery
    
    
    • 1
    • 2
    • 3
    • 4

    application代码

    @SpringBootApplication
    @EnableFeignClients(clients = UserClient.class,defaultConfiguration = DefaultFeignConfiguration.class)
    public class OrderApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(OrderApplication.class, args);
        }
    
        /**
         * 创建RestTemplate并注入Spring容器
         */
        @Bean
        @LoadBalanced
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在user-service和order-service的application.yml中添加nacos地址:

    spring:
      cloud:
        nacos:
          server-addr: localhost:8848
    
    
    server:
      port: 8080
    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/cloud_order?useSSL=false
        username: root
        password: 123
        driver-class-name: com.mysql.jdbc.Driver
      application:
        name: orderservice
      cloud:
        nacos:
          server-addr: 127.0.0.1:8848
    mybatis:
      type-aliases-package: cn.itcast.user.pojo
      configuration:
        map-underscore-to-camel-case: true
    logging:
      level:
        cn.itcast: debug
      pattern:
        dateformat: MM-dd HH:mm:ss:SSS
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    导入结果
    在这里插入图片描述

    ??Nacos分级存储

    一个服务可以有多个实例,例如我们的user-service,可以有81,82,83端口
    假如这些实例分布于全国各地的不同机房,例如:

    • 127.0.0.1:8081,在上海机房
    • 127.0.0.1:8082,在上海机房
    • 127.0.0.1:8083,在杭州机房
      Nacos就将同一机房内的实例 划分为一个集群
      即user-service是服务,一个服务可以包含多个集群,如杭州、上海,每个集群下可以有多个实例,形成分级模型
      在这里插入图片描述

    即Nacos分级模型:

    1. 一级是服务,例如提供用户功能的userservice服务
    2. 二级是集群,例如杭州机房集群、上海机房集群
    3. 三级是实例,例如杭州集群中某一台部署了userservice服务的服务器

    微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。
    在这里插入图片描述

    本文就先介绍这些,后续仍然会介绍Nacos的相关知识,如集群,负载均衡等。
    大佬感觉文章写的还不错的话,期待得到大佬的支持哟???
    最后再次感谢大家???
    在这里插入图片描述

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    在C#中使用Halcon开发视觉检测程序
    线程交互现象
    设计模式 - 组合模式理解及示例
    SpringBoot整合七牛云实现图片的上传管理
    如何轻松查询分析多个快递单号物流到站派件延误件
    web网页设计期末课程大作业:漫画网站设计——我的英雄(5页)学生个人单页面网页作业 学生网页设计成品 静态HTML网页单页制作
    大数据采集技术与预处理学习一:大数据概念、数据预处理、网络数据采集
    ARM cortex-M4核中断实验 中断和串口
    前端首屏渲染时间的极致优化
    软件测试<用例篇>
  • 原文地址:https://blog.csdn.net/m0_67392811/article/details/126080742