SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分

这篇具有很好参考价值的文章主要介绍了SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.认识微服务

1.0.学习目标

1.1.单体架构

单体架构的优缺点如下:

1.2.分布式架构

分布式架构的优缺点:

1.3.微服务

微服务的架构特征:

1.4.SpringCloud

1.5Nacos注册中心

1.6.总结

二、Nacos基本使用安装部署+服务注册

(一)linux安装包方式单节点安装部署

1. jdk安装配置

2. nacos安装

(二)linux源码方式单节点安装部署

1、下载Nacos源码并解压缩,另一种方法

2、配置Nacos

3、创建数据库和数据表

4、启动Nacos

(三)Nacos集成SpringBoot实现服务注册与发现

1、创建父工程

2、创建基础公共模块

3、创建用户模块

4、将用户模块作为微服务注册到nacos

(四)解决登录问题

三、Feign实现服务之间的远程调用+负载均衡/配置+领域模型划分+超时时间配置+日志配置

(一)什么是Feign

(二)Feign远程调用的使用

1、加入Fegin的依赖

2、在user模块启动类上添加Fegin的注解

3、创建order-module模块

4、创建一个feign接口, 并使用Fegin实现微服务调用order模块的数据

5、controller调用feign,并启动user模块服务验证

(三)Feign负载均衡

1、首先要把order模块设置为可以开启多个服务

2、注意:多次启动的端口号不能一致

3、测试

(四)loadbalancer负载均衡策略

(五)负载均衡策略配置

(六)超时时间配置

1、局部配置超时时间

2、全局配置超时时间

(七)Nacos 领域模型划分

1、命名空间划分

2、分组划分

(八)日志配置

1、局部日志配置

2、全局日志配置

常见的报错


注意:只要开启虚拟机,一定要关闭防火墙

一.认识微服务

随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?

1.0.学习目标

了解微服务架构的优缺点

1.1.单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

单体架构的优缺点如下:

优点:

  • 架构简单

  • 部署成本低

缺点:

  • 耦合度高(维护困难、升级困难)

1.2.分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

分布式架构的优缺点:

优点:

  • 降低服务耦合

  • 有利于服务升级和拓展

缺点:

  • 服务调用关系错综复杂

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

  • 服务拆分的粒度如何界定?

  • 服务之间如何调用?

  • 服务的调用关系如何管理?

人们需要制定一套行之有效的标准来约束分布式架构。

1.3.微服务

微服务:一种良好架构设计的分布式架构方案

根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

项目中每一个模块(module)就叫做一个服务

SpringCloud是目前国内使用最广泛的微服务框架

SpringCloud-Alibaba 也推出了一个名为Nacos的注册中心组件

微服务的架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,每个服务只做一件事

  • 自治:团队独立、技术独立、数据库独立,独立部署和交付

  • 面向服务:服务提供统一标准的接口,与语言和技术无关

  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,可以认为微服务是一种经过良好架构设计的分布式架构方案

但方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。

其中在Java领域最引人注目的就是SpringCloud提供的方案了。

1.4.SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud。

SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

其中常见的组件包括:

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:官网版本说明

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

1.5Nacos注册中心

Nacos:服务注册中心,项目每一个module模块启动服务都会注册到Nacos网站里面

项目中每一个业务功能模块 作为独立项目开发就叫一个服务,都会注册到Nacos注册中心的网站中  

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它是 SpringCloud Alibaba 组件之一,负责服务注册发现和服务配置,可以这样认为nacos=eureka+config。

1.6.总结

  • 单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统

  • 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝

  • 微服务:一种良好的分布式架构方案

    ①优点:拆分粒度更小、服务更独立、耦合度更低

    ②缺点:架构非常复杂,运维、监控、部署难度提高

  • SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件

  • Nacos:服务注册中心,SpringCloudAlibaba推出的微服务功能组件。

二、Nacos基本使用安装部署+服务注册

(一)linux安装包方式单节点安装部署

官方快速开始教程连接地址
Nacos支持三种部署模式,分别是单机,集群和多集群。需要注意的是,Nacos依赖Java环境,并且要求使用JDK1.8以上版本。
Nacos的安装方式有两种,一种是源码安装,另一种直接是使用已经编译好的安装包。这里选择使用安装包方式安装。

1. jdk安装配置

