【微服务】4、NACOS 配置管理

这篇具有很好参考价值的文章主要介绍了【微服务】4、NACOS 配置管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Nacos 和 Eureka 异同

🎼 服务注册到 Nacos 时,可以选择注册为临时实例或非临时实例
🎼 临时实例宕机时,会从 Nacos 的服务列表中剔除;非临时实例宕机不会从服务列表中剔除
🎼 注册到 Nacos 中的服务默认是非临时实例(除非设置 ephemeral 属性为 false)
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

同:
📔 都支持服务注册和服务拉取
📔 都支持服务提供者心跳方式做健康检测

异:
📖 Nacos 支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
📖 临时实例心跳不正常会被剔除,非临时实例则不会被剔除(只是标记该实例挂了而已)
📖 Nacos 支持服务列表变更的消息推送模式,服务列表更新更及时(Eureka 只能是定时拉取服务列表信息)
📖 Nacos 集群默认采用 AP 方式,当集群中存在非临时实例时采用 CP 模式;Eureka 采用 AP 方式

如何设置为非临时实例:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos 服务地址
      discovery:
        ephemeral: false # 非临时实例

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

二、Nacos 配置管理

✏️ Nacos 的统一配置管理可实现配置更改的热更新(更新之后自动起效果,无法重启服务)

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud


nacos指定ip,SpringCloud 相关,微服务,java,spring cloud
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud


项目启动后会执行的操作(关于配置文件):
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud


(1) 引入 Nacos 配置管理客户端依赖

<!-- nacos配置管理依赖 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency> 

(2) 在服务的 resource 目录下添加 bootstrap.yml 文件(该文件是引导文件,优先级高于 application.yml)

spring:
  application:
    name: userservice
  profiles:
    active: dev # 当前环境(dev 是开发环境的意思)
  cloud:
    nacos:
      server-addr: localhost:8848 # Nacos 服务的地址
      config:
        file-extension: yaml # 文件后缀名(yaml 或 properties)

三、Nacos 配置管理 —— 热更新

📝 Nacos 中的配置文件变更后,微服务无需重启就可以感知
📝 实现热更新还需要有一些配置(两种)

✏️① 在 @Value 注入的变量所在类上添加 @RefreshScope 注解

@RestController
@RequestMapping("/users")
@RefreshScope // Nacos 配置管理热更新(设置了该注解才会热更新)
public class UserController {

    @Value("${pattern.dateformat}")
    private String dateFormat;

    @GetMapping("/getCurTime")
    public String getCurTime() {
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        return sdf.format(new Date());
    }
}

✏️② 使用 @ConfigurationProperties 注解进行配置文件属性读取的使用默认就是热更新

@Component
@Data
@ConfigurationProperties(prefix = "pattern") // 默认就是热更新
public class PatternProperties {

    private String dateformat;

}
@RestController
@RequestMapping("/tests")
public class TestController {

    @Resource
    private PatternProperties patternProperties;

    @GetMapping("/getCurTime")
    public String getCurTime() {
        SimpleDateFormat sdf = new SimpleDateFormat(patternProperties.getDateformat());
        return sdf.format(new Date());
    }

}

四、多环境配置共享

🎺 把无论是生产环境还是开发环境都相同的参数配置到 Nacos 中
🎺 无论是何种环境这些配置都是一样的(只需配置一次)

微服务启动时会从 Nacos 读取多个配置文件:

