6.springcloud--注册中心与配置中心nacos网关gateway(代码片段)

爱是与世界平行 爱是与世界平行     2023-01-01     664

关键词:

6.SpringCloud -- 注册中心与配置中心 Nacos、网关 Gateway

一、了解一下 SpringCloud Alibaba

1.1 SpringCloudAlibaba

(1)简单说明

【说明:】
    通过前面几篇博客的介绍,已对 SpringCloud 部分框架有了一些认识,比如: Eureka、Ribbon、Hystrix、Config、Bus 等。
    但这些框架都有类似的问题:进入了维护模式 或者 功能不完善(使用场景有限,无法很好地适应新需求)
注:
    模块置于维护模式意味着 Spring Cloud 团队不再向模块添加新功能。仅修复拦截器漏洞和安全问题。
    
    SpringCloud 版本迭代速度挺快的,这就导致了一个问题: 一些旧版本出现的问题还未解决就推出了一个新的版本。
    而某模块进入了维护模式,即不再开发新功能,其使用价值有限,使用人数也就逐渐减少,相当于 打入冷宫,难有翻身余地。
    
    一个旧技术的没落,必定有一个新技术取而代之。
    而 SpringCloudAlibaba 就是这个新技术之一,有必要重点学习一下。    

(2)SpringCloudAlibaba

【SpringCloudAlibaba:】
    Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。
    此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
    依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

【相关地址:】
    https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
    https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html
    https://github.com/alibaba/spring-cloud-alibaba/wiki
    
【版本管理:】
    当前 Spring Cloud Alibaba 最新版本为 2.2.5.RELEASE。
    其推荐对应 Spring Cloud 版本为 Spring Cloud Hoxton.SR8,
    其推荐对应 Spring Boot 版本为 2.3.2.RELEASE。
可参考:
    https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

(3)引入依赖

使用 SpringCloudAlibaba 与使用 SpringCloud 类似,一般都在父工程的 pom.xml 文件中通过 <dependencyManagement> 标签进行版本管理。然后在使用其组件时,直接引入相关组件依赖,无需管理版本。
  当然直接引入相关组件依赖 并 指定版本号的方式亦可。

【在父工程中管理版本:】
<properties>
    <spring.cloud.alibaba.version>2.2.5.RELEASE</spring.cloud.alibaba.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>$spring.cloud.alibaba.version</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

1.2 SpringCloudAlibaba 主要功能 与 实现组件

(1)SpringCloudAlibaba 主要功能 与 实现组件

【功能与实现组件:】
服务限流降级:
    基本说明:
        默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,
        可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
    实现组件:
        Sentinel: 把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
        
服务注册与发现:
    基本说明:
        适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
    实现组件:
        Nacos: 一个更易于构建云原生应用的动态服务发现和服务管理平台。
        
分布式配置管理:
    基本说明:
        支持分布式系统中的外部化配置,配置更改时自动刷新。
    实现组件:    
        Nacos: 一个更易于构建云原生应用的配置管理平台。
        
消息驱动能力:
    基本说明:
        基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
    实现组件:    
        RocketMQ: 一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

分布式事务:
    基本说明:
        使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
    实现组件:
        Seata: 阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
        
阿里云对象存储:
    基本说明:
        阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
    实现组件:
        Alibaba Cloud OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
        
分布式任务调度:
    基本说明:
        提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
    实现组件:    
        Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。

阿里云短信服务:
    基本说明:
        覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
    实现组件:
        Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。      

(2)开发中常使用的技术搭配

【开发中使用的技术:】
    在平时开发中使用的技术搭配,我一般采用一下方案:
SpringCloud:
    OpenFeign:   声明式 HTTP 客户端(即 远程服务调用)。
    Ribbon:      负载均衡(OpenFeign 中已集成,无需单独引入)。
    Gateway:     API 网关。
    Sleuth:      分布式链路追踪(即 请求调用链监控)。
    