在 Linux 中安装和配置 JDK 需要以下步骤:
检查系统中是否已经安装过 JDK 和 JRE。可以使用以下命令来检查:

java -version

如果系统中没有安装 JDK 和 JRE,则需要下载并安装 JDK。
下载教程:Linux安装配置jdk11_jdk-11.0.12_linux-x64_bin.tar.gz_半截的诗--的博客-CSDN博客

验证 JDK 是否安装配置成功。可以使用以下命令:

java -version

执行该命令后,应该能看到已经安装的 JDK 版本信息。

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

2. nacos安装

  1. 下载nacos的GitHub地址

​​​​SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

2、解压Nacos安装包 

tar -zxvf nacos-server-2.2.2.tar.gz  -C /opt/enviroment/

解压完成后,会在解压的目录中看到一个nacos的文件夹。

3、关闭防火墙

查看防火状态

systemctl status firewalld 

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

关闭防火墙:

systemctl stop firewalld

4、启动Nacos服务
 进入nacos,执行以下命令:

[root@bogon nacos]# sh bin/startup.sh -m standalone
/java/jdk-11.0.16//bin/java   -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Dnacos.member.list= -Xlog:gc*:file=/nacos/nacos/logs/nacos_gc.log:time,tags:filecount=10,filesize=102400 -Dloader.path=/nacos/nacos/plugins/health,/nacos/nacos/plugins/cmdb,/nacos/nacos/plugins/selector -Dnacos.home=/nacos/nacos -jar /nacos/nacos/target/nacos-server.jar  --spring.config.additional-location=file:/nacos/nacos/conf/ --logging.config=/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with standalone
nacos is starting,you can check the /nacos/nacos/logs/start.out

这样,就会启动Nacos服务。

5、访问Nacos服务

执行以下命名

[root@localhost nacos]# cat /opt/enviroment/nacos/logs/start.out

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式
Nacos默认的访问地址为http://localhost:8848/nacos,如果用虚拟机部署的Nacos服务,那访问地址就是虚拟机的IP地址了:http://192.168.100.129:8848/nacos/index.html


可以在浏览器中输入该地址来访问Nacos服务。如果一切正常,将会看到Nacos的登录界面,输入默认账号(nacos)密码(nacos)即可登录。

 到此,Nacos服务在Linux环境下的安装部署就完成了。如果想要深入了解更多关于Nacos的使用和配置,可以查看Nacos官方文档(https://nacos.io/zh-cn/docs/what-is-nacos.html)。
SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式
SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

(二)linux源码方式单节点安装部署

1、下载Nacos源码并解压缩,另一种方法

可以省略,继续下面步骤

在官网 https://github.com/alibaba/nacos/releases 下载源代码,可以选择.tar.gz或.zip格式的文件,解压到你想要安装的目录中。

wget https://github.com/alibaba/nacos/releases/download/2.2.2/nacos-server-2.2.2.tar.gz
tar -zxvf nacos.tar.gz

2、配置Nacos

第一步可以省略,可以进行按照上面的步骤进行,直接使用上面解压的nacos文件

进入解压后的nacos目录,修改conf/application.properties文件:

# 启用standalone模式
nacos.standalone=true
# 修改端口号
server.port=8848
# 修改数据存储位置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.216.176:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

注意要修改以下参数:
server.port:修改为要使用的端口号,默认8848
db.url.0:修改为MySQL数据库的连接地址,IP地址是当前网络属性的IPv4地址,换一个网络会发生变化,记得修改

db.user、db.password:并设置正确的数据库用户名和密码

3、创建数据库和数据表

使用MySQL客户端创建nacos数据库和数据表

找到虚拟机中/opt/enviroment/nacos/conf文件夹

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

去MySQL客户端运行mysql-schema.sql文件

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

 SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

创建完成如下:

 SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

4、启动Nacos

进入解压后的nacos文件夹,使用以下命令启动Nacos服务:

[root@bogon nacos]# sh bin/startup.sh -m standalone

如果启动成功,你应该可以在浏览器中访问

http://虚拟机ip地址:8848/nacos

http://192.168.100.129:8848/nacos/

来查看Nacos控制台。

至此,Nacos就成功安装完成了。

(三)Nacos集成SpringBoot实现服务注册与发现

1、创建父工程

创建一个maven工程,然后在pom.xml文件中添加下面内容
各个版本的对应关系参考官网:官网版本对应关系描述地址

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring-Cloud</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>User-module</module>
        <module>common</module>
    </modules>


    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <!--springboot依赖版本是2.6。11-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.11</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencyManagement>
        <dependencies>
            <!--Cloud依赖 版本2021.0.4-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>2021.0.4</version>
 <!--type和scope是代表子模块可以继承cloud这个版本,子模块要是下载关于cloud的依赖,就默认使用这个版本了-->
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--阿里巴巴依赖 版本2021.0.4.0-->
            <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>

</project>

2、创建基础公共模块

创建common公共模块 

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

在pom.xml中添加依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-Cloud</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.common.yka</groupId>
    <artifactId>common</artifactId>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>

        <!--web场景开发启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--druid依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.15</version>
        </dependency>

        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

        <!-- 数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>

        <!-- mybatis-plus启动器-->
        <!-- mybatis-plus 是自己开发,并非官方的! -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

    </dependencies>

</project>

3、创建用户模块

步骤:
1 创建模块

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

 2、导入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-Cloud</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.user.yka</groupId>
    <artifactId>User-module</artifactId>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>

        <!--nacos客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--引用公共common的pom.xml依赖-->
        <dependency>
            <groupId>org.common.yka</groupId>
            <artifactId>common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

    </dependencies>


</project>

引用公共pom.xml配置文件,直接就可以使用pom文件的依赖了

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

3、 创建SpringBoot主类

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

4、加入配置文件

spring:
  application:
    name: user-server #服务名称
  # 配置数据源
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/nacos?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: 123456

5、创建必要的接口和实现类(controller service dao)

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

    @GetMapping("/test")
    public String test(){
        return "aaaaaa";
    }
}

