购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.6 硬编码有哪些问题

至此,已经实现了一个用户微服务和电影微服务,并在电影微服务中使用RestTemplate调用用户微服务中的RESTfulAPI。一切都是那么的自然、简单、perfect!

那么真的完美吗?来分析一下电影微服务的代码,在MovieController.java中:

img

由代码可知,我们是把提供者的网络地址(IP和端口等)硬编码在代码中的,当然,也可将其提取到配置文件中去。例如:

img

代码改为:

img

在传统的应用程序中,一般都是这么做的。然而,这种方式有很多问题,如下所示。

●适用场景有局限:如果服务提供者的网络地址(IP和端口)发生了变化,会影响服务消费者。例如,用户微服务的网络地址发生变化,就需要修改电影微服务的配置,并重新发布。这显然是不可取的。

●无法动态伸缩:在生产环境中,每个微服务一般都会部署多个实例,从而实现容灾和负载均衡。在微服务架构的系统中,还需要系统具备自动伸缩的能力,例如动态增减节点等。硬编码无法适应这种需求。

那么要如何解决这些问题呢?请大家继续阅读下去。 XNntV4mwUqsVpZf2sbdmGhbsPJm37G8byqgtytt6v/JE8HBaULEU36Pb20LD0RWM

点击中间区域
呼出菜单
上一章
目录
下一章
×