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

news2024/12/21 20:17:46

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

第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.coloradmin.cn/o/2041529.html

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

相关文章

VS实用调试技巧(程序员的必备技能)

调试的重要性 在我们写代码的时候,如果程序出现了bug,那么下一步就是找到bug并修复bug!而这个找问题的过程就被称为调试(英文叫debug,消灭bug的意思)。 调试能观察到程序内部执行的细节,可以增加程序员对…

5大低代码开源平台案例研究

在当今快速发展的数字化时代,企业面临着越来越复杂的技术挑战和市场竞争。为了保持竞争力并加速业务创新,许多公司正在转向低代码开源平台。然而,选择合适的低代码平台并将其成功实施,依然是一个挑战。 本文将深入探讨五个成功案…

OpenAI gym: How to get pixels in CartPole-v0

题意:OpenAI Gym:如何在 CartPole-v0 中获取像素? 问题背景: I would like to access the raw pixels in the OpenAI gym CartPole-v0 environment without opening a render window. How do I do this? 我想在 OpenAI Gym 的 …

RAC11G场景下OLR文件丢失导致节点GI无法启动

环境说明 RHEL7.911.2.0.4 RAC,双节点。 问题描述 巡检发现节点2的GI无法启动,发现是olr文件丢失导致。 问题复现 故意把OLR删掉,重启后发现GI无法启动 查看/etc/oracle/olr.loc --查看/etc/oracle/olr.loc 该文件记录有olr文件位置和…

密探 -- 渗透测试工具 v1.14 版

1.如何运行 在jdk8环境下(在jdk8以上的高版本请参考常见问题1的处理方案)运行以下语句运行: java -jar mitan-jar-with-dependencies.jar 若不想输入这么长太长语句,可以通过以下脚本的方式启动: Mac/Linux 环境下,…

计算机网络——运输层(进程之间的通信、运输层端口,UDP与TCP、TCP详解)

运输层协议概述 进程之间的通信 运输层向它上面的应用层提供通信服务。 当网络边缘部分的两台主机使用网络核心部分的功能进行端到端的通信时,都要使用协议栈中的运输层;而网络核心部分中的路由器在转发分组时只用到下三层的功能。 Q1:我们…

【最短路径算法】

每日格言:想去的地方很遥远,我们也只能自己走 前言 最短路径算法是一类用于解决图中两点间寻找最短路径问题的算法。这里我们只具体介绍利用matlab中的函数实现,迪克斯特拉算法和弗洛伊德算法大家有兴趣可上网了解一下。这类算法在多个领域都…

安全稳定的镭速高端制造业文件传输摆渡系统

在现代制造业的高速发展中,高端制造领域尤为依赖高效的文件传输系统,这类系统不仅促进了企业内部的合作,还加强了与合作伙伴的紧密联系,成为推动创新和决策的关键因素。镭速文件传输系统正是为了满足这一需求而设计,其…

KamaCoder 102. 沉没孤岛

题目描述: 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格包围。孤岛是那些位于矩阵内部、所有单元格都不接触边缘的岛屿…

如何做好小程序评论优化

用户在决定要不要用一个小程序时,往往会参考其他用户的评分和评论。因此小程序评论优化是提升用户互动和口碑传播的关键环节。以下是一些针对小程序评论优化的具体策略: 1. 优化评论区设计 确保用户能够轻松找到并访问评论区。可以在小程序的显眼位置设…

netassist TCP测试工具使用

写在前面 有时工作中我们编写一些tcp相关的程序,而netassist就是这样一款辅助我们进行TCP功能测试的工具,你可以从这里下载。 1:使用 我们需要一个server程序,可以参考这篇文章,启动server后,就可以使用…

集美大学携手和鲸与龙船,深化“航运+AI”学科建设,赋能航海人才培养

“闽国扬帆去,蟾蜍亏复圆。” ——唐贾岛 《忆江上吴处士》 人类探索海洋的脚步从未停止。昔日,闽地的先民眺望浩瀚大海,叹其无垠难测;如今,海洋科学与人工智能的交叉融合正引领着新一轮的探索浪潮,成为不…

智能学习系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的智能学习系统应运而生,各行各业相继进入信息管理时…

高性价比运动耳机有哪些?五大高性价比运动耳机分享

对于很多人来说,音乐都是日常生活中不可或缺的一部分,在路上随处可见戴着耳机的人打发无聊的时间。相对于传统的入耳式耳机来说,市面上涌现了一批开放式耳机,它们凭借其开放不塞耳的特性,能够适应多种场景,…

telegraf、influxdb、grafana安装配置

InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。 grafana,用作监控页面的前端展示。 telegraf,数据采集器。 一、Influxdb安装及配置 下载:wget https://dl.influxdata.com/influx…

RFID无线测温系统,守护电厂安全运行的关键力量

一、RFID无线测温系统概述 RFID无线测温系统主要由传感器、数据传输装置和监控中心三部分组成。 传感器是系统的感知前端,通常采用RFID技术,能够实时感知温度变化。例如,在一些应用中,RFID传感器可以安装在电力设备的关键部位&a…

【Python快速入门和实践014】Python常用脚本-批量重命名指定文件夹下文件名字

一、功能讲解 这段代码是一个用于批量重命名文件的Python脚本。它的主要功能是在文件名前添加一定数量的前导零,使得所有文件名的长度保持一致。这对于管理大量文件,特别是当文件名需要按照特定顺序排列时非常有用。 导入必要的模块: os: 用于…

SiLM5932SHO系列SiLM5932SHOCG-DG 12A/12A强劲驱动电流能力 支持主动短路保护功能(ASC)单通道隔离门极驱动器

SiLM5932SHO系列是一款单通道隔离驱动器,提供12A源电流和12A灌电流。主动保护功能包括退饱和过流检测、UVLO、隔离故障报警和 4A 米勒钳位。输入侧电源的工作电压为3V至5.5V,输出侧电源的工作电压范围为13V至30V。所有电源电压引脚都有欠压锁定 (UVLO) 保…

golang基于WMI获取所有外接硬盘(USB,移动硬盘)信息

golang基于WMI获取所有外接硬盘(USB,移动硬盘)信息 package mainimport ("fmt""regexp""github.com/StackExchange/wmi""github.com/shirou/gopsutil/v3/disk" )// 定义 WMI 类结构体 type Win32_LogicalDiskToPartition struct {Ant…

Alleviating Hallucination in Multi-Modal Large Language Models

OPERA: Alleviating Hallucination in Multi-Modal Large Language Models via Over-Trust Penalty and Retrospection-Allocation 文章汇总 当前的问题发现 如图,在模型生成幻觉内容时,最后一层的 Self-Attention 权重大概率会在幻觉部分之前呈现出明…