4、将用户模块作为微服务注册到nacos

接下来开始修改User-module模块的代码, 将其注册到nacos服务上

1、在User-module模块的pom.xml中添加nacos的依赖

        <!--nacos客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

2、在主类上添加@EnableDiscoveryClient注解 

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

3、在application.yml中添加nacos服务的地址 

spring:
  application:
    name: user-server #服务名称
  # 配置数据源
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/nacos?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: 123456
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.100.129:8848 #虚拟机ip地址和端口号

4、启动服务, 观察nacos的控制面板中是否有注册上来的商品微服务,即为成功
SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

注意:只要开启虚拟机,一定要关闭防火墙

如果启动不了报错,有可能出现的问题是:防火墙没有关闭,关闭防火墙后再去开启Nacos服务

查看防火状态

systemctl status firewalld

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

关闭防火墙:

systemctl stop firewalld

然后再去启动Nacos服务

(四)解决登录问题

到现在配置为止网页现在是跳过权限认证,不需要登录就进去了,我们来解决问题让nacos网页可以登录

修改 /nacos/conf/application.properties 配置文件

  1. 启动登录认证功能 nacos.core.auth.enabled=true 修改为true

  2. 客户端和服务端交互时用于加密的密钥,可以防止认证过程中的信息泄露。nacos.core.auth.server.identity.key=example nacos.core.auth.server.identity.value=example 赋值

  3. 设置 Token 认证的密钥:nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

  4. Nacos集成SpringBoot实现服务注册与发现,操作服务注册是,yml文件中需要添加 username和passwrod

    cloud:
      nacos:
        discovery:
          username: nacos #nacos网址的账号密码
          password: nacos

此时 sh shutdown.sh 关闭服务, 再重启服务,进入nacos页面就可以登录了

 SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

三、Feign实现服务之间的远程调用+负载均衡/配置+领域模型划分+超时时间配置+日志配置

简单来说:项目中模块之间可以相互调用

(一)什么是Feign

Fegin:远程调用,服务模块之间的相互调用

Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务 一样简单, 只需要创建一个接口并添加一个注解即可。 Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负 载均衡的效果

(二)Feign远程调用的使用

1、加入Fegin的依赖

 <dependencies>
​
        <!--nacos客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
​
​
        <!--引用公共common的pom.xml依赖-->
        <dependency>
            <groupId>org.common.yka</groupId>
            <artifactId>common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
​
        <!--负载均衡依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
​
        <!--加入Fegin的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>

2、在user模块启动类上添加Fegin的注解

@SpringBootApplication
@EnableDiscoveryClient//@EnableDiscoveryClient是一个Spring Cloud中的注解,用于启用服务发现功能(nacos)。
@EnableFeignClients//开启Fegin
public class UserModuleApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserModuleApplication.class, args);
    }
}

