• Google App Engine 架构分析


    根据google 公开的资料,猜测Google App Engine架构设计,下面简要学习记录App Engine 接受请求原理及流程。高手路过!若你有更详细的资料或其他的想法请分享。

    App Engine 基本架构比较简洁。如下图所示:

     

    进一步简化一下,可以抽象为

     

    即包括:web、Datastore和服务群

    1、web

     web部分主要用于处理请求主要有如下模块:

    (1)、前端,即可以认为负载均衡(load balancer),也可以认为它是代理(proxy),主要负责负载均衡和将具体的web请求转发给应用服务器。对于一些静态文件(比如:图片、CSS和JS脚本等)的请求,前端会将这种请求转给对应的类似于CDN(Content Delivery Network,内容分发网络)的静态文件服务器。

    (2)、应用服务器。用于装载应用的代码,处理接收到的web请求,并根据请求的内容调用后面的Datastore和服务群。

    (3)、 管理节点。在应用服务器间应用,并将调度之后的情况通知前端。

     2、DataStore

    它是基于BigTable技术分布式数据库,虽然它也可以被理解成一个服务,但是由于它是整个App Engine对数据进行持久化的地方,所以它是App Engine中一个非常核心的模块。

    3、服务群

     整个服务群包括很多服务供App Server上运行的应用调用,比如Memcache、图形、用户、URL抓取和任务队列。

    web请求处理流程

    (1)用户发送一个HTTP请求。

    (2)前端接受这个请求,并将这个请求转发给一个空闲的应用服务器。

    (3)应用服务器会处理这个请求。

    (4)检查用于处理这个请求的类是不是已经被初始化了。如果没有的话,需要初始化这个类。

    (5)调用服务群中的用户认证服务来对用户进行认证,如果失败的话,需要终止整个请求的处理工作,并返回无法认证用户的信息。

    (6)查看这个请求所需的数据是否已经缓存在Memcache中,如果没有,将对Datastore发出查询请求来得到数据。

    (7)通过整合第(6)步得到的数据来生成相关HTML,并返回给用户。

    (8)由于HTML里包含对一些静态文件的引用,比如图片和CSS等,所以当用户收到HTML之后,还会通过前端读取静态文件服务器里面储存的静态文件。

    流程图如下:


    梦想还是要的,万一实现了呢!
  • 相关阅读:
    css资料汇总
    typescript 点滴
    vue-cli3点滴
    item2的使用方法推介
    rfc文档
    websocket
    g2
    常用的正则积累
    Vue-20190623点滴
    写一个webpackLoader
  • 原文地址:https://www.cnblogs.com/cgli/p/2545374.html
Copyright © 2020-2023  润新知