zoukankan      html  css  js  c++  java
  • Springcloud 学习笔记06-Nacos 下载安装与基本使用

    1.nacos基本架构及概念

    服务 (Service)

    服务是指一个或一组软件功能(例如特定信息的检索或一组操作的执行),其目的是不同的客户端可以为不同的目的重用(例如通过跨进程的网络调用)。Nacos 支持主流的服务生态,如 Kubernetes Service、gRPC|Dubbo RPC Service 或者 Spring Cloud RESTful Service。

    服务注册中心 (Service Registry)

    服务注册中心,它是服务,其实例及元数据的数据库。服务实例在启动时注册到服务注册表,并在关闭时注销。服务和路由器的客户端查询服务注册表以查找服务的可用实例。服务注册中心可能会调用服务实例的健康检查 API 来验证它是否能够处理请求。

    服务提供方 (Service Provider)

    是指提供可复用和可调用服务的应用方。

    服务消费方 (Service Consumer)

    是指会发起对某个服务调用的应用方。

    配置 (Configuration)

    在系统开发过程中通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成这个步骤。配置变更是调整系统运行时的行为的有效手段之一。

    配置管理 (Configuration Management)

    在数据中心中,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动统称为配置管理。

    名字服务 (Naming Service)

    提供分布式系统中所有对象(Object)、实体(Entity)的“名字”到关联的元数据之间的映射管理服务,例如 ServiceName -> Endpoints Info, Distributed Lock Name -> Lock Owner/Status Info, DNS Domain Name -> IP List, 服务发现和 DNS 就是名字服务的2大场景。

    2.单机版nacos安装教程

    (1)Nacos下载地址:https://github.com/alibaba/nacos/releases

    (2)下载完毕后,进行解压后,我们可以看看目录结构:

    这里的bin目录里面有windows启动文件startup.cmd,我们双击就能启动了,和大多数windows进程类似。

    (3)注意:启动的是单机版的nacos,修改startup.cmd相关脚本

    (4)启动后会有一个cmd窗口去打印命令并启动。

    (5)访问地址:http://localhost:8848/nacos/index.html

    用户名密码:nacos/nacos

    3.服务提供者

    第一步:创建一个nacos-test项目,包含两个模块nacos-provider和nacos-consumer,在父项目pom.xml文件统一管理springboot、spring cloud和spring cloud alibaba版本。
    在这里插入图片描述

    第二步:先来处理nacos-provider模块项目,在nacos-provider模块项目的pom.xml配置alibaba-nacos-discovery依赖。

    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.0</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--nacos注册中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

    第三步:编写入口类NacosProvider ,并添加一个EchoController 提供HTTP接口服务。

    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosProvider {
    
        public static void main(String[] args) {
            SpringApplication.run(NacosProvider.class,args);
        }
    
        @RestController
        class EchoController {
    
            @GetMapping("/echo/{string}")
            public String echo(@PathVariable String string) {
                return "Hello Nacos Discovery " + string;
            }
        }
    
    }

    第四步:在bootstrap.yml文件配置nacos配置中心相关参数。

    spring:
      application:
        name: nacos-provider
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.0.127:8848 #注册中心地址
    server:
      port: 17357

    第五步:运行nacos-provider,可以从启动日志看到注册到了nacos,打开nacos管理台在服务管理菜单下的服务列表项可以看到注册的实例信息。

    4.服务消费者

    第一步:接下来处理nacos-consumer模块项目,在nacos-consumer模块项目的pom.xml配置同样加上alibaba-nacos-discovery依赖。

    第二步:编写入口类NacosConsumer ,并添加一个TestController提供HTTP接口服务,通过RestTemplate远程调用NacosProvider。

    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosConsumer {
    
        @LoadBalanced
        @Bean
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    
        public static void main(String[] args) {
            SpringApplication.run(NacosConsumer.class,args);
        }
    
        @RestController
        public class TestController {
    
            private final RestTemplate restTemplate;
    
            @Autowired
            public TestController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}
    
            @GetMapping("/echo/{str}")
            public String echo(@PathVariable String str) {
                return restTemplate.getForObject("http://nacos-provider/echo/" + str, String.class);
            }
    
        }
    
    }

    第三步:在bootstrap.yml文件配置nacos配置中心相关参数。

    spring:
      application:
        name: nacos-consumer
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.0.127:8848 #注册中心地址
    server:
      port: 17358

    第四步:测试消费者调用提供者接口服务。

     

    参考文献:https://blog.csdn.net/q15102780705/article/details/102571353

    https://nacos.io/zh-cn/docs/architecture.html 官方文档

    https://www.cnblogs.com/engineer-luke/p/12171071.html

  • 相关阅读:
    百度脑图源码
    H5与Native交互的实现
    【GOF23设计模式】建造者模式
    【GOF23设计模式】工厂模式
    【GOF23设计模式】单例模式
    Linux符设备驱动编程
    linux多线程编程——读者优先、写者优先问题
    建立makefile
    构建交叉开发环境
    Failed to create the part's controls解决方法
  • 原文地址:https://www.cnblogs.com/luckyplj/p/15175191.html
Copyright © 2011-2022 走看看