SpringCloudAlibaba:
    Nacos:      注册中心 以及 配置中心(即 服务注册、发现  以及  动态配置管理)。
    Sentinel:   服务容错(即限流、降级、熔断)。
    Seata:      解决分布式事务。
    
注:
    通过前面几篇博客的学习,知道了 OpenFeign、Ribbon、Sleuth、Sentinel 相关操作。
    OpenFeign、Ribbon 相关操作详见:https://www.cnblogs.com/l-y-h/p/14238203.html
    Sleuth 相关操作详见:https://www.cnblogs.com/l-y-h/p/14447473.html#_label4
    Sentinel 相关操作详见:https://www.cnblogs.com/l-y-h/p/14364167.html#_label2
    
下面将逐个学习 Nacos、Gateway、Seata。

二、服务注册中心、配置中心 – Nacos

2.1 什么是 Nacos?

(1)Nacos

【Nacos:】
    Nacos 即 Dynamic Naming and Configuration Service(动态命名与配置服务)。由 Naming 前两个字母,Configuration 前两个字母,以及 Service 首字母组成。
    Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理 以及 服务管理平台。
简单的理解:
    Nacos 就是 注册中心 + 配置中心。 
    即 Nacos = Eureka + Config + Bus。
    
【相关地址:】
    https://nacos.io/zh-cn/index.html
    https://github.com/alibaba/nacos

(2)如何使用 Nacos

【如何使用 Nacos:】
    Nacos 分为 Server、Client,其中 Server 作为注册中心以及配置中心,可以独立部署。
    而想要使用 Nacos,仅需在 微服务当中引入 client 相关依赖即可。
其中:
    Server 最新版本为 1.4.1,根据实际情况可以自行选择版本。
    使用注册中心功能,需要引入 spring-cloud-starter-alibaba-nacos-discovery 依赖。
    使用配置中心功能,需要引入 spring-cloud-starter-alibaba-nacos-config 依赖。
注:
    下载地址:https://github.com/alibaba/nacos/releases/download/1.4.1/nacos-server-1.4.1.tar.gz

2.2 安装 Nacos Server 单机版(Linux 直接下载并启动、持久化数据到 MySQL 8)

(1)说明:

Nacos 默认使用内嵌数据库(Derby)实现数据的存储,一般使用 单机版 Nacos Server 无需额外配置持久化操作,直接启动即可。
  但大型的项目中,Nacos Server 一般采用集群方式部署,若仍使用默认数据库进行数据存储,那么各个 Nacos Server 之间的数据一致性就是一个头疼的问题。 Nacos 支持持久化数据到 MySQL 中,集群中所有节点共享 MySQL 数据源,从而保证数据一致性。

(2)下载、并解压 nacos-server

【下载:】
wget https://github.com/alibaba/nacos/releases/download/1.4.1/nacos-server-1.4.1.tar.gz

【解压:】
tar -axvf nacos-server-1.4.1.tar.gz

(3)直接启动

未进行持久化配置,使用默认的 Derby 进行数据存储。

【进入解压后的 bin 目录:】
    cd ./nacos/bin

【以单机模式启动:】
    sh startup.sh -m standalone
注:
    通过执行 sh shutdown.sh 可以关闭 Nacos。

【登录 Nacos:】
    默认通过 8848 端口可以访问 Nacos。
    账号、密码默认均为 nacos
比如:
    http://120.26.184.41:8848/nacos

(4)持久化数据到 MySQL 中

Step1:
  连接数据库,并构建数据表。

【构建数据表:】
    进入解压后的 nacos 的 conf 目录,可以看到有 nacos-mysql.sql 文件。
    连接上 MySQL,新建一个数据库(nacos_config),并执行 nacos-mysql.sql 文件中的 SQL 语句。
注:
    可以直接使用官方提供的 nacos-mysql.sql 文件。
    https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

注:
    MySQL 请自行安装,此处不赘述。
