一个war包打天下时,它可能身兼数职(同时提供多个服务如:订单服务,物流服务,产品服务等)。
当客户端的访问的量增多时,为了提高性能以及可用性,往往需要将服务进行拆分。
这样的话,一个war包可能就变成了多个(war(订单), war(物流), war(产品))。
但是多个服务(多个war包)之间又不是完全独立,而是有依赖关系。
如果说各个微服务在系统中只存在一个节点,订单服务依赖于产品服务,那么当产品服务挂掉之后,相当于订单服务也随之挂掉的。这在生产环境中是绝对不被允许的。
所以每个微服务都应该至少是2份。
这样的话,问题又来了。每个微服务都会有自己的ip以及端口号,难道要在代码中直接写上依赖的服务的ip和port来调用服务吗?这显然是不可进的!维护成本太高了(每次停启服务都要考虑代码中的配置)!
这时服务注册与发现的作用就得到了体现:
- 解耦服务之间的依赖关系(只需要在固定配置文件中配置就行了)
- 对服务的管理(将挂掉的服务去除,保留好的服务)
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。




