Nacos 1.3.0 搭建服务注册基础入门Demo

前言

最近在学习Nacos看了很多文章,今天不谈理论只上干货文章内容主要是Nacos的下载安装及服务注册,在这个过程中我想要表达的不仅是过程还有更重要的方法。此外我的写作目的有二,一是作为自己学习的记录,二是针对1.3.0这个版本写一个demo帮助有兴趣的同学快速入门少走弯路。

本文是基于以下环境搭建:

环境 版本
JDK 1.8
SpringBoot 2.2.0.RELEASE
SpringCloud Hoxton.RELEASE
Nacos 1.3.0

一、 Nacos下载安装

移步Nacos官网 https://nacos.io,然后按截图从github上下载稳定版

Nacos 1.3.0 搭建服务注册基础入门Demo_第1张图片

Nacos 1.3.0 搭建服务注册基础入门Demo_第2张图片

Nacos 1.3.0 搭建服务注册基础入门Demo_第3张图片

解压到磁盘后找到bin目录中的启动文件,windows 选择startup.cmd启动,linux选择startup.sh文件,单机启动执行

sh startup.sh -m standalone 命令启动。

Nacos 1.3.0 搭建服务注册基础入门Demo_第4张图片

Nacos 1.3.0 搭建服务注册基础入门Demo_第5张图片

Nacos默认端口是8848,启动浏览器访问http://localhost:8848/nacos地址,用户名密码默认都是nacosNacos 1.3.0 搭建服务注册基础入门Demo_第6张图片可以看到服务列表是空的

Nacos 1.3.0 搭建服务注册基础入门Demo_第7张图片

二、注册服务

移步spring官网https://spring.io,查看集成Nacos所需依赖

Nacos 1.3.0 搭建服务注册基础入门Demo_第8张图片

Nacos 1.3.0 搭建服务注册基础入门Demo_第9张图片 找到对应版本点击进入查看集成说明Nacos 1.3.0 搭建服务注册基础入门Demo_第10张图片

然后再里面找到集成配置样例,这里只截一张,其他集成内容继续向下找

Nacos 1.3.0 搭建服务注册基础入门Demo_第11张图片

 2.1. 搭建consumer工程

样例看完了下面开始搭建服务工程。

(1)创建Maven父工程,重点在pom.xml 中添加 com.alibaba.cloud 依赖



    com.alibaba.cloud
    spring-cloud-alibaba-dependencies
    2.1.0.RELEASE
    pom
    import


    4.0.0

    microapps.cn
    jmeter
    pom
    1.0-SNAPSHOT

    
        consumer
        provider
    

    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.0.RELEASE
        
    

    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-web
        
    

    
        
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                Hoxton.RELEASE
                pom
                import
            
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.1.0.RELEASE
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    true
                
            
        
    

(2)创建子工程,重点在pom.xml 中添加 discovery 依赖


    com.alibaba.cloud
    spring-cloud-starter-alibaba-nacos-discovery


    
        jmeter
        microapps.cn
        1.0-SNAPSHOT
    
    4.0.0

    microapps.cn
    server

    
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
    

(3)创建启动类,并加入 @EnableDiscoveryClient注解标明启用发现服务客户端

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @author liuhe
 */
@SpringBootApplication
@EnableDiscoveryClient
class ConsumerApplication {
  public static void main(String[] args) {
    SpringApplication.run(ConsumerApplication.class, args);
  }
}

 (4)创建yml配置文件,指向Nacos服务地址

spring:
  application:
    name: consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
server:
  port: 8080

 (5)启动程序注册服务,发现服务以及注册到Nacos服务列表中了

Nacos 1.3.0 搭建服务注册基础入门Demo_第12张图片

三、向Nacos注册元数据

 在工程中添加配置类,在其中加入注册时间这个元数据内容

import com.alibaba.cloud.nacos.ConditionalOnNacosDiscoveryEnabled;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.discovery.NacosWatch;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.client.CommonsClientAutoConfiguration;
import org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClientAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.WebApplicationContext;

import java.text.SimpleDateFormat;
import java.util.Date;

@Configuration
public class NacosDiscoveryClientConfiguration {

    @Bean
    public NacosWatch nacosWatch(NacosDiscoveryProperties nacosDiscoveryProperties
            , WebApplicationContext webApplicationContext) {
        //更改服务详情中的元数据,增加服务注册时间
        nacosDiscoveryProperties.getMetadata().put("startup.time"
                , new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
                        .format(new Date()));
        return new NacosWatch(nacosDiscoveryProperties);
    }
}

再次访问Nacos 在服务详细中查看添加的注册时间

Nacos 1.3.0 搭建服务注册基础入门Demo_第13张图片

四、配置服务权重

同一个服务可以启动多个实例所为负载均衡,官方提供了服务权重功能,可以为每个服务配置不同的权重权重值越高得到的访问浏览越大,而当权重给到0时则表示停止接受访问请求,可以作为优雅下线的准备工作。实际测试设置为0确实接受不到访问请求,但两国服务分别设置非0整数时并没有发现值越大接受的访问请求越多的情况,此处还需进一步研究也欢迎大家尝试讨论。

Nacos 1.3.0 搭建服务注册基础入门Demo_第14张图片

 Nacos 1.3.0 搭建服务注册基础入门Demo_第15张图片

到这里demo程序已经搭建完毕,后续还会分享Nacos动态配置管理文章。

 

你可能感兴趣的:(Nacos1.3.0,springCloud,springboot)