第一章 海量数据处理商用短链接生成器平台介绍
第1集 什么是短链接生成器
短链接生成器是一种工具,可以将较长的链接转换成较短的链接。这种工具在许多场景中都很有用,包括营销、社交媒体分享和数据报告等。以下是一些关于短链接生成器的优点和作用:
优点:
缩短链接长度:短链接生成器可以将长链接缩短,使其更易于在社交媒体、电子邮件、短信等渠道中分享和传播。
增强链接可读性:短链接通常更容易阅读和理解,特别是对于那些在移动设备上浏览内容的人来说。
增加点击率:由于短链接更简洁、更易于分享和传播,因此它们可能会增加点击率,从而提高营销效果和传播效果。
数据统计和分析:许多短链接生成器提供了数据统计和分析功能,让用户可以追踪短链接的点击情况,以便更好地了解用户行为和营销效果。
作用:
社交媒体分享:短链接生成器可以帮助用户在社交媒体上更方便地分享链接,从而提高内容的曝光度和传播效果。
电子邮件营销:在发送电子邮件时,使用短链接可以缩短邮件正文中的链接长度,使其更易于阅读和理解。
数据分析报告:在数据分析报告中,使用短链接可以将长URL缩短,使其更易于阅读和理解。
移动设备链接分享:对于那些在移动设备上使用的人来说,短链接可以使长链接更易于在短信、聊天应用和社交媒体等渠道中分享和传播。
总之,短链接生成器是一种非常有用的工具,可以帮助用户在各种场景中更方便地分享和传播链接,提高营销效果和数据分析效果。
1.1如何实现短链接生成器
业务背景:为啥需要短链?
- 公司电商产品推广、业务活动页、广告落地页 缺少实时【数据反馈和渠道效果分析】
- 老项目业务推广【没人维护,无法做埋点】需要统计效果
- 短链生成器在营销推广中有很大的商用价值,用别人的系统简单不需要自己运维,但是费钱。
- 国内【反垄断后】微信、抖音、淘宝 流量互通,很多知识付费公司需要做 私域流量、社群运营
- 可以对外做产品输出,实现商业化能力增加公司营收
- 积累终端数据和人群数据,为公司未来产品人群做策略助力
-
盈利点
- 用户按量付费,根据流量包选择付费购买对应的套餐
- 不同流量包权益不一样
- 每天可以创建的短链次数不一样
- 流量包使用时间限制、支持流量包叠加
- 注册用户每天有一定免费使用次数,但是不能查看数据
-
短链平台产品目标
- 满足公司现有业务的营销推广需求、数据分析和拉新促活能力
- 对外进行付费商用,支持企业私有化部署
- 首年日活用户: 10万
- 首年日新增短链数据:10万*50 = 500万
- 年新增用户数:50万/1年
- 年营收目标: 10万付费用户 * 客单价200元 = 2千万
- 新增短链:50条/用户每日
- 年私有化部署用户数:1K用户 * 3万/单价 = 3千万
根据 业务需求场景分析,微服务大致可以分为下面几个微服务模块。这里我们使用 Java 技术栈。
大数据统计模块:
第2集产品必备方法论
2.1 用户增长的数据分析模型AARRR
什么是AARRR用户增长模型
- AARRR是Acquisition、Activation、Retention、Revenue、Referral 五个单词的缩写,对应用户生命周期中的5个重要环节。
- 通俗来说就是一个产品从0~1到100的方法论
- 指引产品运营在不同的产品运营阶段,思考哪些关键节点,更好各个节点的指标数据
AARRR详细解释
- 获取:新用户首单免费/低价(瑞幸、拼多多)、厂商预装(手机)、买量投放
- 激活:app推送、短信推送、产品价值激活
- 留存:签到、活动短信推送、平台价值提供
- 收益:平台广告、电商变现、付费会员、融资、软件服务
- 传播:好友助力、分享抽奖、兄弟砍我一刀
2.2 SWOT态势分析法
什么是SWOT态势分析
- 官方:用来确定企业自身的竞争优势、劣势、外部市场的机会和威胁,从而将公司的战略与公司内部资源、外部环境有机地结合起来的一种科学的分析方法
- 4个单词的缩写 优势=strength、劣势=weakness、机会=opportunity、威胁=threats
- 优势和弱势是内部环境的分析,机会和威胁是对于外部环境的分析
外部的机会正好是你的优势,赶紧利用起来
外部的机会但是你的劣势,需要改进
自身具有优势但外部存在威胁,就需要时刻思考、保持警惕
是威胁又是你的劣势,就规避并消除
案例应用场景
-
-
- 技术解决方案分析(团队熟悉RabbitMQ,新来的组长熟悉RocketMQ,技术选型思考)
- 优势:RabbitMQ团队多人用过、AMQP跨语言、模型API丰富(团队内部)
- 劣势:阅读过源码的人过少, Erlang开发,二次修改不容易,项目组长对这个不熟悉(团队内部)
- 机会:项目可以快速上线,减少采坑(团队外部)
- 威胁:未来可能有更强大的MQ产品出现或公司改动架构(团队外部)
- 技术解决方案分析(团队熟悉RabbitMQ,新来的组长熟悉RocketMQ,技术选型思考)
-
-
总结:根据SWOT进行充分分析,然后进行取舍选择,考虑更全面(对比没用这个分析你会怎么选择)
2.3 方法论SMART衡量需求、工作的利器
什么是SMART方法论
-
源于国外管理大师的《管理的实践》
-
是为了利于员工更加明确高效地工作,更是为了管理者将来对员工实施绩效考核提供了考核目标和考核标准,使考核更加科学化、规范化
-
是5个单词的缩写
- SMART原则【目标管理、设置】
- Specific:目标要具体
- Measurable:目标成果要可衡量(量化)
- Attainable:目标要可实现,避免过高/过低
- Relevant:与其他目标有一定的相关性
- Time bound:目标必须有明确的期限
-
意义:在制定工作目标或者任务目标时,考虑一下目标与计划是不是SMART化的。只有具备SMART化的计划才是具有良好可实施性的,也才能指导保证计划得以实现
-
案例
- 短链平台项目组成员,每天需要开晨会-并记录 ( 周一 早上团队开周会,每个人列出本周事项安排)
- 张三的周报如下
- 周三前完成短链平台数据库设计并输出相关sql文件(SMART)
- 周四前完成短链平台整体架构搭建和工作任务拆分并评审完成(SMART)
- 周二完成短链微服务开发工作 (SM RT)
- 开发账号微服务 (S)
- 解决老项目的bug ( )
- 周二完成优化电商项目里面的下单接口RT响应时间,把500ms优化到200ms响应(SMART)
2.4 产品功能需求概览
五、产品需求描述
1、产品首页
- 功能场景描述:用户产品进入官网首页
- 前置条件:无
功能说明
编号 | 功能 | 点击业务规则 | 备注 |
---|---|---|---|
1 | 产品功能 | 下拉产品功能列表 | |
2 | 应用场景 | 进入应用场景页,直接触达用户 | |
3 | 定价方案 | 进入报价页面 | |
4 | 生成短链 | 1、登录状态下,直接生成短链并自动复制2、未登录状态,则打开用户登录页 |
2、产品报价页
- 功能场景描述:进入相关页面可以看到不同产品的价格和权益
- 前置条件:无
3、登录注册页
- 功能场景描述:用户注册登录
- 前置条件:无
4、分组管理页
- 功能场景描述:用户进入管理后台,可以新建分组、分组下可以新建短链
- 前置条件:登录
5、短链管理页
- 功能场景描述:用户进入管理后台,可以新建分组、分组下可以新建短链
- 前置条件:登录
6、创建短链页
- 功能场景描述:用户进入管理后台,选择某个分组下可以新建短链
- 前置条件:登录
7、短链数据分析页
- 功能场景描述:用户进入管理后台,选择短链查看访问数据情况
- 前置条件:登录
8、流量包管理页
- 功能场景描述:查看用户个人的流量包使用情况
- 前置条件:登录
9、流量包充值
- 功能场景描述:下单支付页面,用户根据自己的需要进行下单购买对应数量的流量包
- 前置条件:登录
第3集 商用短链平台-微服务拆分讲解
简介:海量数据处理商用短链平台-微服务拆分和技术栈版本说明
- Maven聚合工程拆分
- dcloud-common
- 公共依赖包
- dcloud-app
- Flink+Kafka实时计算
- dcloud-account
- 账号+流量包微服务
- dcloud-data
- 数据可视化微服务
- dcloud-gateway
- 业务网关
- dcloud-link
- 短链微服务
- dcloud-shop
- 流量包商品+支付微服务
- dcloud-common
- 微服务技术栈+前置中间件版本说明
- JDK11
- SpringBoot 2.5.5
- SpringCloud 2020.0.4
- AlibabaCloud 2021.1
- Sharding-JDBC 4.1.1
- Mysql 8.0
- Nacos 2.0.2
- Redis 6.2.4
- RabbitQM 3.8.15
- Kafka : wurstmeister/kafka:2.13-2.7.0
- 为啥有RabbitMQ还要有Kafka(单机写入TPS约在百万条/秒,最大的优点,就是吞吐量高)
- 一个是业务MQ、一个大数据流式处理的MQ,建议分开
- 还有更多的中间件用的时候再安装
3.1 短链平台-业务架构图讲解
简介:商用短链平台-业务架构图讲解
- 各个微服务模块解析
第4集 阿里云Linux服务器选配和常用中间件环境安装
简介:云服务器配置和搭建Docker环境讲解
-
云服务器购买
- 厂商
- 阿里云:https://www.aliyun.com/
- 腾讯云:https://cloud.tencent.com/
- 亚马逊云:https://aws.amazon.com/
- 腾讯云新用户折扣地址
- https://cloud.tencent.com/act/cps/redirect?redirect=1575&cps_key=3cb5dbec53a023baba788acac8d11871&from=console
- 厂商
-
服务器说明
阿里云-服务器根据情况买1~2台就行, 建议买2核8g以上可以。
环境问题说明
-
务必使用CentOS 7 以上版本,64位系统,不要在Windows系统操作!!!!推荐是CentOS 7.8
-
带宽可以选择固定带宽1M~5M都行,或者按量付费(带宽过小,后续Jenkins构建推送镜像比较慢)
-
使用本地用虚拟机(最好有个性能好的主机,或服务器)
4.1Docker安装
#按照依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
#配置yum源(比较慢,不用)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#配置yum源 使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#查看版本
yum list docker-ce --showduplicates | sort -r
#1. 安装docker
yum -y install docker-ce-20.10.10-3.el7
#2. 查看docker版本
docker -v
#3. 启动docker
systemctl start docker
#4. 查看docker 启动状态
systemctl status docker
检查安装结果。
docker info
启动使用Docker
systemctl start docker #运行Docker守护进程
systemctl stop docker #停止Docker守护进程
systemctl restart docker #重启Docker守护进程
docker ps查看容器
docker stop 容器id
修改镜像仓库
vim /etc/docker/daemon.json
#改为下面内容,然后重启docker
{
"debug":true,"experimental":true,
"registry-mirrors":["https://pb5bklzr.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}
#查看信息
docker info
注意:不使用1.13.1版本,该版本在jenkins使用docker命令时会说找不到配置文件!
4.2云服务器基础设施安装之Mysql8.0+Redis6.X安装
- Mysql8.0安装
#安装mysql8,让容器使用宿主机的时间,容器时间与宿主机时间同步
docker run \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=y511944s10.yicp.fun \
-v /home/data/mysql/data:/var/lib/mysql:rw \
-v /etc/localtime:/etc/localtime:ro \
--name class_mysql \
--restart=always \
-d mysql:8.0
#Mysql工具连接测试
#连接数配置
show variables like '%max_connections%';
set GLOBAL max_connections=5000;
set GLOBAL mysqlx_max_connections=5000;
- Redis6安装
docker run -itd --name y511944s10.yicp.fun-redis1 -p 6379:6379 -v /mydata/redis/data:/data redis:6.2.4 --requirepass class.net
进入容器的redis
docker exec -it 容器id redis-cli
工具测试连接
4.3 云服务器基础设施安装之Nacos2.x+Mysql8配置持久化
简介:云服务器基础设施安装之Nacos2.x+Mysql8配置持久化-避坑
- Nacos持久化SQL数据脚本
- 默认登录
- 账户nacos
- 密码 nacos
- 默认登录
/******************************************/
/*https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql */
/* 数据库全名 = 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(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');
-
Nacos2.x安装(生产环境让运维人员配置网络,不暴露公网)
- 配置中心需要加认证信息才可以访问
开源版本的 Nacos server 配置中,不会对客户端鉴权,即任何能访问 Nacos server 的用户,都可以直接获取 Nacos 中存储的配置,假如一个黑客攻进了企业内网,就能获取所有的业务配置,这样肯定会有安全隐患。 比如请求 http://112.74.55.160:8848/nacos/v1/cs/configs?dataId=dcloud-account-service-dev.yaml&group=DEFAULT_GROUP 需要先开启 Nacos server 的鉴权,在 Nacos server 上修改 application.properties 中的 nacos.core.auth.enabled 值为 true 即可
docker run -d \ -e NACOS_AUTH_ENABLE=true \ -e MODE=standalone \ -e JVM_XMS=128m \ -e JVM_XMX=128m \ -e JVM_XMN=128m \ -p 8848:8848 \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=120.79.150.146 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=y511944s10.yicp.funclass.net168 \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \ --restart=always \ --privileged=true \ -v /home/data/nacos/logs:/home/nacos/logs \ --name y511944s10.yicp.fun_auth \ nacos/nacos-server:2.0.2
4.4云服务器基础设施安装之RabbitMQ安装
简介:云服务器基础设施安装之RabbitMQ安装
- RabbitMQ安装
docker run -d --name xd_rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:3.8.15-management
#网络安全组记得开放端口
4369 erlang 发现口
5672 client 端通信口
15672 管理界面 ui 端口
25672 server 间内部通信口
访问管理界面
ip:15672
-e MYSQL_SERVICE_DB_PARAM=‘characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false’
–restart=always
–privileged=true
-v /home/data/nacos/logs:/home/nacos/logs
–name y511944s10.yicp.fun_auth
nacos/nacos-server:2.0.2
### 4.4云服务器基础设施安装之RabbitMQ安装
**简介:云服务器基础设施安装之RabbitMQ安装**
- RabbitMQ安装
docker run -d --name xd_rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:3.8.15-managemen
#网络安全组记得开放端口
4369 erlang 发现口
5672 client 端通信口
15672 管理界面 ui 端口
25672 server 间内部通信口
访问管理界面
ip:15672