• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    深度剖析CloudFoundry的架構設計(5)

    發布時間:  2012/7/22 16:08:00

    第三方如果需要自己開發CloudFoundry的服務,需要繼承改寫它里面的兩個基礎類:Node和Gateway;而里面一些操作,如:Provision,可以在base的provisioner.rb基礎上加入自己的邏輯,同樣的還有Service_Error和Service_Message等。關于如何寫自己的Service,ELC的博客會推出相應文章詳細論述,并不在本文的討論范圍里面,從架構了解上來說,只要知道服務間的關系,知道個服務與base間透過繼承關系來橫向擴充,而CloudFoundry與apps調用Service是通過base來完成這一簡單的架構方法即可。

    6、NATS(Message bus): 從CloudFoundry的總架構圖看,位于各模塊中心位置的是一個叫nats的組件。NATS是由CloudFoundry的架構師Derek開發的一個輕量級的,支持發布、訂閱機制的消息系統。Github開源地址是:https://github.com/derekcollison/nats。其核心基于EventMachine開發,代碼量不多,可以下載下來慢慢研究。

    CloudFoundry是一個多模塊的分布式系統,支持模塊自發現,錯誤自檢,且模塊間低耦合。其核心原理就是基于消息發布訂閱機制。每個臺服務器上的每個模塊會根據自己的消息類別,向MessageBus發布多個消息主題;而同時也向自己需要交互的模塊,按照需要的信息內容的消息主題訂閱消息。譬如:一個DEA被加入CloudFoundry集群中,它需要向大家吼一下,以表明它已經準備好服務了,它會發布一個主題是”dea.start”的消息:

    @ hello_message_json中包括DEA的UUID,ip, port, 版本信息等內容。

    再例如,CloudController需要啟動一個Droplet的instance:

    a)首先一個DEA在啟動的時候,會首先會對自己UUID的消息主題進行訂閱。

     

    其他模塊需要通過’’dea.#{uuid}.start”這個主題發送消息來使它啟動,一旦這個DEA接收到消息,就會觸發process_dea_start(msg)這個方法來處理啟動所需要的工作。

    b)Cloud Controller或者其他模塊發送消息,讓UUID為xxx的DEA啟動。

    c)DEA模塊接收到消息后,就會觸發process_dea_start(msg)方法。msg是由其他模塊發送過來的消息內容,包括:droplet_id,instance_index, service, runtime等內容,process_dea_start會取得這些啟動DEA必須的信息,然后進行一系列操作,例如從NFS中取得Droplet,解壓,修改必要環境配置,運行啟動腳本等等。等一切都準備好后,然后需要給Router發個消息,告訴它這個Droplet已經隨時準備好報效國家,以后有相應的request記得讓它來處理。

     

     

    d)Router模塊在啟動時就已經訂閱”router.register”消息主題。

     

     

    收到前面DEA發出的信息后,會觸發register_droplet方法,去綁定Droplet。到此啟動一個Droplet的instance工作完成。億恩科技石頭 負責服務器租用和托管業務
    聯系人:石頭
    QQ:億恩石頭673606008
    電話:0371-63322217
    手機:18237160419
    地址:鄭州市黃河路姚寨路天一大廈B座608室


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線