海量数据处理商用短链接生成器平台 - 1

第一章 海量数据处理商用短链接生成器平台介绍

第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产品出现或公司改动架构(团队外部)
  • 总结:根据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
      • 流量包商品+支付微服务
  • 微服务技术栈+前置中间件版本说明
    • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Kubernetes】集群外部的请求访问集群内应用的最佳方式:Ingress

《Service 服务》系列,共包含以下文章: Service 概念与实战Service 类型:NodePort、ClusterlP、LoadBalancer、ExternalName虚拟 IP 与 Service 的代理模式集群外部的请求访问集群内应用的最佳方式:Ingress 😊 如果您…

智慧水务项目(七)vscode 远程连接ubuntu 20.04 服务器,调试pyscada,踩坑多多

一、说明 以前用过pycharm,远程连接还可以,但是vscode用以前还可以,就用它开发python了,想搞个远程,源码直接放服务器上,能远程调试,其实也很方便的,结果第一次还成功了,…

LeetCode刷题笔记第231题:2 的幂

LeetCode刷题笔记第231题:2 的幂 题目: 想法: 对输入的数值循环除以2直至数值小于等于1,如果最终的数值为1则为2的幂,小于1则不是2的幂。 class Solution:def isPowerOfTwo(self, n: int) -> bool:if n 1:retur…

SpringBoot的事务/调度/缓存/邮件发送和一些Spring知识点总结

目录 1、SpringBoot的事务管理 2、SpringBoot的异步任务 3、SpringBoot定时任务调度 4、SpringBoot整合Mail发送邮件 5、Spring框架中的Bean的作用域 6、Spring框架中的Bean的线程安全 7、 Spring框架中的Bean生命周期 8、Spring框架如何解决循环依赖? 9、…

HarmonyOS Next 系列之列表下拉刷新和触底加载更多数据实现(十一)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现(一) HarmonyOS Next 系列之验证码输入组件实现(二) HarmonyOS Next 系列之底部标签栏TabBar实现(三) HarmonyOS Next 系列之HTTP请求封装和Token…

Golang | Leetcode Golang题解之第337题打家劫舍III

题目: 题解: func rob(root *TreeNode) int {val : dfs(root)return max(val[0], val[1]) }func dfs(node *TreeNode) []int {if node nil {return []int{0, 0}}l, r : dfs(node.Left), dfs(node.Right)selected : node.Val l[1] r[1]notSelected : …

mysql windows安装与远程连接配置

安装包在主页资源中 一、安装(此安装教程为“mysql-installer-community-5.7.41.0.msi”安装教程,安装到win10环境) 保持默认选项,点击”Next“。 点开第一行加号展开一路展开找到“MySQL Server 5,7,41 - X64”点击选中点击一下中间只想右侧的箭头看到…

Element-02.组件-Table表格

一.常见组件-表格 二.具体操作 <template><el-table:data"tableData"borderstyle"width: 100%"><el-table-columnprop"date"label"日期"width"180"></el-table-column><el-table-columnprop&q…

Chat App 项目之解析(二)

Chat App 项目介绍与解析&#xff08;一&#xff09;-CSDN博客文章浏览阅读76次。Chat App 是一个实时聊天应用程序&#xff0c;旨在为用户提供一个简单、直观的聊天平台。该应用程序不仅支持普通用户的注册和登录&#xff0c;还提供了管理员登录功能&#xff0c;以便管理员可以…

SpringBoot项目部署时application.yml文件的加载优先级和启动脚本

文章目录 application.yml文件的加载优先级(由高到低)第一级命令行参数第二级Jar包同级目录 /config第三级Jar包同级目录第四级classpath 下的/config第五级classpath 根路径/总结&#xff1a; logback.xml 文件加载顺序当application.yml 和 bootstrap.yml 同时存在时java jar…

【iOS】Block底层分析

目录 前言Block底层结构Block捕获变量原理捕获局部变量&#xff08;auto、static&#xff09;全局变量捕获实例self Block类型Block的copyBlock作为返回值将Block赋值给__strong指针Block作为Cocoa API中方法名含有usingBlock的方法参数Block作为GCD API的方法参数Block属性的写…

使用QGraphicsView思想做一个简单图片查看器

使用QGraphicsView思想做一个简单图片查看器 如果要做一个图片查看器&#xff0c;支持放大、滚动操作&#xff0c;比较直接的方法是&#xff0c;使用QWidget来显示完整图片&#xff0c;将QWidget放入QScrollArea。缩放时调整QWidget的尺寸&#xff0c;QScrollArea会自动调整滚…

MBR20200FCT-ASEMI智能AI专用MBR20200FCT

编辑&#xff1a;ll MBR20200FCT-ASEMI智能AI专用MBR20200FCT 型号&#xff1a;MBR20200FCT 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 批号&#xff1a;最新 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;20A 最大循环峰值反向电压&#xff08;VRRM&a…

别再问了!微信小程序的那些事儿,一文搞定

微信小程序是一种无需下载安装即可使用的应用&#xff0c;它嵌入在微信生态中&#xff0c;用户通过微信扫一扫或搜索即可快速访问。 无论是购物、订餐、预约服务&#xff0c;还是玩个小游戏、看篇文章&#xff0c;都不需要下载额外的APP&#xff0c;直接就能在微信里搞定。不会…

联想电脑如何查看ip地址?详细介绍几种方法

随着互联网的普及和技术的飞速发展&#xff0c;IP地址已成为我们日常网络活动中不可或缺的一部分。无论是访问网站、远程办公还是进行网络游戏&#xff0c;IP地址都扮演着重要的角色。对于联想电脑用户来说&#xff0c;了解如何查看自己的IP地址是一项基本技能。虎观代理小二将…

JSON Web Token (JWT): 理解与应用

JWT&#xff08;JSON Web Token&#xff09;是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间以JSON对象的形式安全地传输信息。JWT通常用于身份验证和授权目的&#xff0c;因为它可以使用JSON对象在各方…

【向量数据库】Ubuntu编译安装FAISS

参考官方的安装指导&#xff1a;https://github.com/facebookresearch/faiss/blob/main/INSTALL.md&#xff0c;不需要安装的可以跳过 ~$ wget https://github.com/facebookresearch/faiss/archive/refs/tags/v1.8.0.tar.gz ~$ tar -zxvf v1.8.0.tar.gz ~$ cd faiss-1.8.0 ~$ …

易基因:RNA修饰N4-乙酰胞苷(ac4C)的调控机制、检测方法及其在癌症中的作用最新研究进展|新方向

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 N4-乙酰胞苷&#xff08;ac4C&#xff09;是一种高度保守的化学修饰&#xff0c;广泛存在于真核和原核生物RNA中&#xff0c;如tRNA、rRNA和mRNA。这种修饰与多种人类疾病显著相关&#…

vuex的原理和使用方法

简介 Vuex 是 Vue.js 应用的状态管理模式&#xff0c;它为应用内的所有组件提供集中式的状态&#xff08;数据&#xff09;管理。可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。 Vuex的构成 state&#xff1a;state 是 Vuex 的数据中心&#xff0c;也就是说state是用来…

职业院校云计算实训室建设方案全景剖析

在信息化社会的今天&#xff0c;云计算作为一项关键技术&#xff0c;正在迅速改变着教育和培训的方式。本文旨在探讨如何通过"职业院校云计算实训室建设方案"&#xff0c;为学生提供一个现代化、高效的学习和研究环境&#xff0c;以适应云计算技术的发展和市场需求。…