分布式微服务系统架构第131集:fastapi-python

加群联系作者vx:xiaoda0423

仓库地址:https://webvueblog.github.io/JavaPlusDoc/

https://1024bat.cn/

判断你电脑适合使用 AMD64(x86_64) 还是 ARM64(aarch64) 架构的方法如下:


✅ 一看系统架构(最直接)

【Windows 系统】
  1. 打开命令行(Win+R → 输入 cmd):

    go 复制代码
    wmic os get osarchitecture

    输出示例:

  • 64-bit → 多数是 AMD64 架构(即 Intel/AMD CPU)

  • 如果是 ARM 芯片(例如 Surface Pro X),会显示特殊版本,如 ARM64-based PC

  • 或在"系统信息"中查看:

    • x64-based PC → AMD64 架构

    • ARM-based PC → ARM64 架构

    • "系统类型":
    【macOS 系统】
    1. 打开终端,输入:

      go 复制代码
      uname -m

      输出含义:

    • x86_64 → Intel CPU → AMD64 架构

    • arm64 → Apple M1/M2/M3 芯片 → ARM64 架构

    【Linux 系统】
    go 复制代码
    uname -m
    • x86_64 → AMD64 架构

    • aarch64 → ARM64 架构


    ✅ 二看 CPU 品牌

    CPU 品牌 架构
    Intel / AMD AMD64(即 x86_64)
    Apple M 系列 ARM64(arm64)
    高通 Snapdragon ARM64
    Raspberry Pi / RK3399 等开发板 ARM64

    ✅ 三看下载软件包时的选择

    当你安装 Docker、Python、Node.js、VSCode 等工具时,选择:

    • x64 / x86_64 / amd64 → Intel/AMD CPU 用

    • arm64 / aarch64 → Apple M 系列或 ARM 开发板用


    下面提供在阿里云上部署 ELK 的两种常用方案:

    1. 托管式 Elasticsearch Service(AES) + Logstash/Beats

    2. 自建 ELK 集群(ECS/ACK + Docker Compose)


    1. 使用阿里云 Elasticsearch Service(AES)

    阿里云 Elasticsearch Service(AES)是一项托管服务,包含 Elasticsearch 和 Kibana,免运维、可弹性伸缩。

    步骤

    1. 创建实例
    • 控制台 → 产品 → Elasticsearch(托管版)→ 创建实例

    • 选择规格(节点数、规格、存储)与网络(VPC、交换机)

    • 记下实例域名(如 your-cluster.region.es.aliyuncs.com:9200

  • 安全设置

    • 访问控制 → 账号管理 → 新建内置账号(或使用 RAM 授权)

    • IP 白名单 → 添加可以访问集群的 IP 或安全组

  • 访问 Kibana

    • 控制台 → 实例详情 → Kibana 管理 → 打开 Kibana 控制台

    • 使用步骤 2 中的账号登录

  • 日志采集 → Logstash or Beats

    • 在一台 ECS 或容器服务上安装 Logstash / Filebeat

    • 典型 Logstash 配置(logstash.conf):

      go 复制代码
      input {
        file {
          path => "/var/log/*.log"
          start_position => "beginning"
        }
      }
      output {
        elasticsearch {
          hosts => ["https://your-cluster.region.es.aliyuncs.com:9200"]
          user => "elastic_user"
          password => "elastic_pass"
          index => "app-logs-%{+YYYY.MM.dd}"
          ssl => true
        }
      }
    • 启动:

      go 复制代码
      bin/logstash -f logstash.conf
  • 可选:使用 Filebeat

    • 安装 Filebeat,编辑 filebeat.yml

      go 复制代码
      filebeat.inputs:
      - type: log
        paths:
          - /var/log/*.log
      
      output.elasticsearch:
        hosts: ["https://your-cluster.region.es.aliyuncs.com:9200"]
        username: "elastic_user"
        password: "elastic_pass"
        ssl.enabled: true
    • 启动并注册:

      go 复制代码
      filebeat setup --dashboards
      systemctl start filebeat

    2. 自建 ELK 集群

    如果你需要完全自定义,或想在容器中部署:

    2.1 在 ECS 上自建(Docker + Docker-Compose)

    1. 准备 ECS
    • 选择 4 核、8 GB 内存及以上

    • 安装 Docker & Docker Compose

  • 编写 docker-compose.yml

    go 复制代码
    version: "3.8"
    services:
      elasticsearch:
        image: elasticsearch:8.5.1
        environment:
          - node.name=es-node1
          - cluster.name=elk-cluster
          - discovery.type=single-node
          - ES_JAVA_OPTS=-Xms2g -Xmx2g
        ulimits:
          memlock:
            soft: -1
            hard: -1
        volumes:
          - es_data:/usr/share/elasticsearch/data
        ports:
          - "9200:9200"
    
      logstash:
        image: logstash:8.5.1
        volumes:
          - ./pipeline:/usr/share/logstash/pipeline
        ports:
          - "5044:5044"
        depends_on:
          - elasticsearch
    
      kibana:
        image: kibana:8.5.1
        environment:
          ELASTICSEARCH_HOSTS: http://elasticsearch:9200
        ports:
          - "5601:5601"
        depends_on:
          - elasticsearch
    
    volumes:
      es_data:
  • 启动服务

    go 复制代码
    docker-compose up -d
  • 验证

    • http://<ECS_IP>:9200 → Elasticsearch

    • http://<ECS_IP>:5601 → Kibana

    2.2 在 ACK(Kubernetes)上部署

    1. 创建 ACK 集群
    • 控制台 → 容器服务 ACK → 新建集群
  • 安装 Helm

    go 复制代码
    curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
  • 添加 Elastic Helm 仓库

    go 复制代码
    helm repo add elastic https://helm.elastic.co
    helm repo update
  • 部署 Elasticsearch

    go 复制代码
    helm install es-cluster elastic/elasticsearch \
      --set replicas=3 \
      --set resources.requests.memory=2Gi \
      --set resources.requests.cpu=1
  • 部署 Kibana

    go 复制代码
    helm install kibana elastic/kibana \
      --set service.type=LoadBalancer \
      --set ingress.enabled=true \
      --set elasticsearchHosts=http://es-cluster-master:9200
  • 部署 Logstash(可选)

    go 复制代码
    helm install logstash elastic/logstash \
      --set pod.resources.requests.memory=1Gi

小结与建议

  • 首选 AES:托管版省运维、自动扩缩容,配合 Filebeat 最快。

  • 自建集群:适合对版本、插件、网络有严格自定义需求。

  • 安全:生产环境下务必开启 TLS、认证与访问控制。

  • 监控:可结合阿里云云监控(CMS)与 Elastic Stack 自带的监控插件。

相关推荐
yuanlaile29 分钟前
RabbitMQ高并发秒杀、抢购系统、预约系统底层实现逻辑
分布式·rabbitmq·rabbitmq高并发·rabbitmq项目实战·rabbitmq实战教程
魔尔助理顾问1 小时前
Flask如何读取配置信息
python·flask·bootstrap
jc_hook2 小时前
Python 接入DeepSeek
python·大模型·deepseek
chicpopoo2 小时前
Python打卡DAY25
开发语言·python
StarRocks_labs2 小时前
从InfluxDB到StarRocks:Grab实现Spark监控平台10倍性能提升
大数据·数据库·starrocks·分布式·spark·iris·物化视图
crazyme_63 小时前
深入掌握 Python 切片操作:解锁数据处理的高效密码
开发语言·python
Code_流苏4 小时前
《Python星球日记》 第69天:生成式模型(GPT 系列)
python·gpt·深度学习·机器学习·自然语言处理·transformer·生成式模型
于壮士hoho5 小时前
Python | Dashboard制作
开发语言·python
the_3rd_bomb5 小时前
MNIST DDP 分布式数据并行
分布式·mnist