天天看点

Springcloud 学习笔记06-Nacos 下载安装与基本使用

1.nacos基本架构及概念

Springcloud 学习笔记06-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​​

Springcloud 学习笔记06-Nacos 下载安装与基本使用

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

Springcloud 学习笔记06-Nacos 下载安装与基本使用

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

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

Springcloud 学习笔记06-Nacos 下载安装与基本使用

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

Springcloud 学习笔记06-Nacos 下载安装与基本使用

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

Springcloud 学习笔记06-Nacos 下载安装与基本使用

用户名密码:nacos/nacos

Springcloud 学习笔记06-Nacos 下载安装与基本使用

3.服务提供者

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

Springcloud 学习笔记06-Nacos 下载安装与基本使用

第二步:先来处理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管理台在服务管理菜单下的服务列表项可以看到注册的实例信息。

Springcloud 学习笔记06-Nacos 下载安装与基本使用
Springcloud 学习笔记06-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      

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

Springcloud 学习笔记06-Nacos 下载安装与基本使用
Springcloud 学习笔记06-Nacos 下载安装与基本使用