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

        ?

        微服務技術構建大規(guī)模web系統(tǒng)的研究

        2017-08-24 14:18:29張峰
        科技創(chuàng)新與應用 2017年22期
        關鍵詞:微服務

        張峰

        摘 要:微服務是近兩年流行起來的最優(yōu)秀的web系統(tǒng)架構。文章由分析架構演變到引出微服務架構的內容、優(yōu)點和架構設計的最佳實踐等,得出微服務未來必然有很好的發(fā)展結論。

        關鍵詞:微服務;軟件架構;敏捷;Spring Cloud

        中圖分類號:TP311 文獻標志碼:A 文章編號:2095-2945(2017)22-0048-02

        1 概述

        隨著互聯(lián)網越來越深入人們生活,web系統(tǒng)在人們生活中有著舉足輕重的地位。web技術正以前所未有的速度發(fā)生著巨大變革,服務端技術微服務架構+虛擬化已經興起。本文從web系統(tǒng)架構演變入手,討論興起的微服務技術和相關的架構及開源項目。討論適合小團隊的微服務開發(fā)架構體系,分析微服務技術應用系統(tǒng)的趨勢。

        2 web系統(tǒng)架構演變

        web系統(tǒng)最早出現(xiàn)在1980萬維網的發(fā)明者蒂姆·伯納斯-李(Tim Berners-Lee)設計的ENQUIRE項目上。從此web技術經歷了幾次改變。從網絡結構和軟件架構上看,web系統(tǒng)架構粗略經歷了以下階段:

        第一階段單機構建模式。最早的軟件開發(fā)基本上是C/S即客戶端服務器模式。單機構建模式即一臺服務器承擔所有訪問請求和數(shù)據計算任務。這通常受單臺服務器計算能力和IO瓶頸的制約。但這個階段已經形成了應用系統(tǒng)和數(shù)據庫系統(tǒng)兩部分的工作模式,這個模式通常在小規(guī)模企業(yè)及單店規(guī)模適用。

        第二階段應用與數(shù)據庫服務器分離。以Oracle數(shù)據庫為代表的DBMS系統(tǒng)規(guī)模越來越大,消耗系統(tǒng)資源越來越多。于是應用系統(tǒng)和數(shù)據庫系統(tǒng)分離為各自部署到獨立的服務器中。兩臺硬件服務器之間的網絡連接要可靠、快速、容錯。這個階段還增加了頁面緩存、頁面片段緩存、數(shù)據內存緩存等在應用服務器和數(shù)據庫之間。

        第三階段應用服務器集群。隨著web系統(tǒng)訪問量逐步增高,應用服務器計算資源逐步耗盡,只有增加應用系統(tǒng)的服務器才能解決。隨著獨立計算資源的擴展,他們之間的協(xié)調帶來了好多問題。Oracle從10g通過CRS開始支持集群。解決了的用戶訪問壓力,但需要做的就是硬件的投入。

        第四階段微服務架構與虛擬化?,F(xiàn)在以亞馬遜為代表的大量的微服務架構應用系統(tǒng)開始呈現(xiàn)高速的發(fā)展趨勢。服務化架構的演進也經歷了幾個階段:MVC、RPC、SOA,現(xiàn)在到了微服務。近年來微服務成為大規(guī)模、高服務質量web系統(tǒng)解決方案之一。

        3 微服務基礎理論和基礎架構選型

        微服務一詞來源于一篇著名的博文Microservices,作者是Martin Fowler。是一種軟件設計風格,每個服務都獨立存儲數(shù)據、獨立按業(yè)務功能模塊開發(fā)、測試及部署,系統(tǒng)間通過通信協(xié)議關聯(lián)起來組成完整的應用系統(tǒng)。通常服務之間的通信協(xié)議采用RESTful API,也是高并發(fā)大型應用系統(tǒng)的必然發(fā)展結果。拆分單體所面臨的問題增加很多,為解決這些問題在微服務理論框架下引申出非常多的概念,下面以不同角度認識微服務架構體系。

        首先,微服務的九大特性[1]。Martion Fowler在Microservices一文中提煉出,這是了解微服務的最重要內容。

        服務組件化:微服務的對立面就是單體結構,將單體拆分后組件化。

        按業(yè)務組織團隊:微服務化后每一個或一個可用域可以是一個團隊開發(fā)。

        做“產品”的態(tài)度:軟件工程項目需要反復調優(yōu)不斷優(yōu)化以適應業(yè)務彈性的環(huán)境。

        智能端點與啞管道(Smart endpoints and dumb pipes):單體的內部模塊調用常用的是函數(shù)調用和RPC方式,而微服務是更粗粒度的通信協(xié)議建立關系。

        去中心化治理:微服務采用分散的管理方式,每個微服務團隊內部有充分自由自組織技術棧。

        去中心化管理數(shù)據:數(shù)據庫可以分散到各個微服務中去,同時被透明化不可以被訪問。所以徹底的微服務化所有的信息傳遞只有微服務接口一個通道。

        基礎設施自動化:當服務數(shù)量快速增加軟件開發(fā)要保持快速迭代必須要做到自動化,另外近兩年DevOps在大陸也逐漸獲得廣泛認可,這是微服務化重要保證。

        容錯設計:服務間調用允許出錯,在此方面必須表現(xiàn)出彈性。

        演進式設計:沒有完美的程序,在軟件的生命周期中把這當成必然并支持不斷演進式設計開發(fā),不斷完善而非一次完成。

        其次,微服務架構技術選型。當前比較流行的微服務架構技術體系有三種:Dubbo;Spring Cloud:Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具[2](例如配置管理,服務發(fā)現(xiàn),斷路器,智能路由,微代理,控制總線);Netflix的Karyon/Ribbon。幾年前Netflix就把它的幾乎整個微服務框架棧開源,Spring將其吸收進Spring cloud中。所以基本上是兩種阿里的Dubbo和Spring Cloud。建議采用Spring cloud,這是目前比較受認可的微服務架構技術主流。

        第三,Spring cloud開發(fā)基礎構件介紹。Spring boot:是Pivotal團隊開發(fā)的能夠簡化便利地使用Spring創(chuàng)建和開發(fā)應用的框架[3],它是Spring cloud的基礎。Spring MVC、H5、Bootstrap:這些是web展現(xiàn)層和控制層框架,雖然同類技術很多但這些逐漸占據主流。JPA、Spring data:這是推薦使用的數(shù)據持久層框架,在持久層使用Spring data技術實現(xiàn)JPA,引擎通常使用Hibernate。Docker、K8S:Docker是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux機器上。通常一個Docker包含一個服務。k8s是Google的Kubernetes,在Docker技術的基礎上,為容器化的應用提供部署運行、資源調度、服務發(fā)現(xiàn)和動態(tài)伸縮等一系列完整功能。微服務正是由于容器技術的突破才迅速發(fā)展起來。Mysql、Redis:Mysql是開源數(shù)據庫,但其在互聯(lián)網的表現(xiàn)非常優(yōu)秀,因為其小巧靈活常被部署到Docker中。Redis是一個key-value存儲系統(tǒng),和Memcached類似。

        第四,微服務應用六大關鍵技術。完整的微服務架構包含很多的功能點,如果選出最為關鍵的幾項而且忽略掉常見的一般單體系統(tǒng)也具有的關鍵技術,應該是以下六點:服務注冊和發(fā)現(xiàn)、負載均衡、斷路保護、微服務網關、分布式/版本化配置、消息驅動和總線。在微服務架構體系中還有很多關鍵技術和相應的實現(xiàn)組件,數(shù)量之多常常讓人覺得難以學習,微服務化的道路不簡單。

        4 大型網站的微服務架構設計

        首先,微服務化設計方式:需要對業(yè)務進行拆分,要做好微服務的分層,要分布式的部署和調用。其次功能完整性和職責單一性。第三是迭代演進不要想著一次成功。最后是接口API的版本優(yōu)先考慮兼容性。

        其次,業(yè)務模型設計。微服務業(yè)務開發(fā)三個難題-拆分、事務、查詢,其中業(yè)務拆分受架構本身和人的因素兩方面影響。在業(yè)務模塊拆分上可以采用以下方式??傮w上分表現(xiàn)層、業(yè)務服務層、公共服務層、服務監(jiān)控與治理層、實體和接口層和資源層。發(fā)布上可以采用多種協(xié)議,建議是RESTful API的形式。資源層是數(shù)據庫、Redis、File system、cache等。

        第三,技術模型設計和物理結構。在spring cloud 的解決方案中主要組件部署關系是瀏覽器訪問API網關,通過客戶端負載均衡到達服務組件,服務組件在此之前就向治理中心和配置中心關聯(lián)好,Kibana是一個為 Logstash和ElasticSearch提供的日志分析的 Web接口??墒褂盟鼘θ罩具M行高效的搜索、可視化、分析等各種操作。物理上所有的服務都可以部署到Docker上,而Docker由K8S來管理。整個開發(fā)部署環(huán)節(jié)按DveOps執(zhí)行。這樣形成了物理的服務器變成一種計算資源可以按需求由K8S隨意調配,而Docker 可以利用registry搭建本地私有倉庫,實現(xiàn)了Docker部署的靈活性和安全性。同時使用Jenkins+Maven+Git搭建持續(xù)集成和自動化部署的環(huán)境。

        5 微服務架構下的團隊協(xié)作

        微服務帶來的便捷的同時我們也經常聽到一句話“微服務不是免費的午餐”,同時敏捷開發(fā)也常見到項目失敗的案例。如何提高團隊應對微服務挑戰(zhàn)的成熟度,對于一個計劃實施微服務的團隊提出一些建議。

        梳理最后一公里和運維的需求。包括基礎環(huán)境的準備、部署發(fā)布、運營監(jiān)控?;A環(huán)境的準備要求能快速響應需求到新功能自動更新,推薦基礎設施及代碼的實踐,考慮構建團隊DevOps能力,以實現(xiàn)小步快跑的持續(xù)迭代能力。為服務架構最大的挑戰(zhàn)是微服務數(shù)量龐大,能夠快速部署上線對團隊的能力提出很高的要求,建議分離生產環(huán)境、預發(fā)布環(huán)境和測試環(huán)境。流水線部署,自動化腳本實現(xiàn)快速部署、配置管理、版本管理等,并相應改進微服務化后的獎勵機制都是微服務架構下團隊協(xié)作的重要保障。

        6 微服務架構應用發(fā)展的展望

        微服務架構目前在國外被很多大互聯(lián)網公司采用[4],如

        Google、Twitter, Netflix, Amazon, eBay等。國內采用微服務架構的有淘寶、京東、微博、微信等。微服務會有很大的發(fā)展,但同時也要看到微服務架構的一些缺點。如,微服務架構可能帶來過多的操作;DevOps是必須的;可能需要付出更多努力;分布式系統(tǒng)可能復雜難以管理;因為分布部署跟蹤問題難;當服務數(shù)量增加,管理復雜性增加。雖然有這些缺點,當前微服務架構仍是大型網站架構體系發(fā)展的趨勢,這些問題也會隨著社區(qū)和大公司的努力逐。

        參考文獻:

        [1]ChrisRichardson,“Microservices Architecture”[EB/OL].http://microservices.io/patterns/microservices.html

        [2]張晶,王琰潔,黃小鋒.一種微服務框架的實現(xiàn)[J].計算機系統(tǒng)應用,2017(04):82-86.

        [3]蔣勇.基于微服務架構的基礎設施設計[J].軟件,2016(05):93-97.

        [4]鄧杰文,曹彩鳳.微服務若干關鍵問題研究[J].五邑大學學報(自然科學版),2016(02):49-54.

        猜你喜歡
        微服務
        基于供給側改革理論的圖書館社交網絡微服務研究
        微信公眾平臺在醫(yī)院圖書館的應用現(xiàn)狀調查
        基于微信企業(yè)號的校園移動服務
        微服務視角下高職圖書館數(shù)字資源使用分析
        中文信息(2016年10期)2016-12-12 10:09:57
        從單一模式系統(tǒng)架構往微服務架構遷移轉化技術研究
        科教導刊(2016年27期)2016-11-15 21:22:13
        基于微信公眾平臺的高校圖書館微服務現(xiàn)狀及對策
        精品国产乱码久久久软件下载| 一区二区视频在线国产| 国产欧美精品aaaaaa片| 777亚洲精品乱码久久久久久| 国内精品久久久影院| 亚洲女同同性少妇熟女| 精品乱色一区二区中文字幕| 特黄熟妇丰满人妻无码| 夫妇交换刺激做爰视频| 久久久午夜毛片免费| 国产丝袜美腿一区二区三区| 国产精品高清一区二区三区不卡 | 亚洲日本一区二区一本一道| 一本色道久久综合亚洲精品小说| 久久色悠悠亚洲综合网| 亚洲精品国产av成人精品| 成年免费视频黄网站zxgk| 人妻无码aⅴ中文系列久久免费| 熟女人妻一区二区中文字幕| 老熟女的中文字幕欲望| 又粗又硬又黄又爽的免费视频| 国产精品每日更新在线观看 | 高清毛茸茸的中国少妇| 久久这里只精品国产免费10| 日日噜噜噜夜夜爽爽狠狠视频| 国产一区二区三区最新地址| 99精品人妻无码专区在线视频区 | 青青青爽在线视频免费播放| 朝鲜女人大白屁股ass孕交| 午夜家庭影院| 日本高清长片一区二区| 亚洲欧美中文日韩在线v日本| 亚洲av永久无码精品国产精品| 国产黑色丝袜在线观看视频| 人妻少妇被粗大爽视频| 亚洲欧美乱综合图片区小说区| 国产香蕉尹人在线视频播放| 白白色福利视频在线观看| 亚洲αv在线精品糸列| 日韩成人无码一区二区三区| 激情亚洲综合熟女婷婷|