关键任务应用程序需要高可用性。高可用性的目标是为用户提供对服务或资源的一致访问,最大限度地减少中断的可能性。自动故障转移是用于实现高可用性的特定机制。它涉及自动检测系统组件(如服务器、网络或数据库)的故障,并立即将操作切换到备用组件,而无需人工干预。这增加了弹性。
MariaDB MaxScale是一个数据库代理,包含高可用性功能。在本文中,我将向您展示如何使用Java 和 Svelte 实现的在线商店模拟器应用程序进行尝试。
场景:
使用 JavaScript 和 Svelte 框架开发的 Web 应用程序向 Java 后端发出 HTTP 请求。后端使用服务器发送的事件进行响应,前端使用这些事件来更新浏览器上的用户界面。
后端使用Spring Boot实现,并使用R2DBC(反应式)连接到MariaDB数据库集群。简而言之,后端逻辑是对在线商店数据库的读取和写入的模拟。模拟是参数化的,用户可以调整:
- 每分钟产品访问次数:每分钟对数据库的读取次数。
- 每分钟订单数:每分钟向数据库写入的次数。
- 每个订单的产品:写放大。
- 超时(以毫秒为单位):多少秒后才认为对数据库的请求失败。
从源代码构建 Docker 镜像
这里为模拟器中的每个组件准备了自定义 Docker 镜像。您可以从源构建 镜像(可选),也可以使用 Docker Hub 中已构建和发布的 镜像。如果您决定自己构建 镜像,可以在 GitHub 上找到源代码:
- MariaDB 部署:自定义 镜像,可使用 MaxScale 轻松部署复制的 MariaDB 拓扑。不要在生产中使用这些!这些 镜像仅适用于演示应用程序。使用官方 MariaDB Docker 镜像进行生产部署。
- 后端应用程序:连接数据库集群的后端应用程序。
- 前端应用程序:前端应用程序向后端发出模拟配置请求并接收事件以显示模拟结果。
docker build --tag alejandrodu/online-store-simulator-java-backend .