个人系统架构技术分享

发布于:2025-02-23 ⋅ 阅读:(20) ⋅ 点赞:(0)
架构技术
技术 版本 说明
CentOS 7.9 操作系统
Amoeba 负责MySQL读写分离
NFS 分布式存储
ISCSI 块存储
keepalived 日志收集
MySQL 5.7 数据库存储
MinIO 8.4.5 对象存储
Kubernetes 1.23.15 应用容器管理平台
Redis 7.0 分布式缓存
Elasticsearch 7.17.3 搜索引擎
nacos 3.3.4 服务注册
后端技术
技术 版本 说明
Spring Cloud 2023.0.1 微服务框架
Spring Boot 3.2.2 容器+MVC框架
JWT 1.37.0 认证和授权框架
MyBatis 3.5.14 数据库持久层
EFK 日志收集系统
RabbitMQ 3.10.5 消息队列
前端技术
技术 说明
Vue 前端框架
Vue-router 路由框架
JavaScript 用于创建动态网页
Element 前端UI框架
html 标记语言,用于定义网页结构
css 样式表语言,用于控制网页样式
vue-element-admin 项目脚手架参考

移动端技术

技术 说明
Vue 核心前端框架
Vuex 全局状态管理框架
uni-app 移动端前端框架
luch-request HTTP请求框架
功能并发量
pod 功能 单用户pv 每分钟并发量 高峰 pod数量
1 用户登录注册 4 800 3200 18 5%
2 选择题库 3 600 2500 14 4%
3 每日打卡 2 400 1600 10 2.9%
4 刷题练习 30 5800 23500 110 32%
5 题目搜索 3 600 2400 14 4%
6 视频资源 2 300 1000 6 1.7%
7 错题诊断 3 600 2500 14 4%
8 用户排名 4 800 3400 18 5%
9 会员中心 4 800 3400 18 5%
10 在线直播 2 350 900 5 1.5%
11 热点快讯 4 800 3000 17 5%
日活跃用户 140000 61 11861 47444 244
一个节点 20个pod 69000
总计资源:60核CPU,140GB内存 ,3主16node节点 k8s集群外10台 =29台 用的机房是第三方云机房是北京来广营IDC数据中心 我们的项目就2个运维

1. 核心学习功能(高频使用)

  • 刷题练习:85%-90%
    (用户主要需求,高频刚需)
  • 选择题库:80%-85%
    (用户选择不同题库进行针对性练习)
  • 题目搜索:70%-75%
    (快速定位特定题目或知识点)

2. 用户粘性功能(中频使用)

  • 每日打卡:50%-60%
    (初期参与度高,长期坚持比例下降)
  • 视频资源:45%-55%
    (依赖内容质量,部分用户偏好视频学习)
  • 在线直擂(实时竞赛):30%-40%
    (活跃用户参与,但非核心需求)

3. 辅助功能(低频使用)

  • 用户排名:25%-35%
    (激励型功能,部分用户关注排名竞争)
  • 热点快讯:20%-30%
    (资讯类内容,需与学习强相关才能提升使用率)
  • 会员中心:15%-25%
    (涉及付费转化,活跃付费用户才会高频访问)

4. 基础功能(一次性或低频)

  • 用户登录注册:10%-15%(日常使用率)
    (注册后仅需偶尔重新登录)

市场依据说明

  1. 核心功能主导
    类似App(如猿题库、考虫)数据显示,刷题、选题库等学习行为占比超80%,是用户留存的关键。
  2. 打卡与社交功能
    教育类App中,打卡功能的平均坚持率约50%-60%(数据来源:易观分析),排名功能活跃度依赖社区运营强度。
  3. 视频资源差异大
    若视频与题库强绑定(如解析视频),使用率可达50%以上;若为独立课程,则可能低于40%。
  4. 付费与会员功能
    行业平均付费率约5%-15%,会员中心日常访问率通常低于30%(数据参考:艾瑞咨询)。

总结建议

  • 优先优化核心功能(刷题、题库、搜索),提升流畅度和题库质量。
  • 强化打卡激励机制(如积分兑换),将使用率从50%提升至60%+。
  • 视频资源结合题目解析,避免与外部平台(如B站)直接竞争。
  • 简化会员中心入口,通过精准推送提升付费转化。
非功能并发量
pod 功能 单用户pv 每分钟并发量 高峰 pod数量
1 Haproxy 3000 17
2 harbor 8
3 nacos 8
4 Nexus 4
5 sonar 3
6 jenkins 4
7 rabbitMQ 10
8 redis 10
9 gitlab 4
10 calico 15
11 prometheus 12
总记 18468 95
一个节点 20个pod

prometheus prometheus-operator node-exporter alertmanager

apiserver

服务器 8核16G

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

类别 具体内容
前端技术 vue3、html、JavaScript、scss、element plus
服务架构 Spring Cloud微服务架构
代理服务器 Nginx
分布式任务调度中心 Xxl-Job
注册与发现中心/配置中心 Nacos
服务间调用 OpenFeign
网关 Spring Cloud Gateway
数据存储 MySQL
数据库持久层 MyBatis/MyBatis-Plus
缓存 Redis
消息队列 rabbitMQ
搜索引擎 ElasticSearch
加密算法 Bcrypt
身份认证 JWT
代码沙箱 Docker
对象存储 OSS
短信服务 阿里云短信服务

| ---- | ---- |
| 防火墙 | 位于公网与内部网络之间,起到安全防护作用。 |
| nginx + keepalived | 用于负载均衡和高可用性的服务器组合,接收来自公网的请求并分发到后端服务器。 |
| Tomcat集群 | 一组Tomcat服务器,用于处理Web请求,提供Web服务。 |
| Amoeba + mysql集群 | Amoeba是数据库中间件,用于管理MySQL数据库集群,提供数据库服务和数据存储,以及读写分离。 |
| EFK | 是Elasticsearch、Fluentd、Kibana的组合,用于日志收集、存储和可视化分析。 |
| rabbitMQ | |
| 备份服务器 | 用于数据备份和恢复,保障数据的安全性和可靠性。 |
| jumpserver | 可能是运维管理平台,运维人员通过它来管理和操作整个系统。 |
| Redis集群 | 分布式缓存系统,用于提高数据读取速度,减轻数据库压力。 |
| zabbix | 监控系统,用于实时监控服务器和网络设备的性能、状态等信息。 |
| nfs | 网络文件系统,提供文件共享服务。 |

用户通过域名访问公网IP,通过防火墙的DNAT策略访问到LVS的VIP,根据LVS规则负载到相应节点。通过访问Ingress-nginx svc 的NodePort 进入集群,根据Ingress规则负载到指定svc,再由svc自动生成的endpoint 负载清单调度到指定Pod,Pod由deployment 创建,根据应用的访问量由HPA动态水平扩缩容,Pod存储由阿里云对象存储OSS来实现,在集群中安装OSS-Provisioner插件并声明sc以及pvc实现Pod的存储,集群日志收集由helm部署EFK,集群监控由helm部署kube-prometheus-stack实现。MySQL和Redis数据库部署在k8s集群外。

//拉取镜像
docker pull quay.io/minio/minio

// 创建数据存储目录
mkdir -p ~/minio/data

// 创建minio
docker run
-p 9001:9000
-p 9090:9090
–name minio
-v ~/minio/data:/data
-e “MINIO_ROOT_USER=admin”
-e “MINIO_ROOT_PASSWORD=admin123456”
-d
quay.io/minio/minio server /data --console-address ":9090


网站公告

今日签到

点亮在社区的每一天
去签到