大多数后台服务,通常包含以下组件:
服务本体。
持久化服务(各类数据库、文件存储)。
基础设施(如消息队列、服务注册发现中心、监控系统、日志系统等)。
迁移服务本体
CloudBase 云托管适用于部署无状态的容器化服务,您需要将您的服务改造为此种类型。
无状态服务
无状态服务即服务在处理单个请求时,不需要持久性地保存上下文,以保证服务可以做到任意横向扩容。
无状态服务的每个服务节点之间是完全等价的,请求可能会由随机的任意节点进行处理,并且节点可能会被动态地销毁、重建、扩容,所以您不应该在节点上保存任何状态,例如:
使用本地内存储存 HTTP Session。
使用本地文件储存数据。
业务逻辑中使用某个节点的 IP。
如果您有以上的需求,可以考虑如下解决方法:
使用 Redis 等外部数据库储存 HTTP Session。
使用 CFS、对象存储等外部服务保存文件。
使用服务对外 URL。
容器化
CloudBase 云托管只能部署基于 Docker 容器的应用,为了将服务封装到容器中,您应该使用 Dockerfile 来定义您的应用运行环境。