🎄① [spring.application.name]-[spring.profiles.active].yaml(如 userservice-dev.yaml

🎄② [spring.application.name].yaml(如 userservice.yaml

无论 profile 如何变化,[spring.application.name].yaml 配置文件一定会加载。所以,多环境共享的配置可写入到该文件中


配置文件优先级:
服务名-profile.yaml > 服务名.yaml > 本地配置


nacos指定ip,SpringCloud 相关,微服务,java,spring cloud
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

五、Nacos 集群搭建

☘️ 在生产环境中,Nacos 一定要集群搭建

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

☘️ Nginx 把请求分发到不同的 Nacos 节点

搭建集群 Nacos 步骤:
☘️ ① 搭建数据库,初始化数据库表结构
☘️ ② 下载 Nacos 安装包
☘️ ③ 配置 Nacos
☘️ ④ 启动 Nacos 集群
☘️ ⑤ Nginx 反向代理

(1) 搭建数据库

CREATE TABLE `config_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) DEFAULT NULL,
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `c_desc` varchar(256) DEFAULT NULL,
  `c_use` varchar(64) DEFAULT NULL,
  `effect` varchar(64) DEFAULT NULL,
  `type` varchar(64) DEFAULT NULL,
  `c_schema` text,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_aggr   */
/******************************************/
CREATE TABLE `config_info_aggr` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(255) NOT NULL COMMENT 'group_id',
  `datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
  `content` longtext NOT NULL COMMENT '内容',
  `gmt_modified` datetime NOT NULL COMMENT '修改时间',
  `app_name` varchar(128) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_beta   */
/******************************************/
CREATE TABLE `config_info_beta` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info_tag   */
/******************************************/
CREATE TABLE `config_info_tag` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_tags_relation   */
/******************************************/
CREATE TABLE `config_tags_relation` (
  `id` bigint(20) NOT NULL COMMENT 'id',
  `tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
  `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
  `data_id` varchar(255) NOT NULL COMMENT 'data_id',
  `group_id` varchar(128) NOT NULL COMMENT 'group_id',
  `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
  `nid` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`nid`),
  UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = group_capacity   */
/******************************************/
CREATE TABLE `group_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = his_config_info   */
/******************************************/
CREATE TABLE `his_config_info` (
  `id` bigint(64) unsigned NOT NULL,
  `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `data_id` varchar(255) NOT NULL,
  `group_id` varchar(128) NOT NULL,
  `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
  `content` longtext NOT NULL,
  `md5` varchar(32) DEFAULT NULL,
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `src_user` text,
  `src_ip` varchar(50) DEFAULT NULL,
  `op_type` char(10) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`nid`),
  KEY `idx_gmt_create` (`gmt_create`),
  KEY `idx_gmt_modified` (`gmt_modified`),
  KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';


/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = tenant_capacity   */
/******************************************/
CREATE TABLE `tenant_capacity` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
  `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
  `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
  `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
  `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
  `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
  `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';


CREATE TABLE `tenant_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `kp` varchar(128) NOT NULL COMMENT 'kp',
  `tenant_id` varchar(128) default '' COMMENT 'tenant_id',
  `tenant_name` varchar(128) default '' COMMENT 'tenant_name',
  `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
  `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
  `gmt_create` bigint(20) NOT NULL COMMENT '创建时间',
  `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
  KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';

CREATE TABLE `users` (
	`username` varchar(50) NOT NULL PRIMARY KEY,
	`password` varchar(500) NOT NULL,
	`enabled` boolean NOT NULL
);

CREATE TABLE `roles` (
	`username` varchar(50) NOT NULL,
	`role` varchar(50) NOT NULL,
	UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);

CREATE TABLE `permissions` (
    `role` varchar(50) NOT NULL,
    `resource` varchar(255) NOT NULL,
    `action` varchar(8) NOT NULL,
    UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);

INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);

INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

(2) 下载 Nacos 安装包

https://github.com/alibaba/nacos/tags

(3) 配置 Nacos

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

☘️ 进入 nacos 的 conf 目录,修改配置文件 cluster.conf.example(重命名为 cluster.conf)
☘️ 配置 nacos 集群的每个 nacos 结点的 IP 地址和端口号
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

#it is ip
#example
127.0.0.1:8887
127.0.0.1:8886
127.0.0.1:8885

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

☘️ 修改 nacos 目录下的 conf 目录下的 applicatioin.properties 文件(添加数据库配置)

### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/naocs_crowd?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud


☘️ 将 nacos 文件夹复制多份后分别修改它们的 config 目录下的 application.properties 文件夹中的 server.port 为不同的端口号

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

(4) 启动 Nacos 集群

☘️ 分别启动三个 nacos 结点

startup.cmd

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

(5) Nginx 反向代理

☘️ 通过 Nginx 做反向代理和负载均衡

nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

☘️ 修改 nginx.conf 文件的内容如下:

upstream nacos-cluster {
    server 127.0.0.1:8887;
	server 127.0.0.1:8886;
	server 127.0.0.1:8885;
}

server {
    listen       888;
    server_name  localhost;

    location /nacos {
        proxy_pass http://nacos-cluster;
    }
}

☘️ 启动 nginx 服务
nacos指定ip,SpringCloud 相关,微服务,java,spring cloud

start nginx.exe

在浏览器访问:http://localhost/nacos文章来源地址https://www.toymoban.com/news/detail-633495.html

到了这里,关于【微服务】4、NACOS 配置管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • docker部署的微服务,指定ip注册到nacos,dubbo指定ip和端口注册到nacos

    docker部署的微服务,指定ip注册到nacos,dubbo指定ip和端口注册到nacos

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 docker的ip和docker主机所在局域网中的其他主机是不通的,这就导致本地启动的项目是不能访问docker部署的服务。 spring.cloud.nacos.discovery.ip = 192.168.1.100 设置docker的环境变量来解决 Rancher中配置docker的环境变

    2024年02月03日
    浏览(15)
  • SpringCloud以及Nacos服务注册IP选择问题

    SpringCloud以及Nacos服务注册IP选择问题

    场景: 微服务部署后,需要相互调用,其中服务A调用服务B时发现无法调用。其中服务注册和发现以及配置中心使用Nacos 分析: 检查了多遍代码后,没有发现调用方式有问题,所以只能是网络问题。通过postman直接调用服务B,发现可以调通,但是使用服务A不行,于是检查服务

    2024年02月06日
    浏览(13)
  • 华为云云耀云服务器L实例评测|SpringCloud相关组件——nacos和sentinel的安装和配置 & 运行内存情况 & 服务器被非法登陆尝试的解决

    华为云云耀云服务器L实例评测|SpringCloud相关组件——nacos和sentinel的安装和配置 & 运行内存情况 & 服务器被非法登陆尝试的解决

    最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍SpringCloud相关组件——nacos和sentinel的安装和配置,并分析了运行内存情况,此外,还有服务器被非法登陆尝试的解决。 其他相关的华为

    2024年02月07日
    浏览(16)
  • 注册中心/配置管理 —— SpringCloud Alibaba Nacos

    注册中心/配置管理 —— SpringCloud Alibaba Nacos

    Nacos 是一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生的应用程序 Nacos 的关键特性包括以下几项: 服务发现和服务健康监测:服务提供者使用原生 SDK、OpenAPI 等注册服务后,服务消费者可以使用 HTTPAPI 查找和发现服务。Nacos 提供对服务的实时健康检查

    2024年02月14日
    浏览(60)
  • 【SpringCloud Alibaba】Nacos服务管理与Feign负载均衡

    【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日
    浏览(14)
  • 【SpringCloud Alibaba】Nacos Config配置管理与Gateway 网关

    【SpringCloud Alibaba】Nacos Config配置管理与Gateway 网关

    目录 一、Config 远程配置 1.1 config 介绍 1.2 bootstrap.yml 配置文件 二、Gateway 网关 2.1 gateway 介绍 2.2 gateway 使用 2.2.1 方式一 2.2.2 方式二(动态路由)         微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大 量的服务。

    2024年02月02日
    浏览(48)
  • 【微服务SpringCloud-Alibaba】:Nacos 配置中心

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

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

    2023年04月27日
    浏览(18)
  • SpringCloud + Gateway(网关) + Nacos(注册中心+配置中心)+ Dubbo(内部服务调用)

    SpringCloud + Gateway(网关) + Nacos(注册中心+配置中心)+ Dubbo(内部服务调用)

    Apache Dubbo是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力 1、协议支持方面 Feign更加优雅简单。Feign是通过REST API实现的远程调用,基于Http传输协议,服务提供者需要对外暴露Http接口供消费者调用,服务粒度是http接口级的。通过短连接的方式进行通信,

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

    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日
    浏览(35)
  • Springcloud微服务之Nacos入门 服务分级存储模型 同集群优先的负载均衡 权重配置 环境隔离 Nacos与Eureka的区别 AP 和CP

    Springcloud微服务之Nacos入门 服务分级存储模型 同集群优先的负载均衡 权重配置 环境隔离 Nacos与Eureka的区别 AP 和CP

    Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。 主要差异在

    2024年04月15日
    浏览(15)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包