我负责开发一个内容交付应用程序,最近我们已经将我们的应用程序从单体架构转变为微服务,但不幸的是,我们在从 API 获取响应方面面临着难以置信的缓慢。API 大约需要 11 秒才能得到结果,如果我们在同一个移动应用页面上有 2 个请求,则需要很长时间!该服务不要求来自其他本地服务的任何数据。
旧规格(单片):
- DB 是 MSSSQL 服务器
- 后端代码 .Net 框架
- 宁静的 API
- 移动应用 React Native
- 2 个 AWS EC2 双核和每个 4 GB 内存
当前规范(微服务):
- 数据库是 MySQL
- 后端 .Net 核心
- 宁静的 API
- 移动应用颤振
- 负载均衡器下每个服务的 2 个 AWS ECS docker 也是双核的,每个服务 4 GB。
这是我的 Docker 文件:
# Define base image
FROM microsoft/dotnet:2.2-sdk AS build-env
# Copy project files
WORKDIR /source
COPY ["Magazines_Service/*.csproj", "./Magazines_Service.csproj"]
# Restore
RUN dotnet restore "./Magazines_Service.csproj"
# Copy all source code
COPY . .
# Publish
WORKDIR /source/Magazines_Service
RUN dotnet publish -c Release -o /publish
# Runtime
FROM microsoft/dotnet:2.2-aspnetcore-runtime
WORKDIR /publish
COPY --from=build-env /publish .
ENTRYPOINT ["dotnet", "Magazines_Service.dll"]
所有托管都在 AWS 上
我读过一些关于 docker-compose 的东西,但没有深入挖掘(我对 docker 和微服务架构非常陌生,所以你的帮助绝对是对我的补充)。