zoukankan      html  css  js  c++  java
  • 微服务架构的一些基本理解(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,基于消息队列的异步微服务框架等等。

  • 相关阅读:
    Android反编译apk并重新打包签名(Mac环境)
    Android Studio修改apk打包生成名称
    Mac搭建SVN服务器+Cornerstone连接服务器
    Android Studio中使用Git进行代码管理(分支、合并)
    Android Studio之SVN打分支、切换分支及合并分支
    一次真实的线上OOM问题定位
    水平分库如何做到平滑扩展
    case when / if else-if 的大坑,要当心!!!
    项目启动时 xml报错:Could not find SQL statement to include with refid 'mbgl.panDuanZbsfkxg'
    只需要返回一条数据,并且必须返回一条数据的时候的写法
  • 原文地址:https://www.cnblogs.com/susy/p/14058790.html
Copyright © 2011-2022 走看看