个人系统架构技术分享

架构技术
技术版本说明
CentOS7.9操作系统
Amoeba负责MySQL读写分离
NFS分布式存储
ISCSI块存储
keepalived日志收集
MySQL5.7数据库存储
MinIO8.4.5对象存储
Kubernetes1.23.15应用容器管理平台
Redis7.0分布式缓存
Elasticsearch7.17.3搜索引擎
nacos3.3.4服务注册
后端技术
技术版本说明
Spring Cloud2023.0.1微服务框架
Spring Boot3.2.2容器+MVC框架
JWT1.37.0认证和授权框架
MyBatis3.5.14数据库持久层
EFK日志收集系统
RabbitMQ3.10.5消息队列
前端技术
技术说明
Vue前端框架
Vue-router路由框架
JavaScript用于创建动态网页
Element前端UI框架
html标记语言,用于定义网页结构
css样式表语言,用于控制网页样式
vue-element-admin项目脚手架参考

移动端技术

技术说明
Vue核心前端框架
Vuex全局状态管理框架
uni-app移动端前端框架
luch-requestHTTP请求框架
功能并发量
pod功能单用户pv每分钟并发量高峰pod数量
1用户登录注册4800320018 5%
2选择题库3600250014 4%
3每日打卡2400160010 2.9%
4刷题练习30580023500110 32%
5题目搜索3600240014 4%
6视频资源230010006 1.7%
7错题诊断3600250014 4%
8用户排名4800340018 5%
9会员中心4800340018 5%
10在线直播23509005 1.5%
11热点快讯4800300017 5%
日活跃用户140000611186147444244
一个节点 20个pod69000
总计资源: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数量
1Haproxy300017
2harbor8
3nacos8
4Nexus4
5sonar3
6jenkins4
7rabbitMQ10
8redis10
9gitlab4
10calico15
11prometheus12
总记1846895
一个节点 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

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

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

相关文章

python进阶篇-面向对象

1.对象的定义 1.1 什么是对象 面向过程:将程序流程化 对象:就是“容器“,是用来存储数据和功能的,是数据和功能的集合体。 面向对象和面向过程没有优劣之分,它们只是使用的场景不同罢了。 1.2 为什么要有对象 有…

网络安全“挂图作战“及其场景

文章目录 一、网络安全挂图作战来源与定义1、网络安全挂图作战的来源2、网络安全挂图作战的定义 二、挂图作战关键技术三、挂图作战与传统态势感知的差异四、挂图作战主要场景五、未来趋势结语 一、网络安全挂图作战来源与定义 1、网络安全挂图作战的来源 网络安全挂图作战的…

【嵌入式Linux应用开发基础】read函数与write函数

目录 一、read 函数 1.1. 函数原型 1.2. 参数说明 1.3. 返回值 1.4. 示例代码 二、write 函数 2.1. 函数原型 2.2. 参数说明 2.3. 返回值 2.4. 示例代码 三、关键注意事项 3.1 部分读写 3.2 错误处理 3.3 阻塞与非阻塞模式 3.4 数据持久化 3.5 线程安全 四、嵌…

嵌入式八股文(四)计算机网络篇

第一章 基础概念 1. 服务 指网络中各层为紧邻的上层提供的功能调用,是垂直的。包括面向连接服务、无连接服务、可靠服务、不可靠服务。 2. 协议 是计算机⽹络相互通信的对等层实体之间交换信息时必须遵守的规则或约定的集合。⽹络协议的三个基本要素:语法、…

LabVIEW 天然气水合物电声联合探测

天然气水合物被认为是潜在的清洁能源,其储量丰富,预计将在未来能源格局中扮演重要角色。由于其独特的物理化学特性,天然气水合物的探测面临诸多挑战,涉及温度、压力、电学信号、声学信号等多个参数。传统的人工操作方式不仅效率低…

JAVA代码走查重构常用prompt

代码重构prompt: ## 主题: 代码重构 ## 角色扮演: 你是软件开发大师Martin Fowler,精通代码重构、面向对象编程、Clean Code和设计模式,且熟练掌握《重构,改善既有代码的设计》这本书中的重构思想和各种重构方法。 ## …

[数据结构]红黑树,详细图解插入

