ruoyi-cloud v3.6.3 Docker部署环境教程

提示:文章中ip:192.168.50.129,均需替换为你自己的服务器ip

Docker环境

安装Docker

安装yum-utils

yum install -y yum-utils

设置yum存储库

# 阿里云地址(国内地址,相对更快)
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker引擎

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装完成后,运行下面的命令,验证是否安装成功。

docker version # 查看Docker版本信息

systemctl start docker		# 启动 docker 服务:
systemctl stop docker		# 停止 docker 服务:
systemctl status docker		# 查看 docker 服务状态
systemctl restart docker	# 重启 docker 服务

配置镜像

使用配置文件/etc/docker/daemon.conf(没有时新建该文件)。

vim /etc/docker/daemon.conf
# 添加如下内容,可以自己替换。默认地址是我的创建的
{
  "registry-mirrors": ["https://0vcpj8fw.mirror.aliyuncs.com"]
}

重启Docker Daemon即可。

systemctl daemon-reload
systemctl start docker

设置开机启动

systemctl enable docker.service

安装docker compose

可能失败,最好换一种方式,使用压缩包

centos安装pip
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip

docker compose

pip install docker-compose

安装Nacos

docker pull nacos/nacos-server:v2.3.0

挂载目录,用于映射到容器,目录按自己的情况创建

mkdir -p /mydata/nacos/logs/                      #新建logs目录
mkdir -p /mydata/nacos/conf/         

先简单启动

docker run --name nacos -d -p 8848:8848 -e MODE=standalone  nacos/nacos-server:v2.3.0

复制配置文件

docker cp nacos:/home/nacos/conf/ /mydata/nacos

编辑文件application.properties

#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=mysql
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://192.168.50.129:${MYSQL_SERVICE_PORT:3306}/nacos_config?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
db.user.0=root
db.password.0=123456

重新启动

docker stop nacos 
docker rm nacos 

docker run -d -p 8848:8848 -p 9848:9848 -p 9849:9849 --name nacos \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=512m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties \
--restart=always \
nacos/nacos-server:v2.3.0

docker logs -f nacos

访问

http://192.168.50.129:8848/nacos

mysql新建nacos-config的数据库,并执行脚本 sql脚本地址如下:

#设置持久化,不设置也可以使用
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/******************************************/
/*   数据库全名 = nacos_config   */
/*   表名称 = config_info   */
/******************************************/
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(128) DEFAULT NULL,
  `content` longtext NOT NULL COMMENT 'content',
  `md5` varchar(32) DEFAULT NULL COMMENT 'md5',
  `gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) 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,
  `encrypted_data_key` text NOT NULL COMMENT '密钥',
  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(128) 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 '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `encrypted_data_key` text NOT NULL 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 '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',
  `src_user` text COMMENT 'source user',
  `src_ip` varchar(20) 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 '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' 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 '2010-05-05 00:00:00',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',
  `src_user` text,
  `src_ip` varchar(20) DEFAULT NULL,
  `op_type` char(10) DEFAULT NULL,
  `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
  `encrypted_data_key` text NOT NULL 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 '2010-05-05 00:00:00' COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' 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,
	constraint uk_username_role UNIQUE (username,role)
);

CREATE TABLE permissions (
    role varchar(50) NOT NULL,
    resource varchar(512) NOT NULL,
    action varchar(8) NOT NULL,
    constraint uk_role_permission UNIQUE (role,resource,action)
);

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

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

参数详解

-p 8848:8848 # 宿主机端口:容器端口
–name nacos # 容器名字
–privileged=true # 使用该参数,container内的root拥有真正的root权限
–network host # 设置属于该容器的网络
–restart=always # 总是重启
-e PREFER_HOST_MODE=hostname # 是否支持 hostname,可选参数为hostname/ip,默认值是当前宿主机的ip
-e MODE=standalone # 使用 standalone模式(单机模式),MODE值有cluster模式/standalone模式两种
-e JVM_XMS=256m # -Xms 为jvm启动时分配的内存[我设置会导致nacos启动异常,无法访问,故没有设置]
-e JVM_XMX=1024m # -Xmx 为jvm运行过程中分配的最大内存[我设置会导致nacos启动异常,无法访问,故没有设置]
-d nacos/nacos-server # 后台启动模式及使用的镜像
-v /mydata/nacos/logs:/home/nacos/logs \
-v:挂载宿主机的一个目录, 持久化存储的关键所在,将主机目录挂载到容器对应目录,分别是:配置文件、日志文件
–restart=always:容器自动启动参数,其值可以为[no,on-failure,always]
    no为默认值,表示容器退出时,docker不自动重启容器
    on-failure表示,若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃
    always表示,只要容器退出,则docker将自动重启容器

配置开机自启动

docker update --restart=always nacos 

