使用相同的二进制文件作为微服务后端和客户端是一个好习惯吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (12)

我需要实现一个简单的CRUD微服务,例如一个具有自己持久性的简单日志服务。我还需要为同一个服务编写一个java客户端库。

鉴于其简单性,有一个可以用作服务后端(托管http端点)的jar或作为代理某个远程端点的库是非常诱人的。

作为服务运行时应提供的附加依赖关系配置是持久性端点(例如,DB数据源名称)。

这种方法会出现重大问题吗?在野外有这种模式的例子吗?

提问于
用户回答回答于

我建议不要这样做。您正紧密地结合服务器和客户端实现,通常您希望两者都独立发展。

如果您对服务进行了更改并发布了新的JAR文件,那么您的所有客户如何知道更改是否与它们相关?您可能拥有比服务更多的客户端,这些服务通常由其他团队或公司控制。因此升级客户比升级服务要昂贵得多。

此外,您将为每个客户端和服务部署大量未使用的代码。从安全角度来看,任何代码都是攻击面的责任。始终尝试部署尽可能少的功能和代码。

扫码关注云+社区

领取腾讯云代金券