Spring Cloud Alibaba(三) Nacos 注册中心(服务于发现)

Nacos 是什么,做什么用的

这里我就不bb了, 官方文档不是更加详细吗,还有的更新
去吧,这里去Nacos官网

但是我还是要bb一下.

概述

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以 “服务” 为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

在这里插入图片描述

  • 特性大图:要从功能特性,非功能特性,全面介绍我们要解的问题域的特性诉求
  • 架构大图:通过清晰架构,让您快速进入 Nacos 世界
  • 业务大图:利用当前特性可以支持的业务场景,及其最佳实践
  • 生态大图:系统梳理 Nacos 和主流技术生态的关系
  • 优势大图:展示 Nacos 核心竞争力
  • 战略大图:要从战略到战术层面讲 Nacos 的宏观优势

总的来说,不久是服务注册于发现咯~ 和Eureka很像嘛…“啪啪打脸~” , 反正官网说的功能他都实现了咯, 这比Eureka还是强一点点的…

Nacos 安装

操作步骤

官网自己看: 怎么版本的都有

启动了之后(我这里用windows的)

默认端口 8848

输入: http://localhost:8848/nacos/#/login 就可以登录了

提供方:

导入这个包,分布式服务很需要注意版本问题,还需要设置启动入口

xml文件配置

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.example</groupId>
        <artifactId>hello-spring-cloud-alibaba-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>


    <artifactId>hello-spring-cloud-alibaba-provider</artifactId>
    <name>hello-spring-cloud-alibaba-provider</name>
    <packaging>jar</packaging>
    <url>http://www.funtl.com</url>
    <inceptionYear>2018-Now</inceptionYear>

    <!--开源协议-->
    <licenses>
        <license>
            <name>Apache 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
    <developers>
        <developer>
            <id>Tang</id>
            <name>Tang Tem</name>
            <email>[email protected]</email>
        </developer>
    </developers>


    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!-- Spring Boot Begin -->
        <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>
        <!-- Spring Boot End -->

        <!-- Spring Cloud Begin   nacos 的包-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.9.0.RELEASE</version>
        </dependency>
        <!-- Spring Cloud End -->
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--设置启动入口-->
                <configuration>
                    <mainClass>com.example.hello.spring.cloud.alibaba.provider.HelloSpringCloudAlibabaProviderApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

       

application.yml


spring:
  application:
    # 服务名
    name: service-provider
  cloud:
    nacos:
      discovery:
        # 服务注册中心
        server-addr: localhost:8848
server:
  # 服务端口
  port: 8070
  

启动项

加上 @EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class HelloSpringCloudAlibabaProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloSpringCloudAlibabaProviderApplication.class, args);
    }
}


成功启动后登录nacons

在这里插入图片描述

这样提供方就注册成功了

controller

@RestController
public class EchoController {

    @RequestMapping(value = "/echo/{string}")
    public String echo(@PathVariable("string") String string){
        return "Hello Nacos Provider    " + string;
    }
}

访问一下

在这里插入图片描述

ok了

消费方

消费方嘛,和提供方配置都差不多,导包也是一样的,只需要改一下端口号就好

还需要添加一个配置类:

@Configuration
public class ConsumerConfiguration {

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

}

测试一样有了

在这里插入图片描述

之后我们就需要去请求服务,请求有两种方式http和rpc
我们直接用 feign声明式客服端,下一篇讲.

发布了56 篇原创文章 · 获赞 3 · 访问量 4421

猜你喜欢

转载自blog.csdn.net/Tang_5253/article/details/102661473