微服务架构的一个重要设计原则是“通过服务来实现独立自治的组件”,这里强调采用的是“服务service”而不是“类库library"来构建组件化的程序。
两者的区别是类库是在编译期静态链接到程序中的,通过调用本地方法来使用其中的功能,而服务是进程外组件,通过调用远程方法来使用其中的功能。
采用服务来构建程序这种形式,是软件系统“整体”与“部分”在物理层面的真正隔离。同时在微服务架构中,每个节点都互相扮演着服务的生产者与消费者的多重角色。
在这样的复杂调用关系中,必须考虑并解决三个问题。
1、对消费者来说, 外部的服务由谁提供,具体在什么网络位置。
2、对生产者来说,内部哪些服务需要暴露, 哪些应当隐藏,应当以何种形式暴露服务?以什么规则在集群中分配请求。
3、对调用过程来说,如何保证每个远程服务都接收到相对平均的流量,获得尽可能高的服务质量与可靠性?
这一系列的解决方案,在微服务架构中通常被称为“服务发现”,“服务的网关路由”和“服务的负载均衡”。
***********************************************************************
【如果文字看累了,可b站搜索“沙皮狗2021”,用听的方式领略知识的魅力】
传送门 :https://space.bilibili.com/407643589
***********************************************************************