我们有两项服务。但是,在过去,这两项服务是一项服务,但由于不同的流量要求而被拆分。
服务由两种客户消费;其他服务和UI客户端(网络,桌面和移动)。
服务1的消费者:服务,
addInput
,removeInput
)。服务2的消费者:UI客户端,
目前,他们正在共享代码,但据我所知,微服务不应该共享基本代码。因此,我们认为使用这种方法有问题。
为了解决这种微服务架构问题,需要了解哪些关键问题?
答案 0 :(得分:1)
你是什么意思?微服务不应该共享代码。你会故意去搜索2个不同的TCP堆栈吗?如果用Java编写一个,你必须在Go中编写另一个吗?
服务可以共享代码,如果是第三方代码或第一方代码则无关紧要。您不想做的事情,就像您在服务的其他方面所做的那样,是确保自主权。自主性使您可以灵活地进行变革。就共享代码而言,自治意味着如果您更新了共享组件,请说出处理授权的位,您不需要自动更新其他服务中的位。
随着时间的推移和需求的变化,服务也将随之发展。随着需求的变化,他们可能会在他们使用的代码中出现分歧,也许您仍然可以重用位。请注意,重用和共享代码本身并不是目的,你可以做得很好