亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向服務(wù)體系結(jié)構(gòu)的分布式系統(tǒng)程序框架的設(shè)計與實(shí)現(xiàn)

        2016-05-19 14:11:24牛倩
        電腦知識與技術(shù) 2016年8期
        關(guān)鍵詞:分布式

        牛倩

        摘要:基于Scala語言設(shè)計并實(shí)現(xiàn)了一個框架。該框架適用于面向服務(wù)體系結(jié)構(gòu)的分布式系統(tǒng)快速搭建基于Scala和Java的服務(wù)。通過該框架搭建的服務(wù)程序,可以通過服務(wù)名訪問服務(wù)、自動記錄日志信息、通過瀏覽器查看服務(wù)的狀態(tài)和統(tǒng)計信息、自動負(fù)載均衡、自動加載配置文件。

        關(guān)鍵詞:面向服務(wù)體系結(jié)構(gòu);分布式;服務(wù)程序框架;Scala;Thrift;Zookeeper

        中圖分類號:TP39 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)08-0079-02

        1 概述

        面向服務(wù)的體系結(jié)構(gòu)(即SOA,Service-Oriented Architecture)是一類分布式系統(tǒng)的體系結(jié)構(gòu),是構(gòu)造分布式系統(tǒng)中應(yīng)用程序的方法[1]。SOA作為一個技術(shù)架構(gòu),決定了不依賴某個特定的技術(shù)和平臺環(huán)境來實(shí)現(xiàn)[2]。應(yīng)用系統(tǒng)SOA架構(gòu)建設(shè)的必要性體現(xiàn)在三個方面:1)解決應(yīng)用系統(tǒng)信息孤島問題;2)解決應(yīng)用系統(tǒng)緊耦合問題;3)解決應(yīng)用系統(tǒng)資源復(fù)用低問題[3]。本文將為面向服務(wù)體系結(jié)構(gòu)的分布式系統(tǒng)設(shè)計實(shí)現(xiàn)一個可以快速搭建服務(wù)的框架,從而把更多的經(jīng)歷集中在服務(wù)本身的功能上。使基于該框架的服務(wù)可以支持通過服務(wù)名訪問服務(wù)、跨程序語言的RPC、服務(wù)負(fù)載均衡、服務(wù)日志記錄、服務(wù)配置信息自動加載等功能。

        2 相關(guān)技術(shù)簡介

        2.1 Thrift

        Thrift是Facebook實(shí)現(xiàn)的一種高效的、支持多種編程語言的遠(yuǎn)程服務(wù)調(diào)用的框架[4]。它結(jié)合了功能強(qiáng)大的軟件堆棧和代碼生成引擎,通過定義一個簡單的定義文件中的數(shù)據(jù)類型和服務(wù)接口,以作為輸入文件,編譯器就可以生成代碼用來方便地生成RPC客戶端和服務(wù)器通信的無縫跨編程語言。

        2.2 Zookeeper

        ZooKeeper是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等[5]。

        2.3 Scala

        Scala是一種可伸縮式編程語言。它有以下幾個優(yōu)點(diǎn)[6]:1)與Java無縫兼容;2)支持類型推理;3)良好的并發(fā)性和分布式操作機(jī)制和性能;4)更靈活的更多樣的模式匹配機(jī)制;5)完全的面向?qū)ο蟪绦蛟O(shè)計語言,函數(shù)也是對象,可以在程序的任何地方使用函數(shù),甚至把函數(shù)傳遞到任何地方。已經(jīng)有很多公司在使用Scala語言來開發(fā)分布式系統(tǒng),包括Twitter、LinkedIn、Intel等等[7]

        2.4 Ostrich

        Ostrich是Twitter用于監(jiān)控服務(wù)器性能的一個Scala庫,主要功能是收集、展示統(tǒng)計信息,同時也提供了關(guān)閉服務(wù)器、重新加載配置、監(jiān)測服務(wù)器有效性等簡易控制功能,以及獲取線程、GC以及Profile等調(diào)試和性能信息[8]。通過這個框架可以很方便地觀測到系統(tǒng)內(nèi)各個服務(wù)的狀態(tài)及統(tǒng)計信息。

        3 需求分析

        本框架的主要目的是實(shí)現(xiàn)系統(tǒng)內(nèi)服務(wù)啟動關(guān)閉時的一系列任務(wù)管理。這樣,使用本框架,開發(fā)者就可以很便捷的搭建一個服務(wù)器,然后把主要經(jīng)歷放在服務(wù)本身的功能上。為了達(dá)到這一目的,我們的框架包括以下功能:

        1)自動加載Config文件;規(guī)定統(tǒng)一文件格式(Scala Class)

        2)利用Zookeeper的域名服務(wù)功能自動管理系統(tǒng)中的服務(wù)。通過服務(wù)的名字來訪問服務(wù)集群,而不是Host+IP的形式訪問單個服務(wù).

        3)通過指定Thrift文件來自動創(chuàng)建Thrift服務(wù)端;并創(chuàng)建基于B\S架構(gòu)管理服務(wù)用來記錄統(tǒng)計信息和服務(wù)的狀態(tài)。

        4)通過指定Thrift文件來自動創(chuàng)建Thrift客戶端。

        5)支持可選擇的服務(wù)端負(fù)載均衡策略;包括通過服務(wù)名字隨機(jī)訪問和通過服務(wù)名字訪問指定序號的服務(wù)。

        6)通過代理技術(shù),實(shí)現(xiàn)對接口的自動記錄日接口訪問信息的功能。并且可以配置記錄日志的詳細(xì)程度。

        7)通過代理技術(shù),實(shí)現(xiàn)對異常的統(tǒng)一處理,并且支持可配置的異常處理策略。

        8)支持自動調(diào)用以上功能的接口,使用戶可以只通過Thrift文件、Config文件即可簡單的通過一個方法就可以啟動服務(wù)。

        4 設(shè)計與實(shí)現(xiàn)

        本框架一共設(shè)計并實(shí)現(xiàn)了11個類。各類的名字功能及關(guān)系,見表1。

        由于篇幅有限,本文只列出EasyThriftServiceBuilder和EasyThriftClientBuilder中的類的參數(shù)表(見代碼1)和EasyThriftServiceBuilder.build函數(shù)的實(shí)現(xiàn)方法(代碼2)。

        代碼2是EasyThriftServiceBuilder中build函數(shù)的實(shí)現(xiàn)。Build函數(shù)主要做了下面的工作:1)設(shè)置Service的代理(addProxySupport);2)根據(jù)配置文件創(chuàng)建Thrift Service(TThreadPoolServer);3)創(chuàng)建EasyThriftService。EasyThriftService會自動注冊服務(wù)名、創(chuàng)建服務(wù)監(jiān)控程序、根據(jù)config文件設(shè)置負(fù)載均衡、根據(jù)config文件記錄log信息等功能。

        5 測試與驗(yàn)證

        首先我們定義了簡單的Thrift文件test.thrift和Config文件testConfig.scala。調(diào)用EasyThriftServiceBuilder.build函數(shù)創(chuàng)建服務(wù)端和調(diào)用EasyThriftClientBuilder.build函數(shù)創(chuàng)建客戶端。并測試了客戶端和服務(wù)端的基于服務(wù)名的訪問。一切正常,滿足需求規(guī)格說明。隨后將該框架應(yīng)用于基于Scala語言的面向服務(wù)的分布式的系統(tǒng)內(nèi)的服務(wù)上,運(yùn)行良好,達(dá)到預(yù)期目標(biāo)。

        6 結(jié)論

        本文描述了為面向服務(wù)的分布系統(tǒng)設(shè)計了一種服務(wù)框架,并基于Scala語言實(shí)現(xiàn)了支持跨語言的該服務(wù)框架。利用該框架,用戶可以便捷的創(chuàng)建基于服務(wù)名訪問的Thrift服務(wù)器和客戶端。并且通過瀏覽器觀測服務(wù)的狀態(tài)和統(tǒng)計信息。

        參考文獻(xiàn):

        [1] Papazoglou M P. Service-Oriented Computing: Concepts, Characteristics and Directions[J]. Web Information Systems Engineering. wise .proceedings of the Fourth International Confer, 2003.

        [2] 中國知網(wǎng). 面向服務(wù)的架構(gòu)[EB/OL]. http://epub.cnki.net/kns/brief/default_result.aspx.

        [3] 黃嘉東, 徐兵元, 葉向陽. 企業(yè)級應(yīng)用系統(tǒng)SOA架構(gòu)建設(shè)研究與實(shí)踐[J]. 中國高新技術(shù)企業(yè), 2016(2).

        [4] Apache. Apache Thrift-Home[EB/OL]. http://thrift.apache.org/.

        [5] Apache. Apache Zookeeper-Home[EB/OL]. http://zookeeper.apache.org/.

        [6] ?cole Polytechnique Fédérale de Lausanne(EPFL). The Scala Programming Language[EB/OL]. http://www.scala-lang.org/.

        [7] ?cole Polytechnique Fédérale de Lausanne(EPFL). WHAT IS SCALA?[ EB/OL]. http://www.scala-lang.org/what-is-scala.html.

        [8] Twitter. Ostrich [EB/OL]. https://github.com/twitter/ostrich.

        猜你喜歡
        分布式
        基于RTDS的分布式光伏并網(wǎng)建模研究
        湖南電力(2022年3期)2022-07-07 08:56:58
        光伏:從嚴(yán)控制發(fā)展規(guī)模 分布式限定10GW
        能源(2018年5期)2018-06-15 08:55:58
        分布式光伏發(fā)展的四大矛盾
        能源(2017年7期)2018-01-19 05:05:03
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        基于預(yù)處理MUSIC算法的分布式陣列DOA估計
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        基于點(diǎn)估計法的分布式電源的配置優(yōu)化
        一種用于微電網(wǎng)分布式發(fā)電的新型Buck-Boost逆變器
        基于DDS的分布式三維協(xié)同仿真研究
        西門子 分布式I/O Simatic ET 200AL
        久久人人玩人妻潮喷内射人人| 天天做天天爱夜夜爽女人爽| 18禁无遮拦无码国产在线播放| 大地资源中文在线观看官网第二页| a午夜国产一级黄片| 亚洲综合国产精品一区二区| 狠狠色噜噜狠狠狠狠97首创麻豆| 插b内射18免费视频| 色综合久久天天综线观看| 日韩精品一区二区三区四区视频| 亚洲国产av一区二区三区天堂 | 久久亚洲av无码西西人体| 色偷偷88888欧美精品久久久| 激情综合网缴情五月天| 亚洲精品中文字幕导航| 最新国产精品久久精品| 欧美日韩成人在线| 日本一区不卡高清在线观看| 成人一区二区人妻少妇| 少妇私密会所按摩到高潮呻吟| 尤物视频一区二区| 丝袜美腿亚洲综合玉足| 精品国产av一区二区三区四区| 国产卡一卡二卡三| 久久天堂av色综合| 国产精品后入内射日本在线观看 | 国产特级毛片aaaaaa| 亚洲中文字幕在线一区二区三区 | 末成年女a∨片一区二区| av中文字幕综合在线| 国产白浆流出一区二区| 精品无码国产一区二区三区麻豆 | 成人免费xxxxx在线视频| 成人免费毛片在线播放| 精品人伦一区二区三区蜜桃91| 超薄丝袜足j好爽在线观看| 日韩AV无码一区二区三不卡| 国产乱人伦偷精品视频还看的| 色综合av综合无码综合网站| 亚洲图区欧美| 亚洲国产av中文字幕|