架构图:整体架构图

整体架构图

分层讲解:

1. 客户端层

  • 客户端:用户通过客户端(如浏览器或移动应用)发起请求。
  • SLB(Server Load Balancer):用于负载均衡,将客户端请求分发到后端服务。
  • Ingress:Kubernetes 的 Ingress 控制器,用于管理外部访问到集群内部服务的路由。

2. 前端业务层

  • HTML、JS、CSS、Vue:前端静态资源,服务于用户界面。
  • complat-webserver:是一个 Web 服务器,用于托管和分发前端静态资源。

3. API 网关层

  • API-gateway:作为系统的统一入口,负责请求路由、负载均衡、身份验证等功能。

4. 业务服务层

  • Java 微服务业务模块:核心业务逻辑实现,分为生产者和消费者服务。
  • 消息中间件
    • Kafka(Pulsar):用于处理高吞吐量的消息队列任务。
    • RabbitMQ:另一个消息中间件选项。
  • 服务发现与配置中心
    • Consul/Nacos:用于服务注册与发现、配置管理。
  • 缓存与搜索
    • Redis 集群:用于缓存数据,提高系统性能。
    • Elasticsearch 集群:用于全文搜索和数据分析。

5. 数据存储层

  • 关系型数据库
    • MySQL、PostgreSQL:用于存储结构化数据。
  • 大数据处理
    • Hadoop:用于大规模数据存储和处理。
  • 文件存储
    • NFS(PV/PVC):用于持久化存储文件。
    • OSS、NAS:对象存储服务和网络附加存储。

6. 运维与监控层

  • CI/CD 工具
    • GitLab、Jenkins、ArgoCD、Kustomize:用于持续集成和持续部署。
  • 监控与日志
    • Prometheus/Grafana:用于监控系统和微服务的性能指标。
    • SkyWalking、ELK Stack、Loki:用于跟踪和分析日志。
  • 容器编排与管理
    • Kubernetes(k8s):用于容器的编排和管理。
    • Helm、Ingress、Velero、KubeSphere:Kubernetes 的扩展工具,用于包管理、备份恢复和可视化管理。
  • 自动化工具
    • Python、Shell、Ansible:用于自动化脚本和配置管理。

7. 架构配置

  • 生产环境:部署在生产环境中。
  • ACK 托管集群:阿里云容器服务 Kubernetes 版(ACK)托管的集群。
  • 资源规模:25 台节点 + 10 台中间件节点 + 6-8 台数据库节点,共 150 个 Pod。

建议:

  1. 服务发现与配置中心
    • 建议:选择一个适合团队和服务架构的服务发现和配置中心,避免冗余。
  2. 消息中间件
    • 建议:评估业务需求,选择一个合适的消息中间件,并尽量统一使用。
  3. 缓存与数据库
    • 建议:确保 Redis 集群和 MySQL 主从复制配置正确,并定期进行备份和故障演练。
  4. Ingress 和 API 网关
    • 建议:Ingress 负责外部流量的路由,API 网关负责内部微服务的路由、认证和限流等。
  5. 监控与日志
    • 建议:选择一个统一的监控和日志平台,如 (Prometheus + Grafana + Loki)或者(ELK) 组合,减少工具冗余。
  6. CI/CD 与自动化
    • 建议:建立标准化的 CI/CD 流程,确保从代码提交到部署的全流程自动化。
  7. 资源管理
    • 建议:150 个 Pod 在 25 - 30台节点上运行、资源分配和调度合理分配、不同作用的pod要做详细的资源配额(Resource Quotas)和限制范围(Limit Ranges)进行资源管理、甚至有些特定的pod要绑定node节点运行、确保合理、业务稳定高可用运行。
posted @ 2025-07-04 16:57  姬高波  阅读(164)  评论(0)    收藏  举报