安装Mysql7

docker pull mysql:5.7

创建文件夹

mkdir -p /mydata/mysql/conf
mkdir -p /mydata/mysql/logs
mkdir -p /mydata/mysql/data

启动

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-v /mydata/mysql/logs:/logs \
-v /mydata/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

安装Nginx

docker pull nginx:1.25.3

创建容器

docker run -di --name nginx -p 80:80 nginx:1.25.3

将容器内的配置文件拷贝到指定目录(请先提前创建好目录)。

mkdir -p /mydata/nginx/conf.d
mkdir -p /mydata/nginx/conf
mkdir -p /mydata/nginx/html
mkdir -p /mydata/nginx/logs

docker cp nginx:/etc/nginx/conf.d /mydata/nginx
docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf
docker cp nginx:/usr/share/nginx/html /mydata/nginx/

修改nginx.conf文件

user root;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

		/usr/share/nginx/html:#对应的路径应该是docker内部映射的html所在的文件路径,而不是主机上的html所在路径。
        location / {
            root  /usr/share/nginx/html; 
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        location /prod-api/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://192.168.50.129:8080/; #访问地址必须问服务器IP不能用localhost
        }

        # 避免actuator暴露
        if ($request_uri ~ "/actuator") {
            return 403;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

终止并删除容器

docker stop nginx
docker rm nginx

启动

docker run --name nginx -p 80:80 \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf.d:/etc/nginx/conf.d \
-d nginx:1.25.3

部署vue文件

将dist中全部内容复制到/mydata/nginx/html文件夹中

安装Redis

创建目录,redis.conf 文件需要提前准备

mkdir -p /mydata/redis/data
mkdir -p /mydata/redis/conf
vim redis.conf

主要配置的如下:
    bind 127.0.0.1 或者 bind 127.0.0.1 -::1   #注释掉这部分,使redis可以外部访问
    daemonize no      #用守护线程的方式启动
    requirepass 123456      你的密码#给redis设置密码
    appendonly yes    #redis持久化  默认是no
    tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300

	protected-mode no  #如果不设置密码,改为no

拉取

docker pull redis:7.2.3

启动

docker run --restart=always  -p 6379:6379 --name redis \
--privileged=true \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /mydata/redis/data:/data \
-d redis:7.2.3 redis-server /etc/redis/redis.conf  

安装Sentinel

docker pull bladex/sentinel-dashboard:1.8.6

docker run --name sentinel  -d -p 8858:8858 -p 8719:8719 -d bladex/sentinel-dashboard:1.8.6 -e username=sentinel -e password=sentinel -e server=localhost:8858

访问 密码sentinel

http://192.168.50.129:8858/
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ruoyi-cloud是一款基于Spring Cloud的微服务框架,提供了一系列方便快捷的开发工具和组件,可以帮助开发者快速构建和部署微服务架构的应用程序。 ruoyi-cloud 的微服务版本视频教程可以帮助开发者更好地理解和学习如何使用这个框架来开发微服务应用。视频教程通常从安装和配置开始,逐步介绍ruoyi-cloud的各个组件和功能,并且通过实际示例演示如何使用这些组件来实现特定的功能。 这些视频教程一般包括以下内容: 1. 系统环境准备:包括Java环境的安装和配置、IDE的选择与设置等。 2. ruoyi-cloud的概述:介绍ruoyi-cloud框架的基本概念、架构和特点。 3. 项目创建和配置:演示如何使用ruoyi-cloud的命令行工具或使用IDE来创建一个ruoyi-cloud微服务项目,并进行必要的配置。 4. 微服务注册与发现:介绍ruoyi-cloud的服务注册与发现组件,例如Eureka、Consul或Nacos,并展示如何在项目中进行配置与使用。 5. 微服务调用与负载均衡:讲解ruoyi-cloud的服务间调用和负载均衡机制,例如使用Feign或Ribbon来实现服务调用。 6. API网关与限流:介绍ruoyi-cloud的API网关组件,例如Spring Cloud Gateway或Zuul,并演示如何使用它们进行API的路由和限流。 7. 配置中心:讲解ruoyi-cloud的配置中心组件,例如Spring Cloud Config,展示如何使用它来集中管理应用程序的配置。 8. 服务监控与日志收集:介绍ruoyi-cloud的监控与日志收集工具,例如Spring Cloud Sleuth和Zipkin,演示如何使用它们来监控和追踪微服务的运行状态和性能。 9. 高可用部署与扩展:讲解如何使用ruoyi-cloud来实现微服务的高可用部署和扩展,例如使用Docker和Kubernetes等容器化技术。 通过学习ruoyi-cloud微服务版本的视频教程,开发者可以更好地了解和掌握ruoyi-cloud框架,从而能够更高效地进行微服务的开发和部署

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值