一、Nacos概述
官方地址:https://nacos.io
github地址:https://github.com/alibaba/nacos
1 什么是 Nacos
Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

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

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

  1. Eureka(原生,2.0遇到性能瓶颈,停止维护)
  2. Zookeeper(支持,专业的独立产品。例如:dubbo)
  3. Consul(原生,GO语言开发)
  4. Nacos

相对于 Spring Cloud Eureka 来说,Nacos 更强大。
Nacos = Spring Cloud Eureka + Spring Cloud Config

Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config。

  • 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。
  • 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。
    3 Nacos可以干什么
    Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。
    Nacos主要提供以下四大功能:
  1. 服务发现和服务健康监测
  2. 动态配置服务
  3. 动态DNS服务
  4. 服务及其元数据管理

二、Nacos快速开始
结构图:

Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  2. 64 bit JDK 1.8+
  3. Maven 3.2.x+

1 下载与安装
下载地址:https://github.com/alibaba/nacos/releases
下载最新版本:nacos-server-1.1.4.tar.gz或nacos-server-1.1.4.zip,解压任意目录即可
2 启动nacos服务
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式)
启动命令:sh startup.sh -m standalone

Windows
启动命令:cmd startup.cmd 或者双击startup.cmd运行文件。
访问:http://localhost:8848/nacos
用户名密码:nacos/nacos

3 注册中心
首先创建两个工程:nacos-provider、nacos-consumer


创建生产者:



创建消费者(同上)
3.1 生产者基本代码
ProviderController代码如下:
@RestController
public class ProviderController {

@Value("${myName}")
private String name;@GetMapping("hello")
public String hello(){return "hello " + name;
}

}
application.properties配置如下:

server.port=8070
# 自定义参数
myName=nacos

3.2 生产者注册到nacos
生产者注册到nacos注册中心,步骤:
1,添加依赖:spring-cloud-starter-alibaba-nacos-discovery及springCloud

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency><dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies><!-- SpringCloud的依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。
2,在 application.properties 中配置nacos服务地址和应用名

server.port=8070
spring.application.name=nacos-provider
# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# 自定义参数
myName=nacos

3,通过Spring Cloud原生注解 @EnableDiscoveryClient 开启服务注册发现功能

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

3.3 消费者基本代码
ConsumerController代码:

@RestController
public class ConsumerController {@GetMapping("hi")public String hi() {return "hi provider!";}
}

application.properties:

server.port=8080

3.4 消费者注册到nacos
消费者注册到nacos跟生产者差不多,也分3步:

  1. 添加依赖:同生产者

  2. 在application.properties中配置nacos的服务名及服务地址:同生产者

  3. 在引导类(NacosConsumerApplication.java)中添加@EnableDiscoveryClient注解:同生产者
    3.5 使用feign调用服务
    以前我们使用feign来远程调用,这里也一样。引入feign的依赖

    org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-alibaba-nacos-discovery 0.2.2.RELEASE org.springframework.cloud spring-cloud-starter-openfeign org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies Greenwich.SR2 pom import

在NacosConsumerApplication类上添加@EnableFeignClients注解

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

自定义参数

myName=nacos

编写feignClient:

@FeignClient("nacos-provider")
public interface ProviderFeign {@RequestMapping("hello")public String hello();
}

在Controller中使用feignClient:

@RestController
public class ConsumerController {@Autowiredprivate ProviderFeign providerFeign;@GetMapping("hi")public String hi() {return this.providerFeign.hello();}
}

