• 微服务架构的一些基本理解(Week10)


    微服务架构到底是什么样的?从不同的背景、不同的角度出发,就会有不同的理解。本文作者从做桌面程序开发,然后直接跳到基于云的开发,对于基于PaSS(微软的Service Fabric)和Kubernetes的微服务开发有一些经验。然后作者在架构师训练营课程中又跟着老师走了一遍,怎么从大型单体架构的网站、大型分布式系统开发背景下演化到微服务架构。这个两个角度相互补充,可以更完善对微服务架构的一些认知。

    Dubbo

    先上一个微服务框架实例。Dubbo是阿里开源的,基于java的高性能RPC微服务框架。Dubbo主要有三部分构成,服务注册中心,服务消费者和服务提供者,如下图所示。

    服务提供者在服务注册中心注册其提供的API,服务消费者在本地调用服务API,这时候有本地的接口代理通过服务框架客户端来获取远端的服务者,然后通过通讯模块获取服务。在这个过程中消费者不关心API调用是本地还是远端,这个过程都有Dubbo框架给封装了。下图是反应该过程的一个时序图。

     

    从桌面系统开发到微服务开发,跳级让人迷失 

    当年进入微服务领域时,上来就学单体架构有什么弊端,微服务是什么,怎么设计微服务等等。微服务的好处也能说的上来一些,但其实并没有什么切身体会。大的桌面系统也有编译慢、维护升级复杂等问题,但当时的觉悟就是,只要把一个大系统分成几个小的系统就行了,至于微服务框架提供的那些功能,也不知为啥提供。

    开发自己的微服务系统时,用的是K8S。按照标准的程序,给每个微服务提供Deployment和Service,通过Service Name调用其他微服务的接口;通过Ingress(或者再配置一个API网关)把集群内的一些服务接口暴露给外面的用户。觉得者就是理所当然的这么做,至于为什么要这样,也是一知半解。

    从Web、分布式系统到Web Service、微服务,有演进历程更容易理解

    但从Web、分布式系统、Web Service,再到微服务,就明白了为什么K8S提供Service/Ingress,也知道了微服务框架的基本架构要素。从服务注册与发现这个基本要素出发,微服务架构也出现了像有RPC架构发展而来的ZeroC IceGrid,Java平台上的Spring Cloud,基于消息队列的异步微服务框架等等。

  • 相关阅读:
    URAL 2046 A
    URAL 2056 Scholarship 水题
    Codeforces Gym 100286I iSharp 水题
    Codeforces Gym H. Hell on the Markets 贪心
    Codeforces Gym 100286G Giant Screen 水题
    Codeforces Gym 100286B Blind Walk DFS
    Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
    Codeforces Gym 100286A. Aerodynamics 计算几何 求二维凸包面积
    Codeforces Gym 100418K Cards 暴力打表
    Codeforces Gym 100418J Lucky tickets 数位DP
  • 原文地址:https://www.cnblogs.com/susy/p/14058790.html
Copyright © 2020-2023  润新知