3、创建order-module模块

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-Cloud</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
​
    <groupId>org.order.yka</groupId>
    <artifactId>Order-module</artifactId>
​
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
​
​
    <dependencies>
        <!--引用公共模块common依赖-->
        <dependency>
            <groupId>org.common.yka</groupId>
            <artifactId>common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
​
        <!--nacos客户端-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>
​
</project>
spring:
  application:
    name: order-server #服务名称
  # 配置数据源
  datasource:
    druid:
      url: jdbc:mysql://localhost:3306/nacos?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: 123456
   #clout配置nacos服务注册中心
  cloud:
    nacos:
      discovery: #配置客户端
        server-addr: 192.168.100.129:8848 #虚拟机ip地址和端口号
        username: nacos #nacos网址的账号密码
        password: nacos
server:
  port: ${random.int[0000,9999]} #随机生成端口号
​
@RestController
@RequestMapping("/order")
public class OrderController {
​
    @GetMapping("/test")
    public Integer test(){
        return 1111;
    }
}

4、创建一个feign接口, 并使用Fegin实现微服务调用order模块的数据

@FeignClient(value = "order-server",path = "/order")//value:声明调用的提供者的服务名,path:提供者的路径
public interface OrderFeign {
    //指定调用提供者的哪个方法
//@FeignClient+@GetMapping 就是一个完整的请求路径
    @GetMapping("/test")
    Integer getOrderNum();
}

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

5、controller调用feign,并启动user模块服务验证

这就相当于user为客户端了,order为服务器,user服务向order服务发送请求

@RestController
@RequestMapping("/user")
public class UserController {
​
    @Autowired
    private OrderFeign orderFeign;
​
    @GetMapping("/test")
    public Integer test(){
        return orderFeign.getOrderNum();
    }
​
}

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

(三)Feign负载均衡

在Nacos下使用Fegin默认就实现了负载均衡的效果,以下只是展示理解理解

Feign默认使用Spring Cloud LoadBalancer进行负载均衡。

负载均衡(Load Balancing)是分布式系统架构中重要的机制之一。主要作用是将任务或请求分摊到多个服务器上,从而达到最大化吞吐量或最小化响应时间的目的。

比如有两台电脑分别修改了order服务模块的消息数据,那么user服务模块调用order服务时,分别调用两次结果是不一样的

比如用户第一个请求订单时订单状态是正在发货,然后后台人员把该订单修改为已发货,然后用户再次请求刷新页面发现订单状态变成了已发货,两个结果不一样,这就叫负载均衡

1、首先要把order模块设置为可以开启多个服务

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

可以在order模块的启动类上多次启动

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

2、注意:多次启动的端口号不能一致

接下来把order模块的端口号设置为随机的

server:
  port: ${random.int[0000,9999]} #随机生成端口号

3、测试

把order模块的controller返回值修改333之后,启动一次order模块,启动后端口号会随机生成

一开始返回值是1111,他们分别开启了两个服务,所以端口号是不一致的

@RestController
@RequestMapping("/order")
public class OrderController {
​
    @GetMapping("/test")
    public Integer test(){
        return 3333;
    }
}

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

访问网站,每次刷新都是不一样的数据

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

这就是负载均衡

(四)loadbalancer负载均衡策略

OpenFeign是一个用于客户端服务调用的工具,同样也支持负载均衡。OpenFeign的负载均衡策略主要有以下几种:

  • 轮询策略(Round Robin):即依次按照服务的实例列表进行轮流调用,均衡地将请求分配给每一个实例。
  • 随机策略(Random):即直接从服务实例列表中随机选择一个实例进行调用。
  • 最小连接策略(Least Connections):即根据当前实例的连接数来进行调用,当前连接数越小的实例被选中的概率越大。
  • 响应时间加权策略(Response Time Weighted):即根据服务实例的响应时间来进行调用,响应时间越短的实例被选中的概率越大。
  • IP Hash算法策略(IP Hash):即根据客户端请求的IP地址来进行hash算法计算,将请求分发到同一IP地址的服务实例上。

在实际开发中,根据具体的业务场景选择合适的负载均衡策略非常重要,可以保证服务的高可用性和性能。

(五)负载均衡策略配置

