什么是Nacos

(1)Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

相对于 Spring Cloud Eureka 来说,Nacos 更强大。Nacos = Spring Cloud Eureka + Spring Cloud Config,通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。

(2)Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。

Nacos主要提供以下四大功能:1. 服务发现和服务健康监测 2. 动态配置服务 3. 动态DNS服务 4. 服务及其元数据管理

下载和安装

下载地址:https://github.com/alibaba/nacos/releases

启动命令:cmd startup.cmd 或者双击startup.cmd运行文件。

访问:http://localhost:8848/nacos

用户名密码:nacos/nacos

登录以后选择服务列表可以看到已经注册的服务

服务注册

1、配置Nacos客户端的pom依赖

<!--服务注册-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2、配置application.properties,在客户端微服务中添加注册Nacos服务的配置信息

# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

3、添加Nacos客户端注解

在客户端微服务启动类中添加注解 @EnableDiscoveryClient

Feign

Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。
Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。
Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。
Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义的方式。
Spring Cloud Feign帮助我们定义和实现依赖服务接口的定义。在Spring Cloud feign的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用Spring Cloud Ribbon时自行封装服务调用客户端的开发量。

服务调用

1、在service模块添加pom依赖

<!--服务调用-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2、在调用端的启动类添加注解 @EnableFeignClients

3、创建包和接口

@FeignClient注解用于指定从哪个服务中调用功能 ,名称与被调用的服务名保持一致。
@GetMapping注解用于对被调用的微服务进行地址映射。
@PathVariable注解一定要指定参数名称,否则出错
@Component注解防止,在其他位置注入CodClient时idea报错
package com.guli.edu.client;@FeignClient("service-vod")
@Component
public interface VodClient {@DeleteMapping(value = "/eduvod/vod/video/{videoId}")public R removeVideo(@PathVariable("videoId") String videoId);
}

4、调用微服务

@Override
public boolean removeVideoById(String id) {//查询云端视频idVideo video = baseMapper.selectById(id);String videoSourceId = video.getVideoSourceId();//删除视频资源if(!StringUtils.isEmpty(videoSourceId)){vodClient.removeVideo(videoSourceId);}Integer result = baseMapper.deleteById(id);return null != result && result > 0;
}

Nacos服务发现与调用相关推荐

  1. SpringCloud使用Nacos服务发现实现远程调用

    本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...

  2. nacos基础(14):nacos服务发现之微服务协作调用多实例负载均衡

    文章目录 前言 多实例负载均衡 1. 启动多个生产者实例 2. 启动消费者实例 3. 更换负载均衡器 传送门 前言 微服务的负载均衡. 代码已共享至 Gitee:https://gitee.com/l ...

  3. Spring Cloud微服务之Nacos服务发现(八)

    Nacos服务发现 一.什么是Nacos? 二.微服务中常见的注册中心 三.Nacos主要提供以下四大功能: 四.Nacose结构图 5.Nacos下载和安装 1.下载地址和版本 2.启动nacos服 ...

  4. nacos服务发现流程

    nacos服务发现流程 前面已经知道nacos服务是怎么注册的了,那么nacos对注册的服务又是怎么发现的呢. 1. 既然我们已经知道nacos服务是怎么注册的了,那么点击服务注册的流程里面,查找到最 ...

  5. 微服务架构-实现技术之三大关键要素1服务治理:服务注册中心+服务发布与注册+服务发现与调用+服务监控

    目录 一.服务注册中心:注册中心核心功能+实现策略 1.注册中心核心功能 2.注册中心实现策略 二.服务发布与注册 三.服务发现与调用 四.服务监控 基本思路:日志埋点 基本目标: 基本定位: 基本策 ...

  6. nacos基础(13):nacos服务发现之微服务协作调用demo

    文章目录 前言 微服务调用demo 第一步.新建父工程 第二步.服务生产者 第三步.消费者 消费者与生产者 前言 微服务调用小案例. 代码已共享至Gitee:https://gitee.com/len ...

  7. Nacos服务发现实践

    本文使用Nacos来实现服务发现 文章目录 概述 创建服务整合Nacos service-provider service-consumer 启动测试 服务调用 service-provider se ...

  8. Spring Cloud alibaba 使用Nacos服务发现

    Provider 服务端 服务端我们复用前篇Spring Cloud alibaba 使用Nacos配置中心的代码 修改启动类 在启动类上添加@EnableDiscoveryClient 注解 开启服 ...

  9. Spring cloud alibaba(二)nacos服务发现docker相同ip冲突

    引入服务发现其实比较简单 项目架构:同Spring cloud alibaba(一)多模块项目整合 spring cloud - pay - smdd - coupon - base - order- ...

最新文章

  1. 1.2 Kali与Debian的关系
  2. pytorch nms 放大缩小
  3. MFC Initinstance中DoModal()返回-1
  4. 【数理知识】《数值分析》李庆扬老师-第9章-常微分方程初值问题数值解法
  5. MongoDB- 简单操作命令
  6. Atitit  rgb yuv  hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
  7. PHP+Swoole实现的网页即时聊天通讯工具:PHPWebIM
  8. 肝一份java性能调优手册
  9. linux壁纸图片不让复制,一些不常见到的LINUX壁纸,老规矩只提供给红联的兄弟姐妹...
  10. FBA4droid 模拟器
  11. 什么是NFC,NFC和RFID对比有什么区别?
  12. 内存泄漏、虚拟内存、物理内存的联系
  13. Ubuntu 14.04 LTS 搜狗拼音输入法不能使用的情况
  14. 动态设置html字号,html动态字体
  15. java中不可变对象(immutable object)是什么,有什么意义
  16. Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines)
  17. 聊一聊数学中的基本定理(三)——代数基本定理
  18. KK今年生日又给了103个建议,我最喜欢这33个
  19. 深入理解搜索引擎——详解query理解
  20. AD620放大器 AD623放大器 仪表放大器 差分放大器 微弱信号放大 原理图和PCB设计

热门文章

  1. 加密解密算法之RC4
  2. 微前端--无界方案之官网demo操作说明
  3. Android开发之实现两个手机之间的通讯
  4. 解决数据库 修改表属性时报错:1138-Invalid use of NULL value
  5. 中国科学院国家空间科学中心简介
  6. 1024 向逝去的时间问好!
  7. html设置float后不能垂直居中,垂直居中CSS中的“float:right”元素
  8. axios token过期刷新
  9. 第二类斯特林数的推导
  10. Ubuntu重装与重新分区