[Auto Complete] 微服务写数据的问题

这里的redis cache也算是数据库,一般来说微服务之间不要直接写数据库。那么这个redis cache,被autocomplete builder进行写操作,而auto complete service 进行读操作。这样做是不是有点违反了微服务之间不要直接写数据库的原则?

但是我觉得如果通过rest api 经过auto complete service去写,那么这个会变得更奇怪。还不如像上面一样,直接写来的好。

这个问题老师是怎么看的呢?

问题提的很好。我觉得两种都可以。这个 autocomplete service 是直接面对用户的服务,而 autocomplete builder 是一个简单的内部的 Cron Job。因为它不接受 request,所以我觉得不算一个单独的 service。如果要让两个 team 来分别 own autocomplete service 和 builder 的话,那么 builder call autocomplete service update Redis 也可以。

这个说的对,如果一个team own整个pipeline就可以采用直接builder 写redis的方法

多个team的话就还是用rest api 比较好