OpenFeign 和 Spring Cloud LoadBalancer 可以结合来实现服务发现和负载均衡的功能,可以通过配置 LoadBalancer 接口的实现来控制负载均衡策略。

下面是一些常用的负载均衡策略:
OpenFeign 和 Spring Cloud LoadBalancer 可以结合来实现服务发现和负载均衡的功能,可以通过配置 LoadBalancer 接口的实现来控制负载均衡策略。

下面是一些常用的负载均衡策略:

  1. 随机策略:
@Configuration
public class LoadBalancerConfiguration {
 
    @Bean
    public LoadBalancerInterceptor loadBalancerInterceptor(LoadBalancerClient loadBalancerClient) {
        return new LoadBalancerInterceptor(loadBalancerClient);
    }
    
    @Bean
    public LoadBalancerClient loadBalancerClient() {
        return LoadBalancerClient.builder().build();
    }
    
    @Bean
    public RandomLoadBalancer randomLoadBalancer() {
        return new RandomLoadBalancer();
    }
}
  1. 轮询策略:
@Configuration
public class LoadBalancerConfiguration {
 
    @Bean
    public LoadBalancerInterceptor loadBalancerInterceptor(LoadBalancerClient loadBalancerClient) {
        return new LoadBalancerInterceptor(loadBalancerClient);
    }
    
    @Bean
    public LoadBalancerClient loadBalancerClient() {
        return LoadBalancerClient.builder().build();
    }
    
    @Bean
    public RoundRobinLoadBalancer roundRobinLoadBalancer() {
        return new RoundRobinLoadBalancer();
    }
}
  1. 带权重的轮询策略:
@Configuration
public class LoadBalancerConfiguration {
 
    @Bean
    public LoadBalancerInterceptor loadBalancerInterceptor(LoadBalancerClient loadBalancerClient) {
        return new LoadBalancerInterceptor(loadBalancerClient);
    }
    
    @Bean
    public LoadBalancerClient loadBalancerClient() {
        return LoadBalancerClient.builder().build();
    }
    
    @Bean
    public WeightedResponseTimeLoadBalancer weightedResponseTimeLoadBalancer() {
        return new WeightedResponseTimeLoadBalancer();
    }
}
  1. 响应时间加权策略:
@Configuration
public class LoadBalancerConfiguration {
 
    @Bean
    public LoadBalancerInterceptor loadBalancerInterceptor(LoadBalancerClient loadBalancerClient) {
        return new LoadBalancerInterceptor(loadBalancerClient);
    }
    
    @Bean
    public LoadBalancerClient loadBalancerClient() {
        return LoadBalancerClient.builder().build();
    }
    
    @Bean
    public BestAvailableRuleLoadBalancer bestAvailableRuleLoadBalancer() {
        return new BestAvailableRuleLoadBalancer();
    }
}

在配置了 LoadBalancer 接口的实现后,OpenFeign 就会使用 LoadBalancer 进行服务发现和负载均衡,从而通过多个实例来提高服务的可用性和性能。

(六)超时时间配置

1、局部配置超时时间

feign:
  client:
    config:
      order-server:
        connectTimeout: 3000
        readTimeout: 3000
#        loggerLevel: debug

2、全局配置超时时间

(1)方式1

 @Bean
    public Request.Options options(){
        return new Request.Options(5000,5000);
    }

其中的参数(5000,5000)表示该请求的超时时间,即在5000毫秒(5秒)内一直没有收到响应,请求就会超时并被取消。
第一个参数代表请求的连接超时时间;
第二个参数代表请求的读取超时时间;
(2)方式2

feign:
  client:
    config:
      default:
        #建立连接所用的时间,适用于网络状况正常的情况下,两端连接所需要的时间
        ConnectTimeOut: 5000
        #指建立连接后从服务端读取到可用资源所用的时间
        ReadTimeOut: 5000

(七)Nacos 领域模型划分

在(二)Feign的使用 的基础上实施的

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

1、命名空间划分

NameSpace:默认的NameSpace是public ,NameSpace可以进行资源隔离

比如我们dev环境下的NameSpace下的服务是调用不到prod的NameSpace下的微服务

它的作用是如果多个服务模块不在一个命名空间里,是不可以远程调用的

(1)创建命名空间

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

(2)配置微服务命名空间

