云原生微服务 第十章 Spring Cloud Alibaba 之 Nacos discovery

系列文章目录

第一章 Java线程池技术应用
第二章 CountDownLatch和Semaphone的应用
第三章 Spring Cloud 简介
第四章 Spring Cloud Netflix 之 Eureka
第五章 Spring Cloud Netflix 之 Ribbon
第六章 Spring Cloud 之 OpenFeign
第七章 Spring Cloud 之 GateWay
第八章 Spring Cloud Netflix 之 Hystrix
第九章 代码管理gitlab 使用
第十章 SpringCloud Alibaba 之 Nacos discovery


### 文章目录

  • [系列文章目录](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [@[TOC](文章目录)](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [前言](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [1、Nacos 的命名是由 3 部分组成](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [1.1、技术升级和替换](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [1.2、系统架构图](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [2、Nacos两大组件](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [3、Nacos 实现服务注册与发现的流程如下:](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [3.1、下载软件](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [3.2、服务提供者](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [3.3、 服务消费者](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4、实战应用](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.1、版本兼容说明](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.2、Nacos server安装](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.3、启动nacos](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.4、工程改造](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.4.1、父pom改造](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.4.2、服务提供者改造](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.4.3、服务消费者改造](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.4.4、 Config配置](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [4.4.5、调用者实例](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5、集成openFeign](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5.1、修改调用方配置文件](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5.1.1、增加springcloud依赖](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5.1.2、增加openFeign依赖项](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5.2、调用方代码改造](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5.2.1、在启动类增加openFeign配置](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5.2.2、新增服务层接口:UserService](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [5.2.3、改造控制层方法:](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)
  • [总结](#文章目录 系列文章目录 @TOC 前言 1、Nacos 的命名是由 3 部分组成 1.1、技术升级和替换 1.2、系统架构图 2、Nacos两大组件 3、Nacos 实现服务注册与发现的流程如下: 3.1、下载软件 3.2、服务提供者 3.3、 服务消费者 4、实战应用 4.1、版本兼容说明 4.2、Nacos server安装 4.3、启动nacos 4.4、工程改造 4.4.1、父pom改造 4.4.2、服务提供者改造 4.4.3、服务消费者改造 4.4.4、 Config配置 4.4.5、调用者实例 5、集成openFeign 5.1、修改调用方配置文件 5.1.1、增加springcloud依赖 5.1.2、增加openFeign依赖项 5.2、调用方代码改造 5.2.1、在启动类增加openFeign配置 5.2.2、新增服务层接口:UserService 5.2.3、改造控制层方法: 总结)

前言

Nacos 英文全称为 Dynamic Naming and Configuration Service,它是一个开源的、易于使用的、功能强大的配置和发现管理系统,由阿里巴巴团队使用 Java 语言开发的开源项目。Nacos 为微服务架构提供了一种简单、灵活、动态的配置管理方案,可以支持大规模的分布式系统和云原生应用。它旨在提供动态服务发现、配置管理和服务管理等功能,帮助开发者构建易于扩展、动态适应的分布式系统。

1、Nacos 的命名是由 3 部分组成

组成部分 全称 描述
Na naming/nameServer 即服务注册中心,与 Spring Cloud Eureka 的功能类似。
co configuration 即配置中心,与 Spring Cloud Config+Spring Cloud Bus 的功能类似。
s service 即服务,表示 Nacos 实现的服务注册中心和配置中心都是以服务为核心的。

1.1、技术升级和替换

前几章节我们介绍了Spring Cloud Netflix套件,今天开始我们升级成使用Spring Cloud Alibaba。

Spring Cloud Alibaba 的 Nacos discovery,会替换掉Spring Cloud Netflix 的 Eureka。

1.2、系统架构图

整个电商微服务架构,选用Spring Cloud Alibaba套件,包括:

  • 熔断限流(Spring Cloud Alibaba Sentinel)
  • 微服务注册中心(Nacos Discovery)
  • 微服务配置(Nacos Discovery Config)
  • 微服务调用(Nacos Discovery)

再加上Spring Cloud组件:

  • 负载均衡(openFeign)
  • 网关(Gateway)

以及:

  • 分库分表(Apache ShardingSphere-JDBC)
  • 缓存集群(Redis主从)

2、Nacos两大组件

组件 描述 功能
Nacos Server Nacos 服务端,与 Eureka Server 不同,Nacos Server 由阿里巴巴团队使用 Java 语言编写并将 Nacos Server 的下载地址给用户,用户只需要直接下载并运行即可。 Nacos Server 可以作为服务注册中心,帮助 Nacos Client 实现服务的注册与发现。
-- -- Nacos Server 可以作为配置中心,帮助 Nacos Client 在不重启的情况下,实现配置的动态刷新。
Nacos Client Nacos 客户端,通常指的是微服务架构中的各个服务,由用户自己搭建,可以使用多种语言编写。 Nacos Client 通过添加依赖 spring-cloud-starter-alibaba-nacos-discovery,在服务注册中心(Nacos Server)中实现服务的注册与发现。
-- -- Nacos Client 通过添加依赖 spring-cloud-starter-alibaba-nacos-config,在配置中心(Nacos Server)中实现配置的动态刷新。

3、Nacos 实现服务注册与发现的流程如下:

3.1、下载软件

从 Nacos 官方提供的下载页面中,下载 Nacos Server 并运行。

3.2、服务提供者

Nacos Client 启动时,会把服务以服务名(spring.application.name)的方式注册到服务注册中心(Nacos Server)

3.3、 服务消费者

  • Nacos Client 启动时,也会将自己的服务注册到服务注册中心;
  • 服务消费者在注册服务的同时,它还会从服务注册中心获取一份服务注册列表信息,该列表中包含了所有注册到服务注册中心上的服务的信息(包括服务提供者和自身的信息);
  • 在获取了服务提供者的信息后,服务消费者通过 HTTP 或消息中间件远程调用服务提供者提供的服务。

4、实战应用

4.1、版本兼容说明

https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明

4.2、Nacos server安装

下载:

https://github.com/alibaba/nacos/releases/tag/2.0.4

4.3、启动nacos

Nacos Server 下各目录说明如下:

  • bin:用于存放 Nacos 的可执行命令。
  • conf:用于存放 Nacos 配置文件。
  • target:用于存放 Nacos 应用的 jar 包。
    进入bin目录,执行启动命令:startup.cmd -m standalone
    http://localhost:8848/nacos
    用户名/密码:nacos/nacos

4.4、工程改造

4.4.1、父pom改造

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>2021.0.5</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>
<!--spring cloud alibaba 依赖-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2021.0.4.0</version>
		<type>pom</type>
    <scope>import</scope>
</dependency>

4.4.2、服务提供者改造

  • 添加依赖
xml 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2021.0.4.0</version>
</dependency>
  • 添加配置
yaml 复制代码
spring:
  application:
    name: app-provider-service #服务名
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
  • 启动类加注解
    @EnableDiscoveryClient
    启动应用,查看nacos后台

4.4.3、服务消费者改造

  • 添加依赖
xml 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2021.0.4.0</version>
</dependency>
  • 添加配置
yaml 复制代码
spring:
  application:
    name: app-api-service #服务名
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848  #Nacos server 的地址
  • 启动类添加注解
    @EnableDiscoveryClient

4.4.4、 Config配置

创建config文件夹,在下面添加LoadBalancedConfig配置

java 复制代码
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class LoadBalancedConfig {

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

}

4.4.5、调用者实例

java 复制代码
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.Map;

@RestController
@RequestMapping("/user")
public class UserController {

    private final static String SERVER_URL = "http://localhost:8080";
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/getUserName")
    public Map getUserName() {
        String url = SERVER_URL + "/user/getUserName";
        Map map = restTemplate.getForObject(url , Map.class);
        map.put("type" , "caller");
        return map;
    }

}

5、集成openFeign

5.1、修改调用方配置文件

5.1.1、增加springcloud依赖

xml 复制代码
<dependencyManagement>
    <dependencies>
        <!--spring cloud 依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2021.0.5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--spring cloud alibaba 依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2021.0.4.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

5.1.2、增加openFeign依赖项

xml 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-loadbalancer -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-loadbalancer</artifactId>
    </dependency>
</dependencies>

5.2、调用方代码改造

5.2.1、在启动类增加openFeign配置

@EnableFeignClients

5.2.2、新增服务层接口:UserService

java 复制代码
import com.xxx.common.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

@FeignClient(name = "app-provider-service")
public interface UserService {
    @GetMapping("/user/getUserName")
    public User getUserName() ;
}

5.2.3、改造控制层方法:

java 复制代码
@Autowired
private UserService userService;

@GetMapping("/getUserName")
public Map getUserName() {
    User user = userService.getUserName();
    Map map = new HashMap();
    map.put("code" , 200);
    map.put("data" , user);
    map.put("type" , "caller");
    return map;
}

总结

云原生微服务治理有很多手段,但在Java生态里,最主流的还是Spring Cloud Alibaba 、Spring Cloud Netflix。

Spring Cloud文章的前部分已经把Spring Cloud Netflix相关组件讲解且实践过了,这章我们讲解了Spring Cloud Alibaba的Nacos discovery,后续还会继续讲解完Spring Cloud Alibaba其他组件。

相关推荐
攸攸太上38 分钟前
JMeter学习
java·后端·学习·jmeter·微服务
大G哥1 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
feng_xiaoshi2 小时前
【云原生】云原生架构的反模式
云原生·架构
妍妍的宝贝2 小时前
k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载
nginx·微服务·kubernetes
架构师吕师傅3 小时前
性能优化实战(三):缓存为王-面向缓存的设计
后端·微服务·架构
程序那点事儿3 小时前
k8s 之动态创建pv失败(踩坑)
云原生·容器·kubernetes
叶北辰CHINA5 小时前
nginx反向代理,负载均衡,HTTP配置简述(说人话)
linux·运维·nginx·http·云原生·https·负载均衡
团儿.5 小时前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
王彬泽5 小时前
【微服务】服务注册与发现、分布式配置管理 - Nacos
微服务·服务注册与发现·分布式配置管理
Lansonli6 小时前
云原生(四十八) | Nginx软件安装部署
nginx·云原生·ecs服务器