常见的技术选择包括: • 数据库级多租户:使用多个数据库实例分别存储各个租户的数据,每个租户对应一个独立的数据库。 • 模式级多租户:使用同一个数据库实例,但是为每个租户创建独立的数据库模式,实现数据隔离。 • 表级多租户:在同一个数据库模式下,使用不同的表来存储各个租户的数据,实现数据隔离。 • 应用级多租户:在应用程序中实现租户隔离,例如使用Spring Cloud等微服务框架。 • 容器级多租户:使用容器技术,为每个租户创建独立的容器,实现资源隔离和控制。 4 实现多租户架构的注意事项 • 保证租户数据的隔离性和安全性。 • 设计合理的租户数据结构和关系模型。 • 统一管理租户的配置和权限。 • 保证系统的可扩展性和可伸缩性,支持水平扩展。 • 保证系统的高可用性和容错性,避免单点故障。 • 对租户数据进行备份和恢复,保证数据的可靠性和完整性
Spring 框架一直提供了两种不同的客户端来执行 http 请求: • RestTemplate: 它在 Spring 3 中被引入,提供同步的阻塞式通信。 • WebClient: 它在 Spring 5 的 Spring WebFlux 库中作为一部分被发布。它提供了流式 API,遵循响应式模型。 RestTemplate 的方法暴露了太多的 HTTP 特性,导致了大量重载的方法,使用成本较高。WebClient 是 RestTemplate 的替代品,支持同步和异步调用。它是 Spring Web Reactive 项目的一部分。 现在 Spring 6.1 M1 版本引入了 RestClient。一个新的同步 http 客户端,其工作方式与 WebClient 类似,使用与 RestTemplate 相同的基础设施。