外部配置
问题陈述
微服务架构将应用程序构建为一组松散耦合的微服务,每个服务都可以以敏捷的方式独立开发,以实现持续交付/部署。这些服务通常与基础设施服务或第三方服务交互。
基础设施服务可以包括服务注册表、消息代理、数据库服务器。第三方服务可以是支付服务、电子邮件服务、消息服务。除了不同的服务之外,环境也常常不同。考虑以下情况 -
配置数据- 外部/第三方服务的配置应提供给微服务,例如数据库凭据、网络 URL 等。
多个环境- 通常有不同的环境,如开发、质量保证、测试、登台或预生产和生产。服务应该部署在每个环境上,而无需修改任何代码。
配置数据不同- 外部/第三方服务的配置也因开发而异,例如开发数据库到生产数据库、测试支付处理器与原始支付处理器服务。
解决方案
我们可以将所有配置从数据库凭据外部化到网络 URL。服务将在启动期间读取配置数据,例如从属性文件/系统环境变量或使用命令行参数。此模式有助于部署微服务,无需任何修改/重新编译。