目录 一、红黑树的概念 二、红黑树的性质 三、红黑树节点的定义 四、红黑树的插入(步骤) 1.为什么新插入的节点必须给红色? 2、插入红色节点后,判定红黑树性质是否被破坏 五、插入出现连续红节点情况分析图解(看…

STM32 HAL库USART串口DMA IDLE中断编程:避坑指南

HAL_UART_Receive接收最容易丢数据了,STM32 HAL库UART查询方式实例 可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程:演示数据丢失, 需要在此基础优化一下. STM32F103 HAL库USART串口…

sql注入中information_schema被过滤的问题

目录 一、information_schema库的作用 二、获得表名 2.1 sys.schema_auto_increment_columns 2.2 schema_table_statistics 三、获得列名 join … using … order by盲注 子查询 在进行sql注入时,我们经常会使用information_schema来进行爆数据库名、表名、…

Jenkins 给任务分配 节点(Node)、设置工作空间目录

Jenkins 给任务分配 节点(Node)、设置工作空间目录 创建 Freestyle project 类型 任务 任务配置 Node 打开任务-> Configure-> General 勾选 Restrict where this project can be run Label Expression 填写一个 Node 的 Label,输入有效的 Label名字&#x…

Electron:使用electron-react-boilerplate创建一个react + electron的项目

使用 electron-react-boilerplate git clone --depth 1 --branch main https://github.com/electron-react-boilerplate/electron-react-boilerplate.git your-project-name cd your-project-name npm install npm start 安装不成功 在根目录加上 .npmrc文件 内容为 electron_…

数控机床设备分布式健康监测与智能维护系统MTAgent

数控机床设备分布式健康监测与智能维护系统MTAgent-v1.1融合了目前各种先进的信号处理以及信息分析算法以算法工具箱的方式,采用了一种开发的、模块化的结构实现信号各种分析处理,采用Python编程语言,满足不同平台需求(包括Windows、Linux)。…

FPGA VIVADO:axi-lite 从机和主机

FPGA VIVADO:axi-lite 从机和主机 TOC在这里插入代码片 前言 协议就不详细讲解了,直接看手册即可。下面主要如何写代码和关键的时序。 此外下面的代码可以直接用于实际工程 一、AXI-LITE 主机 数据转axi lite接口: 读/写数据FIFO缓存 仲裁&#xff1a…

1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。2. 基于 openEuler 构建 LVS-DR 群集。

DR 模式 * 负载各节点服务器通过本地网络连接,不需要建立专用的IP隧道 原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数…

ollama server启动服务后如何停止

要停止 Ollama 服务器服务,取决于如何启动该服务的。以下是几种常见的启动方法和相应的停止服务的步骤: 1. 直接在命令行中启动 如果是在命令行中直接启动 Ollama 服务器的,例如使用以下命令: ollama serve 可以通过以下方式停…

【设计模式】03-理解常见设计模式-行为型模式(专栏完结)

前言 前面我们介绍完创建型模式和创建型模式,这篇介绍最后的行为型模式,也是【设计模式】专栏的最后一篇。 一、概述 行为型模式主要用于处理对象之间的交互和职责分配,以实现更灵活的行为和更好的协作。 二、常见的行为型模式 1、观察者模…

mapbox基础,使用geojson加载line线图层,实现纯色填充、图片填充、虚线和渐变效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️line线图层样式二、🍀使用geojson加载…

深入浅出:CUDA是什么,如何利用它进行高效并行计算

在当今这个数据驱动的时代,计算能力的需求日益增加,特别是在深度学习、科学计算和图像处理等领域。为了满足这些需求,NVIDIA推出了CUDA(Compute Unified Device Architecture),这是一种并行计算平台和编程模…

LNMP+Zabbix安装部署(Zabbix6.0 Lnmp+Zabbix Installation and Deployment)

LNMPZabbix安装部署(Zabbix6.0) 简介 LNMP(Linux Nginx MySQL PHP)是一种流行的Web服务器架构,广泛用于搭建高性能的网站和应用程序。Zabbix 是一个开源的监控软件,可以用来监控网络、服务器和应用程序…

Docker 部署 Dify:轻松集成 Ollama 和 DeepSeek

1 Ollama的安装及使用 1.1 什么是Ollama? Ollama 是一个用于本地部署和运行大型语言模型的框架。 Ollama 的作用包括: 本地模型运行:Ollama 允许在本地机器上运行大型语言模型(如 LLaMA、DeepSeek 等),无…