使用FastAPI微服务在AWS EKS上实现AI会话历史的管理

[复制链接]
发表于 2025-9-11 17:55:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
架构概述

本文介绍如何使用FastAPI构建微服务架构,在AWS EKS上摆设两个微服务

      
  • 服务A:接收用户提示  
  • 服务B:处理对话逻辑,与Redis缓存和MongoDB数据库交互
该架构使用AWS ElastiCache(Redis)实现快速相应,并通过MongoDB RDS长期化存储会话数据。
该架构提供了:

      
  • 通过Kubernetes实现的可扩展性  
  • 通过Redis缓存实现的快速相应  
  • 通过MongoDB实现的长期化存储  
  • 通过微服务实现的模块化设计
这种架构非常适合需要处理大量会话数据并保证快速相应的对话式AI应用场景。
组件阐明

AWS EKS (Elastic Kubernetes Service)

作为容器编排平台,托管所有微服务。
微服务A (Prompt Receiver)


      
  • 基于FastAPI构建  
  • 通过REST API接收用户提示  
  • 将哀求转发给微服务B
微服务B (Conversational Logic)


      
  • 基于FastAPI构建  
  • 访问ElastiCache(Redis)缓存最近对话  
  • 使用MongoDB RDS长期化存储会话数据
AWS ElastiCache (Redis)


      
  • 提供内存数据库服务  
  • 加速实时交互相应  
  • 缓存最近对话内容
MongoDB on RDS


      
  • 关系型数据库服务  
  • 长期化存储完整聊天记录  
  • 支持元数据存储和长期检索
Kubernetes摆设配置

Docker镜像构建

两个服务共享雷同的Docker基础镜像:
  1. FROM python:3.10-slim
  2. ENV PYTHONDONTWRITEBYTECODE=1
  3. ENV PYTHONUNBUFFERED=1
  4. WORKDIR /app
  5. COPY requirements.txt .
  6. RUN pip install --no-cache-dir -r requirements.txt
  7. COPY . .
  8. EXPOSE 8000
  9. CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
复制代码
依赖文件requirements.txt:
  1. fastapi uvicorn httpx redis pymongo
复制代码
微服务A摆设配置(service-a-deployment.yaml)

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4.   name: service-a-deployment
  5. spec:
  6.   replicas: 2
  7.   selector:
  8.     matchLabels:
  9.       app: service-a
  10.   template:
  11.     metadata:
  12.       labels:
  13.         app: service-a
  14.     spec:
  15.       containers:
  16.       - name: service-a
  17.         image: your-docker-image
  18.         ports:
  19.         - containerPort: 8000
  20.         env:
  21.         - name: SERVICE_B_URL
  22.           value: "http://service-b-service:8000/process"
  23.         - name: REDIS_HOST
  24.           value: "redis-service"
  25.         - name: REDIS_PORT
  26.           value: "6379"
  27.         - name: MONGODB_URI
  28.           value: "mongodb://mongodb-service:27017"
  29. ---
  30. apiVersion: v1
  31. kind: Service
  32. metadata:
  33.   name: service-a-service
  34. spec:
  35.   ports
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表