可参考如下博客(仅供参考,长时间未更新,可能会出现一些问题):
    Windows 安装 MySQL:https://www.cnblogs.com/l-y-h/p/11700113.html
    Linux 安装 MySQL:https://www.cnblogs.com/l-y-h/p/12576633.html
    Docker 安装 MySQL:https://www.cnblogs.com/l-y-h/p/12622730.html#_label5
    Docker Compose 安装 MySQL:https://www.cnblogs.com/l-y-h/p/12622730.html#_label8_2

Step2:
  配置 nacos 与 mysql 连接信息。

【配置数据源信息:】
    同样在 conf 目录下,有一个 application.properties 文件。
    编辑该文件,在文件末尾添加如下数据源信息(根据 MySQL 信息自行修改):

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://120.26.184.41:3306/nacos_config?useUnicode=true&characterEncoding=utf8
db.user=root
db.password=123456

Step3:
  重新启动 nacos,再次登录nacos (http://120.26.184.41:8848/nacos) ,并新增一个配置文件。
  此时在 MySQL 中可以看到相关信息。

2.3 安装 Nacos Server 单机版(docker-compose 启动,持久化数据到 MySQL 8)

(1)说明

若需持久化到 mysql,同样也得在 mysql 中生成相应的表,相关 SQL 文件可以参考上面 持久化操作(此处省略)。
  可以直接使用官方提供的 MySQL 镜像,nacos/nacos-mysql:8.0.16,其有一个数据库 nacos_devtest 已包含了相关的表结构。

【nacos-docker 相关链接:】
    https://nacos.io/zh-cn/docs/quick-start-docker.html
    https://github.com/nacos-group/nacos-docker

【docker-compose 使用参考链接:】
    https://www.cnblogs.com/l-y-h/p/12622730.html#_label8_2
    
【nacos-mysql SQL:】
    https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

(2)使用已有的 mysql 文件。

简化操作,直接使用上面的 mysql。
  若需启动新的 mysql,需要手动执行 SQL,用于创建 nacos 所需相关表结构。
注:
  https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql

【docker-compose.yml】
version: '3.7'
services:
  nacos:
    image: nacos/nacos-server:1.4.1
    container_name: nacos
    restart: always
    environment:
      - MODE=standalone
      - TZ=Asia/Shanghai
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=120.26.184.41
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - JVM_XMS=50m
      - JVM_MMS=50m
    volumes:
      - ./standalone-logs/:/home/nacos/logs
    ports:
      - 8848:8848

相关参数设置如下(对于高版本 Nacos 参数有些许不同):
  NACOS_SERVER_PORT 需要改为 NACOS_APPLICATION_PORT
  多个带有 MASTER 的参数需要去掉 MASTER,比如:MYSQL_MASTER_SERVICE_HOST 需要改为 MYSQL_SERVICE_HOST。

通过 docker-compose up -d 启动后,访问 http://120.26.184.41:8848/nacos。
成功登录后,可以看到之前配置的文件,即启动 nacos 成功。

(3)使用 nacos 官方提供的 mysql 镜像进行持久化操作。

注意:
  此处使用的 nacos 镜像为:nacos/nacos-server:1.4.1。
  使用的 mysql 镜像为:nacos/nacos-mysql:8.0.16。

坑:
  执行 docker-compose up -d 后,访问 nacos。若访问 nacos 失败时,可以查看日志文件 start.out,若出现 Caused by: java.lang.IllegalStateException: No DataSource set 的问题,可以重新启动一下容器(docker-compose restart)。若仍然出错,则将 nacos-mysql:8.0.16 更换为 nacos-mysql:5.7 。

【docker-compose.yml】
version: '3.7'
services:
  mysql:
    container_name: nacos-mysql
    image: nacos/nacos-mysql:8.0.16
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=nacos_devtest
      - MYSQL_USER=nacos
      - MYSQL_PASSWORD=nacos
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/log:/var/log/mysql
    ports:
      - "3307:3306"
  nacos:
    image: nacos/nacos-server:1.4.1
    container_name: nacos
    restart: always
    environment:
      - MODE=standalone
      - TZ=Asia/Shanghai
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=120.26.184.41
      - MYSQL_SERVICE_PORT=3307
      - MYSQL_SERVICE_DB_NAME=nacos_devtest
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=root
      - JVM_XMS=50m
      - JVM_MMS=50m
    volumes:
      - ./standalone-logs/:/home/nacos/logs
    depends_on:
      - mysql
    ports:
      - 8848:8848

2.4 Nacos 作为 服务注册中心(服务注册与发现)

(1)说明:

【说明:】
    通过前面的操作,已经成功启动了 Nacos Server,接下来整合 Nacos Client 即可。
    此处的 Nacos Server 为注册中心。
    新建三个模块 nacos_client_7100、nacos_client_7101、nacos_client_7102 用于演示服务提供者。
    新建一个模块 nacos_client_consumer 用于演示服务消费者(使用 OpenFeign 调用服务)。
    Nacos 已集成 Ribbon 并提供负载均衡。
注:
    此处模块创建仅 描述 主要流程,不详细截图(可参考之前的博客)。

【参考链接:】
    https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html
    https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
    https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md

(2)新建模块 nacos_client_7100

Step1:
  修改 pom.xml,引入 nacos-discovery 依赖。

【引入 Nacos 依赖:】
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

Step2:
  修改 application.yml,配置 nacos。

【application.yml】
server:
  port: 7100

spring:
  application:
    name: nacos-client
  cloud:
    nacos:
      discovery:
        # 配置 nacos 地址
        server-addr: 120.26.184.41:8848

Step3:
  编写一个测试 controller,简单测试一下是否正常。

TestControllerpackage com.lyh.springcloud.nacos_client_7100.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RequestMapping("/nacos")
@RestController
public class TestController 
    @Value("$server.port")
    private String port;

    @Value("$spring.application.name")
    private String name;

    @Autowired
    private DiscoveryClient discoveryClient;

    @RequestMapping("/info")
    public String getInfo() 
        return name + "-" + port;
    

    @GetMapping("/discovery")
    public Map<String, List<ServiceInstance>> discovery() 
        // 获取服务名列表
        List<String> servicesList = discoveryClient.getServices();

        // 根据服务名 获取 每个服务名下的 各个服务的信息
        Map<String, List<ServiceInstance>> map = new HashMap<>();
        servicesList.stream().forEach(service -> 
            map.put(service, discoveryClient.getInstances(service));
        );

        return map;
    

Step4:
  启动当前服务。
  在启动类上添加 @EnableDiscoveryClient 注解(不添加貌似也没啥影响)。

Step5:
  访问 http://120.26.184.41:8848/nacos/
  登陆后,选择 “服务管理” ==》“服务列表”,即可看到当前有哪些服务注册进来了。

访问 http://localhost:7100/nacos/discovery

访问 http://localhost:7100/nacos/info

(3)新建模块 nacos_client_7101、nacos_client_7102

这两个模块与 nacos_client_7100 类似,仅端口号不同(创建过程此处省略)。
  启动服务后,再次查看 nacos 控制台,可以看到出现 3 个实例。

(4)新建模块 nacos_client_consumer

nacos-discovery 已集成 Ribbon,默认实现负载均衡方式为 轮询。

Step1:
  引入 nacos-discovery 、openfeign 依赖。

【依赖:】
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

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

Step2:
  修改 application.yml 文件。

【application.yml】
server:
  port: 7200

spring:
  application:
    name: nacos-client-consumer
  cloud:
    nacos:
      discovery:
        # 配置 nacos 地址
        server-addr: 120.26.184.41:8848

Step3:
  编写 openfeign 接口,调用 nacos_client 服务。

ConsumerFeignpackage com.lyh.springcloud.nacos_client_consumer.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;

@Component
@FeignClient(name = "nacos-client")
public interface ConsumerFeign 

    @RequestMapping("/nacos/info")
    String getInfo();

Step4:
  编写 controller,用于测试。

TestControllerpackage com.lyh.springcloud.nacos_client_consumer.controller;

import com.lyh.springcloud.nacos_client_consumer.service.ConsumerFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/consumer")
@RestController
public class TestController 

    @Autowired
    private ConsumerFeign consumerFeign;

    @RequestMapping("/info")
    public String getInfo() 
        return consumerFeign.getInfo();
    

Step5:
  简单测试一下 负载均衡。

访问:http://localhost:7200/consumer/info ,默认轮询调用 nacos-client 服务。

2.5 Nacos 作为配置中心(自动刷新)

(1)说明

【说明:】
    前面使用 Nacos Server 作为注册中心,此处作为 配置中心。
    修改 nacos_client_7100 模块作为演示。
注:
    Nacos 作为配置中心时,用法与 Config 很类似。
    Config 使用可参考:https://www.cnblogs.com/l-y-h/p/14447473.html#_label1

【参考链接:】
    https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
    https://github.com/alibaba/spring-cloud-alibaba/tree/master/spring-cloud-alibaba-examples/nacos-example/nacos-config-example

(2)修改 nacos_client_7100

Step1:
  添加 nacos-config 依赖。

【依赖:】
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

Step2:
  添加 bootstrap.yml 文件,并进行配置中心相关设置。
  修改 application.yml 文件,修改其环境为 dev。
注:
  配置文件默认拼接为:$spring.cloud.nacos.prefix - $spring.profiles.active . $spring.cloud.nacos.file-extension
  spring.cloud.nacos.prefix 默认为 spring.application.name。
  spring.profiles.active 为当前环境(比如:dev、test、prod 等)。
  spring.cloud.nacos.file-extension 为配置文件后缀名,一般为:yaml、properties。

下面配置文件,将会读取配置中心中 nacos-client-config-dev.yml 文件。

【bootstrap.yml】
server:
  port: 7100

spring:
  application:
    name: nacos-client-config
  cloud:
    nacos:
      discovery:
        # 配置 nacos server 地址(作为注册中心)
        server-addr: 120.26.184.41:8848
      config:
        # 配置 nacos server 地址(作为配置中心)
        server-addr: 120.26.184.41:8848
        # 设置配置文件前缀,默认为 $spring.application.name
        prefix: $spring.application.name
        # 设置配置文件后缀名
        file-extension: yml
        
【application.yml】
spring:
  profiles:
    active: dev

config:
  info: $spring.application.name-$server.port-$spring.profiles.active

Step3:
  编写测试 controller,用于测试。
  需要添加 @RefreshScope 注解,用于自动刷新。

查看详情  

springcloudalibaba——nacos服务注册与配置中心(一作为服务注册中心)

...学习SpringCloudH版的时候,一般来说是用Eureka作为服务注册中心,Config+Bus来进行服务 查看详情

springcloudalibaba——nacos服务注册与配置中心(二作为服务配置中心)

...学习SpringCloudH版的时候,一般来说是用Eureka作为服务注册中心,Config+Bus来进行服务 查看详情

springcloudalibaba——nacos服务注册与配置中心(二作为服务配置中心)

...学习SpringCloudH版的时候,一般来说是用Eureka作为服务注册中心,Config+Bus来进行服务 查看详情

springcloudalibaba微服务2,注册中心演变+nacos注册中心与配置中心(代码片段)

目录专栏导读一、什么是Nacos?二、注册中心演变及其设计思想1、RestTemplate调用远程服务2、通过Nginx维护服务列表(upStream)3、通过Nacos实现注册中心4、心跳版Nacos三、NacosDiscovery四、Nacos核心功能1、服务注册2、服务... 查看详情

springcloudalibaba——服务注册与配置中心

...起进步。👀本期介绍主要介绍SpringCloudAlibaba——服务注册与配置中心 查看详情

使用nacos作为分布式注册中心,实现服务注册与发现

...家已经对Nacos有了基本认识,其实说白了Nacos就是分布式注册中心和分布式配置中心的集合体。这篇博文我们介绍Nacos的第一个特性,服务的注册与发现,也就是分布式注册中心的核心功能。什么是服务注册与发现服务注册与发现... 查看详情

nacos简介以及作为注册/配置中心与eurekaapollo的选型比较

nacos简介以及作为注册/配置中心与Eureka、apollo的选型比较12019.07.1212:45:02字数1394阅读3983一、Nacos简介Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。Nacos主要提供以下四大功能:服务发现与服... 查看详情

springcloudalibabanacos服务注册和配置中心(代码片段)

SpringCloudAlibabaNacos服务注册和配置中心一、Nacos概述二、Nacos作为注册中心2.1基于Nacos的服务提供者2.2基于Nacos的服务消费者2.3Nacos与其他注册中心对比三、Nacos作为配置中心3.1Nacos基础配置3.2Nacos分类配置3.2.1Nacos的命名规则说明3.2.2... 查看详情

consule作为注册中心配置实例

...<<<Nacos的服务手动注册与发现<<<Nacos整合到SpringCloud中<<<Eureca作为注册中心配置实例<<<Eureka的自我保护机制<<<Zookeeper作为注册中心配置实例<<<@EnableDiscoveryClient与@EnableEurekaClient区别<<<N... 查看详情

springcloud怎么使用nacos做注册中心+配置中心?

Nacos是阿里生态下,用于微服务注册与发现、配置管理实时刷新的微服务平台.默认使用嵌入式持久化,可支持MySQL数据库持久化安装Nacos服务1.下载nacos服务版本1.3.2Windows下下载zip包并解压2.可使用默认方式持久化,跳过此步骤.如果使... 查看详情

dubboprivider与consumer同时配置retry以哪个为主

...分我这里就不介绍了,大家可参考官方文档。  DUBBO的注册中心安装  DUBBO的注册中心支持好几种,公司用到zookeeper注册中心,所以我这边只说明zookeeper注册中心如何安装。  安装zookeeper注册中心首先得下载zookeeper。大家... 查看详情

微服务之服务中心—zookeeper

微服务中的服务注册与发现传统的项目中,某个服务访问另一个服务,可以通过在配置文件中记录其他服务静态地址的形式进行访问,通常这个配置文件也很少更新,模式如下图:而在微服务中,每个功能可能都是一个独立的服... 查看详情

docker--consul注册中心

一、Consul概述什么是服务注册与发现服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的通过接口访问。直到后来出现了多个节点的分... 查看详情

nacos简介以及作为注册/配置中心与eurekaapollo的选型比较

一、Nacos简介Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos... 查看详情

springcloudalibaba——nacos服务注册与配置中心(三nacos持久化配置&集群搭建)

1.开篇前两篇文章分别说到了Nacos作为服务注册中心、服务配置中心的情况,现在我们来聊聊有关Nacos持久化配置以及Nacos的集群搭建。官方文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html,最终搭建出来的Nacos集群... 查看详情

springcloudalibaba——nacos服务注册与配置中心(三nacos持久化配置&集群搭建)

1.开篇前两篇文章分别说到了Nacos作为服务注册中心、服务配置中心的情况,现在我们来聊聊有关Nacos持久化配置以及Nacos的集群搭建。官方文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html,最终搭建出来的Nacos集群... 查看详情

配置nacos注册中心(代码片段)

Nacos内容一、什么是服务治理二、常见注册中心三、Nacos简介四、Nacos实战入门(掌握)1.搭建Nacos环境2.将商品服务注册到Nacos3.将订单服务注册到Nacos总结内容微服务配置请看我的上篇博客:微服务环境搭建一、什么是服务治理... 查看详情