一分钟带你快速进入Nacos的世界,史上最简易教程!零基础也能看明白!谁反对?

Posted IT挖掘机y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一分钟带你快速进入Nacos的世界,史上最简易教程!零基础也能看明白!谁反对?相关的知识,希望对你有一定的参考价值。

首先容我先说一句题外话:你们能不能不要再卷了,给我留条活路吧!

在这里插入图片描述


1、Nacos简介

阿里巴巴出品,经历了长达十多年的双十一磨练;我只能说一句:阿里出品,必是精品!
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。简单了说就是注册中心+配置中心(还不错,搞下台三个框架)。

如果你使用过Eureka,你就会发现Nacos是真的方便。服务列表也不用搭建了,nacos都帮你弄好了。

在这里插入图片描述

nacos的下载安装教程地址:https://blog.csdn.net/Kevinnsm/article/details/117387323?spm=1001.2014.3001.5501

spring cloud alibaba nacos官网教程地址https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_start_a_consumer_application

nacos官网地址:https://nacos.io/

2、服务提供模块搭建

1、创建一个父工程(pom文件如下)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.hao</groupId>
    <artifactId>cloudAlibaba-nacos</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>provider-service</module>
        <module>consumer-service</module>
    </modules>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.6.RELEASE</version>
    </parent>
    <properties>
        <spring.cloud.alibaba.version>2021.1</spring.cloud.alibaba.version>
        <spring.cloud.alibaba.nacos.version>2.1.1.RELEASE</spring.cloud.alibaba.nacos.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>${spring.cloud.alibaba.nacos.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

2、创建一个服务提供子模块(pom依赖如下)

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

3、controller层

@RestController
public class ProviderController {

    @GetMapping(value = "/echo/{str}")
    public String echo(@PathVariable("str") String str) {
        return "hello" +"\\t"+ str;
    }
}

4、application.properties(或application.yaml)中必须包含Nacos的一些基础配置,如下

server:
  port: 8080
spring:
  application:
    name: provider-service
  cloud:
    nacos:
      discovery:
        server-addr: http://你的ip:8848	#注册进服务中心

如果不想使用 Nacos 进行服务注册和发现,可以设置spring.cloud.nacos.discovery为false.

5、启动类

@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosProviderApplication.class,args);
    }
}

启动provider之后,你就可以在 Nacos 控制台上看到注册的服务了。
在这里插入图片描述

注意一定要启动nacos服务,我在云服务器启动的nacos;如果不懂请移步:https://blog.csdn.net/Kevinnsm/article/details/117387323?spm=1001.2014.3001.5501

3、服务消费者搭建

除了controller之外,其他基本一样;不再叙述(application.yml启动端口需要改变、启动类run方法参数需要改动)

@RestController
public class ConsumerController {

    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private LoadBalancerClient loadBalancerClient;

    @Value(value = "${spring.application.name}")
    private String serviceName;

    @GetMapping(value = "/echo/name")
    public String echoName() {
        ServiceInstance instance = loadBalancerClient.choose("provider-service");
        String path = String.format("http://%s:%s/echo/%s", instance.getHost(), instance.getPort(), serviceName);
        System.out.println(path);
        return restTemplate.getForObject(path,String.class);
    }
}

多了一个config配置类,因为要远程调用嘛!

@Configuration
public class NacosConfig {

    @Bean
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }
}

参考了官网的教程:https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html#_start_a_consumer_application

4、测试

启动这两个服务,访问ip:8848/nacos/

在这里插入图片描述

调用consumer接口 http://localhost:8081/echo/name

在这里插入图片描述
在这里插入图片描述
成功了呀!

在这里插入图片描述

以上是关于一分钟带你快速进入Nacos的世界,史上最简易教程!零基础也能看明白!谁反对?的主要内容,如果未能解决你的问题,请参考以下文章

零基础带你一步步搭建Nacos高可用集群(史上最详细,赛过教科书!)为此我准备了三台云服务器+云数据库

史上最全 SpringCloudAlibaba入门教程,从零开始带你深入♂学习——Nacos组件:环境配置

[分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

史上最简约的vi教程,10分钟包教会

android room史上最快速入门教程(kotlin版本)

android room史上最快速入门教程(kotlin版本)