spring:
  application:
    name: user-server
  #clout配置nacos服务注册中心
  cloud:
    nacos:
      discovery: #配置客户端
        server-addr: 192.168.100.129:8848 #虚拟机ip地址和端口号
        username: nacos #nacos网址的账号密码
        password: nacos
        #命名空间划分
        #把user服务模块设置为开发空间,它的作用是如果多个服务模块不在一个命名空间里,是不可以远程调用的
        namespace: fe4f886f-792a-4566-aff7-8ac8852e1aa9 #设置命名空间,value是dev开发的命名空间的id

user微服务设置在dev开发命名空间了

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

order在默认的public命名空间中

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

没有命名空间划分之前

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

划分之后ueer就远程调用不到order的数据了

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

2、分组划分

group默认的分组名称是DEFAULT_GROUP分组可以进行资源隔离

比如我们user在group1组里面,order服务在DEFAULT_GROUP组里面,user服务是调用不到order服务的数据的

它的作用是如果多个服务模块不在一个分组里,是不可以远程调用的

(1)、配置微服务分组

spring:
  application:
    name: user-server
   #clout配置nacos服务注册中心
  cloud:
    nacos:
      discovery: #配置客户端
        server-addr: 192.168.100.129:8848 #虚拟机ip地址和端口号
        username: nacos #nacos网址的账号密码
        password: nacos
        #分组划分
        group: group1 #把user服务分组为group1

user服务在group组中,order服务在默认的DEFAULT_GROUP组里,没在一个组里没有办法远程调用

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

没有分组划分之前

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

划分之后ueer就远程调用不到order的数据了

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

(八)日志配置

1、局部日志配置

方式一:

(1) 日志级别设置

注意:这里类上没有@Configuration注解

public class FeginConfig {
    @Bean
    public Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

(2) 配置目标feign

@FeignClient(value = "repository-server",path = "/repositoty",configuration = FeginConfig.class)
public interface RepositotyFeign {
    @GetMapping("/getNum/{goodId}")
    Integer getNum(@PathVariable("goodId") Integer goodId);
}

方式二

feign:
  client:
    config:
      repository-server:
        loggerLevel: debug

2、全局日志配置

(1)添加配置文件

注意:这里类上有@Configuration注解

@Configuration
public class FeginConfig {
    @Bean
    public Logger.Level feignLoggerLevel(){
        return Logger.Level.FULL;
    }
}

(2)将springboot的日志级别调低

logging:
  level:
    com.buba.feign: debug

常见的报错

1、如果启动不了报错,有可能出现的问题是:防火墙没有关闭,关闭防火墙后再去开启Nacos服务

查看防火状态

systemctl status firewalld

SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分,微服务,springCloud,java,微服务,分布式

关闭防火墙:

systemctl stop firewalld

然后再去启动Nacos服务

2、如果启动成功了,发现nacos服务注册中心网站没有任何数据和注册的消息,有可能是本机的网络更改了

因为conf/application.properties文件中IP地址是当前网络属性的IPv4地址,如果更换了网络要修改IP地址

# 启用standalone模式
nacos.standalone=true
# 修改端口号
server.port=8848
# 修改数据存储位置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.216.176:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

注意要修改以下参数: server.port:修改为要使用的端口号 db.url.0:修改为MySQL数据库的连接地址,IP地址是当前网络属性的IPv4地址,换一个网络会发生变化,记得修改

db.user、db.password:并设置正确的数据库用户名和密码

3、java.util.concurrent.TimeoutException:Linux代表没有启动nacos,记得关防火墙在启动

4、org.springframework.beans.factory.BeanCreationException:@Value没有注入成功,要仔细检查一遍有没有写错文章来源地址https://www.toymoban.com/news/detail-702810.html

到了这里,关于SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微服务SpringCloud-Alibaba】:Nacos 配置中心

    在 SpringCloud 中,我们使用了 Config 组件管理所有配置文件,使用了 Bus 消息总线更新配置,两者需要配合使用才能动态的管理配置文件。而 Nacos 可以替代这两个组件,实现动态的管理所有配置文件。 2.1、添加配置文件 想要管理配置,先要有配置文件。在使用 Config 组件管理配

    2023年04月27日
    浏览(52)
  • 【SpringCloud Alibaba】Nacos服务管理与Feign负载均衡