SpringCloud Nacos入门教程相关推荐

  1. Nacos 入门教程

    一 .Nacos快速入门 什么是 Nacos Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 致力于帮助您发现.配置和管 ...

  2. SpringCloud从入门到精通教程/SpringCloud Alibaba从入门到精通教程

    对于SpringCloud,很多小伙伴问到了我的研究学习资料来源,除官方文档外,特例完整整理一下自己的平时参考学习其他资料,以及分享实战项目源码和代码资源,供大家参考学习 主要教程:SpringClo ...

  3. SpringCloud 入门教程(五): Ribbon实现客户端的负载均衡

    接上节,假如我们的Hello world服务的访问量剧增,用一个服务已经无法承载, 我们可以把Hello World服务做成一个集群. 很简单,我们只需要复制Hello world服务,同时将原来的端 ...

  4. 微服务网关:SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  5. 什么是微服务网关?SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  6. SpringCloud 入门教程(十):和RabbitMQ的整合 -- 消息总线Spring Cloud Netflix Bus

    在本教程第三讲Spring Cloud 入门教程(三): 配置自动刷新中,通过POST方式向客户端发送/refresh请求, 可以让客户端获取到配置的最新变化.但试想一下, 在分布式系统中,如果存在很 ...

  7. SpringCloud 入门教程(四): 分布式环境下自动发现配置服务

    前一章, 我们的Hello world应用服务,通过配置服务器Config Server获取到了我们配置的hello信息"hello world". 但自己的配置文件中必须配置co ...

  8. SpringCloud 入门教程(三): 配置自动刷新

    Spring Cloud 入门教程(三): 配置自动刷新 之前讲的配置管理, 只有在应用启动时会读取到GIT的内容, 之后只要应用不重启,GIT中文件的修改,应用无法感知, 即使重启Config Se ...

  9. [菜鸟SpringCloud实战入门]第九章:服务网关Zuul体验

    前言 欢迎来到菜鸟SpringCloud实战入门系列(SpringCloudForNoob),该系列通过层层递进的实战视角,来一步步学习和理解SpringCloud. 本系列适合有一定Java以及Sp ...

最新文章

  1. scapy-yield的含义和使用
  2. 读入一个数列和N值,返回按优先级排序的N个数 满足...Python解法
  3. C#计算一段程序运行时间的三种方法
  4. (转)扩展KMP算法模板
  5. 没有什么能难倒伟大的电子工程师,办公室想点蚊香没打火机怎么办?安排!...
  6. Java 8 Friday:更多功能关系转换
  7. 在jboss上部署web应用
  8. 统一操作系统 UOS 官网正式上线;旷视回应“戴口罩人脸识别”;IntelliJ IDEA 2019.3.3 发布 | 极客头条...
  9. “长按地址在浏览器中打开”的解决办法
  10. mysql汽车品牌系列_爬取汽车之家汽车品牌型号系列数据
  11. K3Cloud BOS设计 值更新 字段拼接到文本字段
  12. 微信公众号的html5界面用什么软件,微信公众号编辑排版用什么软件(推荐这4款编辑器)...
  13. Android身份证扫描
  14. QCOM 8976 porting SPI device
  15. 服务器远程连接多个账号,如何删除服务器登录的多个活动远程桌面连接?
  16. 向服务器获取同步信息失败,主域服务器和辅助域服务器数据同步失败
  17. 资料搜集-JAVA系统的梳理知识
  18. RH442-7 调度域和CPU集之一
  19. 情人节程序员用HTML网页表白【情人节表白网页】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  20. phpstorm 突然打开不了了

热门文章

  1. 地震信号滤波matlab,GABOR反褶积用于地震信号的时频分析
  2. Ubuntu20.04 LTS 安装Eclipse2021-03
  3. Python R:数据挖掘、自然语言处理与可视化
  4. 1.Mysql 的正则表达式
  5. linux NTP时间服务器Chrony配置
  6. PACS系统源码 PACS源码 三维重建PACS源码
  7. rosdep update解决方案(time out),两种方法完美解决,亲测有效
  8. 2021年金属非金属矿山(露天矿山)主要负责人考试内容及金属非金属矿山(露天矿山)主要负责人考试资料
  9. 关于Statement和Prestatement区别
  10. docker介绍+下载+基础操作---ubuntu/centos