我正在创建一个微服务,负责处理zip和tar文件的归档和解压缩。
我知道微服务应该专注于一个业务功能(BF)。但是,当我想到业务功能时,我是指存档和取消归档(1个BF),归档和单独的归档(2个BF)还是压缩,去皮,解压缩,解压缩(4个BF)?
有没有理由更喜欢其中一种选择呢?
答案 0 :(得分:6)
微服务的质量总是一个问题,没有一般的好答案。即使有时最终与整体结合也是合理的。这真的取决于你想要实现的目标。
对于您的问题,微服务通常旨在对域的单个部分进行分组(例如计费,运送......)。在你的例子中,我会说微服务可以负责压缩,因此归档和解除存储都可以在这个单一的微服务中。
从我的观点来看,将微服务视为单一功能(例如解开)的方式太过细致。它带来更多" cons"而不是"专业人士" - 通常更多的网络流量。想象一下您的微服务通过HTTP(这些天非常常见的情况)相互通信的情况,并且您希望创建tar.gz存档。一个微服务将执行tar和另一个gzip,并且会有不必要的网络流量,这将耗费你的时间/带宽......
答案 1 :(得分:2)
我认为zip / unzip / etc不应被视为业务功能。这些是实现特定业务功能所需的独立技术功能。
对我而言,业务功能是“归档此数据”,其中可能包括压缩它,将其粘贴到某种归档存储系统中,并将其编入索引以供将来检索。