微服务架构下的redis也按服务分库部署吗?
假如项目划分为N个微服务,S1,S2...Sn,都有分别调用redis(主要做缓存),在docker-swarm里部署时,是只部署一个redis,然后N个微服务分别按需要开X个副本,还是redis也按微服务划分部署N个呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
假如项目划分为N个微服务,S1,S2...Sn,都有分别调用redis(主要做缓存),在docker-swarm里部署时,是只部署一个redis,然后N个微服务分别按需要开X个副本,还是redis也按微服务划分部署N个呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
理论上来说这是运维层面的问题,作为开发不需要了解连的究竟是哪个 Redis。
因为实际上很肯定不同的微服务是不同的团队去开发的,这些团队分别跟运维申请一个 Redis 做存储,那运维究竟是给他们同一个 Redis 还是不同的 Redis,这些开发团队彼此之间应该是不了解的才对。
所以,为了避免两个服务操作的是同一台 Redis 的同一个 Database 产生 Key 冲突,要么依靠运维手工分配不同的 Database 序号,要么各个服务自己想办法约定一个不重复的 Key 前缀。如果个别服务对 Redis 依赖都很大,为了防止因单点故障导致多个服务都挂掉,也会给它们分配不同的 Redis。
总之,还是要具体问题具体分析。