这里的redis cache也算是数据库,一般来说微服务之间不要直接写数据库。那么这个redis cache,被autocomplete builder进行写操作,而auto complete service 进行读操作。这样做是不是有点违反了微服务之间不要直接写数据库的原则?
但是我觉得如果通过rest api 经过auto complete service去写,那么这个会变得更奇怪。还不如像上面一样,直接写来的好。
这个问题老师是怎么看的呢?
这里的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 比较好