    目录 一、微服务搭建 1.1 服务提供者与服务消费者 1.2 依赖关系   二、服务注册与负载均衡使用 2.1 Nacos 实现服务的注册与发现 2.2 Loadbalancer负载均衡、Feign声明式服务调用 2.3 示例综合实现 2.3.1 服务注册与发现测试 2.3.2 负载均衡测试  服务提供者 服务的被调用方(即:为其他微

    2024年02月03日
    浏览(46)
  • 微服务(SpringBoot、SpringCloud、SpringCloud Alibaba、Nacos、JDK)之间的版本对应依赖关系(附Nacos高速下载地址)

    前言 本文主要整理与介绍在搭建微服务项目时,核心组件之间的版本对应关系,避免版本依赖冲突带来的一系列问题,同时也方便后续升级与查看。 这里先放上我目前搭建的较新的微服务脚手架版本,如下(springboot3.0开始不支持jdk8) Spring Boot Spring Cloud Spring Cloud Alibaba Noc

    2024年02月04日
    浏览(45)
  • Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】

    Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 跳转 Java之SpringCloud Alibaba【二】【微服务调用组件Feign】 跳转 Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】 跳转 Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】 跳转 Java之SpringCloud Alibaba【五】【微服务

    2024年02月16日
    浏览(49)
  • springcloud-alibaba (04)Gateway与Nacos结合使用

    🎉欢迎来到这里,今天我将为大家介绍如何将Spring Cloud Gateway和Nacos结合使用,实现一个高效稳定的服务网关!在微服务架构中,API网关是必不可少的一部分,它提供了路由请求、负载均衡、安全认证和限流等功能。Spring Cloud Gateway是基于Spring Framework、Spring Boot和Project Reacto

    2024年02月15日
    浏览(38)
  • SpringCloud Alibaba - Sentinel 微服务保护解决雪崩问题、Hystrix 区别、安装及使用

    目录 一、Sentinel 1.1、背景:雪崩问题 1.2、雪崩问题的解决办法 1.2.1、超时处理 缺陷:为什么这里只是 “缓解” 雪崩问题,而不是百分之百解决了雪问题呢? 1.2.2、舱壁模式 缺陷:资源浪费 1.2.3、熔断降级 1.2.4、流量控制 误区:那是不是只用流量控制就可以,前面三种方法

    2024年02月07日
    浏览(34)
  • SpringCloud Alibaba 深入源码 - Nacos 和 Eureka 的区别(健康检测、服务的拉取和订阅)

    目录 一、Nacos 和 Eureka 的区别 1.1、以 Nacos 注册流程来解析区别 a)首先,我们的服务启动时。都会把自己的信息提交给注册中心,然后注册中心就会把信息保存下来. 注册的信息实际上就是一个嵌套 Map,结构为 MapString, MapString, Service,第一层 key 就是 namespace_id,起到环境隔

    2024年01月22日
    浏览(51)
  • 深入学习SpringCloud Alibaba微服务架构,揭秘Nacos、Sentinel、Seata等核心技术,助力构建高效系统!

    链接: https://pan.baidu.com/s/1hRN0R8VFcwjyCTWCEsz-8Q?pwd=j6ej 提取码: j6ej 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v4的分享 📚【第01阶段】课程简介:全面介绍课程内容,为你提供学习引导和目标规划,让你快速进入学习状态!💡 🔍【第02阶段】基

    2024年02月12日
    浏览(54)
  • SpringCloud Alibaba - Seata 部署 TC 服务,并集成微服务

    目录 一、Seata 架构 1.1、Seata 架构重要角色 1.2、部署 TC 服务 1.2.1、前言 1.2.2、下载 seata-server 包,解压 1.2.3、修改配置 1.2.4、在 nacos 中添加配置 1.2.5、创建数据库表 1.2.6、启动 TC 服务 1.3、微服务集成 Seata 1.3.1、引入依赖 1.3.2、修改配置文件(添加 Seata) Seata 事务管理中,

    2024年02月07日
    浏览(42)
  • SpringCloud Alibaba Nacos

    1 官网 1.1 https://github.com/alibaba/Nacos 2 Nacos 是什么? 2.1 一句话: Nacos 就是注册中心[替代Eureka]+配置中心[替代Config] 2.2 Nacos:Dynamic Naming and Configuration Service 2.3 Nacos:架构理论基础: CAP 理论(支持AP 和CP, 可以切换) 3 Nacos 下载运行 3.1 下载: https://github.com/alibaba/nacos/releases/tag/1.2.1 3

    2024年02月07日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包