Spring Cloud阿里巴巴系列(一)nacos作为服务注册中心-掘金

Spring Cloud阿里巴巴系列(一)nacos作为服务注册中心-掘金

执偕
2020年05月09日阅读87

Spring Cloud阿里巴巴系列(一)nacos作为服务注册中心

Spring Cloud阿里巴巴各组件版本关系

Spring Cloud阿里巴巴版 前哨版本 Nacos版本 RocketMQ版本 达博版 Seata版本
2.2.1。发布 1.7.1 1.2.1 4.4.0 2.7.6 1.1.0
2.2.0。发布 1.7.1 1.1.4 4.4.0 2.7.4.1 1.0.0
2.1.2.RELEASE或2.0.2.RELEASE 1.7.1 1.2.1 4.4.0 2.7.6 1.1.0
2.1.1.RELEASE或2.0.1.RELEASE或1.5.1.RELEASE 1.7.0 1.1.4 4.4.0 2.7.3 0.9.0
2.1.0.RELEASE或2.0.0.RELEASE或1.5.0.RELEASE 1.6.3 1.1.1 4.4.0 2.7.3 0.7.1

毕业版本依赖关系

Spring Cloud版本 Spring Cloud阿里巴巴版 春季启动版
Spring Cloud Hoxton.SR3 2.2.1。发布 2.2.5。发布
Spring Cloud Hoxton。发布 2.2.0。发布 2.2.X.发布
格林威治春季云 2.1.2发布 2.1.X.发布
春云芬奇利 2.0.2。发布 2.0版本
Spring Cloud Edgware 1.5.1。发布 1.5.X.发布

这次项目中我们用的alibaba版本是2.2.1 REALEASE,因此各组件的版本与之对应,在实际应用中请使用和与Spring Cloud Alibaba版本相对应的Spring Cloud版本和Spring Boot版本。

什么是nacos

在spring cloud版本中我们使用eureka,consul等做为服务注册中心,使用spring cloud config做为配置中心。而在spring cloud alibaba中,使用nacos组件即可完成服务注册发现与服务配置两大功能。

安装nacos

**下载地址:** github.com/alibaba/nac ...

nacos支持的三种模式:

  • 单机模式-用于测试和单机试用。
  • 发挥模式-用于生产环境,确保高可用。
  • 多可用模式-使用多数据中心场景。

下载完成后解压,我们发现有两个启动文件,stratup.cmd和startup.sh。打开这两个文件我们发现startup.cmd安装支持的是单机模式,startup.sh支持的是继承模式。

我们双击运行startup.cmd。

  • nacos默认端口是:8848
  • 默认用户名:nacos
  • 默认密码:nacos

访问http://127.0.0.1:8848/nacos/index.html,如果出现以下界面则安装正常。

注册一个服务到nacos

  1. 新建一个服务,在pom中加入必要的依赖
java  <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.2.5.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <dependencyManagement>
    <dependencies>
      <!--Spring cloud Hoxton.SR3-->
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR3</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!--Spring cloud alibaba 2.1.0.RELEASE-->
      <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2.2.1.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
  </dependencies>
复制代码
  1. 在application.yml中配置服务名称和nacos地址
javaserver:
  port: 9001
spring:
  application:
    name: nacos-discovery-server
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
复制代码
  1. 提供一个接口
java@SpringBootApplication
public class NacosDiscoveryServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(NacosDiscoveryServerApplication.class, args);
    }
    @RestController
    static class TestController {
        @GetMapping("/hello")
        public String hello(@RequestParam String name) {
            return "hello,nacos discovery! " + name;
        }
    }
}
复制代码
  1. 启动服务,控制台打印以下内容,就说明注册成功了。
java2020-04-28 14:49:42.749  INFO 9864 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, DEFAULT_GROUP nacos-discovery-server 192.168.9.114:9001 register finished
复制代码
  1. :nacos控制台,我们可以在服务列表中发现我们的服务了。

注意事项

  1. 为什么我们的启动类上没有加@EnableDiscoveryClient注解,但是已经把服务注册到nacos上了?

    在springcloud E版本的时候,对服务注册进行了优化,在依赖了spring-cloud-starter-alibaba-nacos-discovery之后,可以替换服务注册到注册中心。

  2. 在已经依赖spring-cloud-starter-alibaba-nacos-discovery的情况下,如果我们不想让我们的服务注册到nacos应该怎么做?

    在配置文件中添加如下依赖即可:

javaspring:
  cloud:
    nacos:
      discovery:
        enabled: false
复制代码

代码示例



Tags: published
May 09, 2020 at 07:19PM
Open in Evernote

评论

此博客中的热门博文

Telegram MTProto Proxy 介绍说明 – 开源代码|技术|教程资源|网络资源|首页不显示 – 如有乐享

CentOS���yum������ffmpeg

拜托!面试请不要再问我Spring Cloud底层原理 – 掘金