2017-07-24 197 views
1

我们有两个服务。但是,过去,这两项服务是一项服务,但由于不同的流量要求而被拆分。微服务共享代码

服务被两种客户端使用;其他服务和UI客户端(网页,桌面和手机)。

消费者服务1:服务,

  1. 使用裸露的端点(addInputremoveInput)的数量非常有限。
  2. 生成高流量。

消费者服务2:UI客户,

  1. 使用大量暴露的端点
  2. 产生更少的流量。

目前,他们正在共享代码,但据我所知,微服务不应共享基本代码。因此我们相信使用这种方法会出现问题。

为了解决这种微服务架构问题,需要了解哪些关键问题?

+0

如何共享代码?你是否在使用类似npm或maven的东西?或者你只是手动分享二进制文件? –

+0

目前,我们正在维护一个类似于域的库,以便访问(读写)共享数据库。这两个服务应该(或不)共享这个库 – Jordi

+0

这可能是一个重复的问题https://stackoverflow.com/questions/35465175/microservice-architecture-questions-about-code-resue-security-and-database- shar或https://stackoverflow.com/questions/25600580/sharing-code-and-schema-between-microservices –

回答

0

你是什么意思微服务不应该共享代码。你会故意去搜索2个不同的TCP栈吗?如果你用Java写了一个,你是否必须在Go中编写另一个?

服务可以共享代码,如果是第三方代码或第一方代码,则无关紧要。你不想做的,就像你在服务的其他方面做的那样,确保自治。自治是让你灵活变化的原因。就共享代码而言,自治意味着如果更新了共享组件,说处理授权的位不会自动需要更新其他服务中的那个位。

随着时间的推移和需求的变化 - 服务将会发展。随着需求的变化,他们可能会在他们使用的代码中出现分歧,也许您仍然可以重用位。请注意,重复使用和共享代码本身并不是目的,你会很好