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

        ?

        微服務(wù)框架在云筆記系統(tǒng)中的應(yīng)用

        2022-04-14 06:48:38賈峰
        現(xiàn)代計(jì)算機(jī) 2022年1期
        關(guān)鍵詞:調(diào)用筆記本筆記

        賈峰

        (廣東理工職業(yè)學(xué)院,廣州 510091)

        0 引言

        云筆記系統(tǒng)通過(guò)分布式存儲(chǔ)解決了筆記信息量膨脹的問(wèn)題,業(yè)務(wù)端同時(shí)提供了Windows客戶(hù)端,并且數(shù)據(jù)平臺(tái)支持移動(dòng)設(shè)備的接入,更加貼近學(xué)生的使用習(xí)慣,達(dá)到無(wú)處不學(xué)習(xí)、無(wú)處不筆記的效果。文獻(xiàn)[1]和[2]中涉及的云筆記系統(tǒng)基于單體架構(gòu),這樣的系統(tǒng)存在維護(hù)性差、可靠性低、并發(fā)能力有限等問(wèn)題;文獻(xiàn)[3]雖然在項(xiàng)目中使用分布式的架構(gòu),但沒(méi)有指出如何實(shí)現(xiàn)微服務(wù)的調(diào)用。

        傳統(tǒng)分布式云筆記系統(tǒng)中前端系統(tǒng)向后端發(fā)起http跨域請(qǐng)求訪問(wèn),當(dāng)并發(fā)量增加情況下作為中轉(zhuǎn)器的nginx負(fù)載過(guò)高,另外如果對(duì)服務(wù)器數(shù)量進(jìn)行增減,就要手動(dòng)更改ngnix的配置文件,這樣服務(wù)的發(fā)現(xiàn)不夠靈活。因此需選用相對(duì)于小巧、靈活的Dubbo技術(shù)作為項(xiàng)目開(kāi)發(fā)架構(gòu)。

        1 微服務(wù)架構(gòu)

        1.1 RPC思想

        RPC是遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call)的縮寫(xiě)形式。RPC可以簡(jiǎn)單理解為自己需要完成一項(xiàng)業(yè)務(wù),但是由于諸多原因自己不能直接調(diào)用,只能通過(guò)第三方訪問(wèn)的業(yè)務(wù)調(diào)用。

        1.2 Dubbo框架

        Dubbo是阿里SOA服務(wù)化治理方案的核心框架,作為分布式RPC框架,它提供阿里注冊(cè)中心機(jī)制,解耦了消費(fèi)方和服務(wù)方動(dòng)態(tài)發(fā)現(xiàn)的問(wèn)題,并提供高可靠能力,大量采用微內(nèi)核和富插件思想,并提供靈活可擴(kuò)展能力。

        1.3 服務(wù)的自動(dòng)注冊(cè)和發(fā)現(xiàn)

        項(xiàng)目中引入Dubbo框架后,在遠(yuǎn)程調(diào)用時(shí)能夠像本地調(diào)用一樣方便,讓調(diào)用者感知不到遠(yuǎn)程調(diào)用的邏輯。Dubbo內(nèi)部是如何實(shí)現(xiàn)的?如圖1所示:①當(dāng)生產(chǎn)者啟動(dòng)時(shí),會(huì)將服務(wù)信息(包括服務(wù)名稱(chēng)、服務(wù)IP和端口)配置到注冊(cè)中心。②注冊(cè)中心動(dòng)態(tài)維護(hù)服務(wù)列表,定時(shí)進(jìn)行刷新。③消費(fèi)訪問(wèn)注冊(cè)中心,獲取最新的服務(wù)列表數(shù)據(jù),之后緩存到本地以便下次調(diào)用。④當(dāng)用戶(hù)訪問(wèn)消費(fèi)者時(shí),消費(fèi)者查詢(xún)本地的服務(wù)列表進(jìn)行負(fù)載均衡,訪問(wèn)其中一個(gè)生產(chǎn)者獲取數(shù)據(jù)。⑤注冊(cè)中心通過(guò)心跳檢測(cè)機(jī)制訪問(wèn)生產(chǎn)者,當(dāng)生產(chǎn)者宕機(jī)時(shí)馬上更新服務(wù)列表并全網(wǎng)廣播,通知所有的消費(fèi)者更新列表數(shù)據(jù)。

        圖1 服務(wù)的注冊(cè)和發(fā)現(xiàn)

        2 云筆記系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2.1 系統(tǒng)架構(gòu)搭建

        云筆記系統(tǒng)整體設(shè)計(jì)分為3層架構(gòu),設(shè)計(jì)思想為:最底層是數(shù)據(jù)訪問(wèn)層,為服務(wù)支撐的基礎(chǔ)保障;中間層是業(yè)務(wù)層,里面對(duì)業(yè)務(wù)模塊進(jìn)行細(xì)化和拆分,將系統(tǒng)用戶(hù)所需的功能抽取成多個(gè)微服務(wù),微服務(wù)向下調(diào)用各服務(wù)提供API,向上對(duì)用戶(hù)訪問(wèn)層提供微服務(wù)接口;用戶(hù)訪問(wèn)層包括PC、手機(jī)等各種類(lèi)型終端調(diào)用微服務(wù)接口,實(shí)現(xiàn)相應(yīng)用戶(hù)功能,具體系統(tǒng)架構(gòu)如圖2所示。

        圖2 系統(tǒng)架構(gòu)

        本文重點(diǎn)說(shuō)明業(yè)務(wù)微服務(wù)層設(shè)計(jì),云筆記業(yè)務(wù)非常明確,將其拆分成3個(gè)子服務(wù),分別是用戶(hù)服務(wù)、筆記本服務(wù)、筆記服務(wù),每個(gè)子服務(wù)代表獨(dú)立的設(shè)計(jì)模塊,但技術(shù)架構(gòu)基本相同。初期可以先搭建3臺(tái)服務(wù)器Zookeeper服務(wù)器,形成了1個(gè)最輕量的負(fù)載集群,用來(lái)對(duì)服務(wù)模塊的提供方進(jìn)行注冊(cè)。由于系統(tǒng)采用Dubbo的服務(wù)治理框架,隨著數(shù)據(jù)量和訪問(wèn)量的上升,Dubbo可以使用權(quán)重算法分析負(fù)載,動(dòng)態(tài)調(diào)配系統(tǒng)資源,另外非常重要一點(diǎn)是對(duì)服務(wù)進(jìn)行管理和監(jiān)控,它可以保證系統(tǒng)長(zhǎng)時(shí)間的在各種復(fù)雜的情況下正常運(yùn)行。部署1臺(tái)RabbitMQ服務(wù)器,消息中間件需開(kāi)辟一大塊內(nèi)存空間,實(shí)現(xiàn)數(shù)據(jù)短暫存儲(chǔ)。部署1臺(tái)Mysql服務(wù)器和1臺(tái)Re?dis服務(wù)器,數(shù)據(jù)訪問(wèn)層數(shù)據(jù)庫(kù)實(shí)現(xiàn)主從讀寫(xiě)分離,引入緩存機(jī)制之后,主要的目的為了降低用戶(hù)訪問(wèn)物理設(shè)備的頻次,提高服務(wù)器響應(yīng)效率。

        2.2 系統(tǒng)數(shù)據(jù)庫(kù)表設(shè)計(jì)

        通過(guò)對(duì)系統(tǒng)中數(shù)據(jù)的總體分析,可以確定系統(tǒng)中主要實(shí)體、屬性和實(shí)體之間的關(guān)系,其中幾個(gè)主要的E-R圖如圖3所示。用戶(hù)和筆記本之間是一對(duì)多的關(guān)系,即一個(gè)用戶(hù)可以擁有多個(gè)筆記本,而一個(gè)筆記本只能屬于一個(gè)用戶(hù)。筆記本與筆記是一對(duì)多的關(guān)系,即筆記本中可以保存多條筆記,每條筆記卻只能存在一個(gè)筆記本中。

        圖3 E-R模型

        2.3 模塊功能實(shí)現(xiàn)

        用戶(hù)要獲取數(shù)據(jù)需向遠(yuǎn)程業(yè)務(wù)服務(wù)器發(fā)送請(qǐng)求,消費(fèi)者(控制層)通過(guò)定義的接口調(diào)用生產(chǎn)者(業(yè)務(wù)層),內(nèi)部利用Dubbo協(xié)議完成數(shù)據(jù)傳輸,如圖4所示。整個(gè)系統(tǒng)包括主項(xiàng)目dubbo-cloudnote以及3個(gè)子項(xiàng)目:①dubbocloudnote-interface,②dubbo-cloudnote-provider,③dubbo-cloudnote-consumer,其中②和③必須依賴(lài)于接口項(xiàng)目①。項(xiàng)目①中只定義pojo及業(yè)務(wù)層用戶(hù)、筆記本和筆記模塊中的接口。

        圖4 獲取遠(yuǎn)程數(shù)據(jù)

        項(xiàng)目②中需要定義數(shù)據(jù)訪問(wèn)層mapper接口及業(yè)務(wù)層各接口的實(shí)現(xiàn)類(lèi),內(nèi)部使用TCP-IP協(xié)議進(jìn)行調(diào)用。SpringBoot致力于快速方便地開(kāi)發(fā)單個(gè)微服務(wù),解決ssm大量手工配置的問(wèn)題,在SpringBoot中配置文件applcation.yml中添加信息如下:指定dubbo包路徑org.gdpi,掃描后代包,定義服務(wù)名稱(chēng)provider-note,服務(wù)名稱(chēng)和接口一一對(duì)應(yīng),連接Zookeeper服務(wù)注冊(cè)中心,提供1個(gè)主服務(wù)和2個(gè)備份服務(wù),主服務(wù)協(xié)議端口為2181,使用dubbo協(xié)議,定義服務(wù)的端口為20880,每個(gè)服務(wù)都有自己特定的端口不能重復(fù),如果定義多個(gè)provider-note則服務(wù)端口號(hào)不同。

        dubbo:

        scan:

        basePackages:com.gdpi

        application:

        name:provider-note

        registry:

        address:zookeeper://192.168.126.129:2181?

        backup=192.168.126.129:2182,192.168.126.129:2183

        protocol:

        name:dubbo

        port:20880

        舉例筆記服務(wù)生產(chǎn)者接口實(shí)現(xiàn):業(yè)務(wù)方法loadNotes功能是根據(jù)用戶(hù)ID查詢(xún)筆記信息,其中注解@Service(timeout=3000)規(guī)定服務(wù)器響應(yīng)時(shí)間3秒超時(shí),內(nèi)部實(shí)現(xiàn)RPC調(diào)用,@service引入的包則是com.alibaba.dubbo.config.annotation.Service。

        public class NoteServiceImpl implements NoteService{

        @Autowired

        private NoteMapper noteMapper;

        public ListloadNotes(String noteBookId){

        ......

        }

        }

        綜上所述,對(duì)老年護(hù)理事業(yè)大力發(fā)展,在對(duì)老年人進(jìn)行治療的同時(shí),為其提供了更多情感上、心靈上、生活上的幫助,對(duì)于構(gòu)建老有所依的和諧社會(huì)具有十分重要的意義。因此為盡快將健全的社區(qū)衛(wèi)生服務(wù)體系建立起來(lái),對(duì)衛(wèi)生資源進(jìn)行合理利用,需要醫(yī)療護(hù)理人員做出更多的努力。

        項(xiàng)目③只定義控制層controller,舉例筆記服務(wù)消費(fèi)者實(shí)現(xiàn):利用dubbo的方式為接口創(chuàng)建代理對(duì)象,內(nèi)部同樣實(shí)現(xiàn)RPC調(diào)用,遠(yuǎn)程RPC調(diào)用就像調(diào)用自己本地服務(wù)一樣簡(jiǎn)單。消費(fèi)者在服務(wù)器內(nèi)部完成了負(fù)載均衡,稱(chēng)之為客戶(hù)端負(fù)載均衡,關(guān)鍵字leastactive表示挑選當(dāng)前負(fù)載壓力小的生產(chǎn)者進(jìn)行訪問(wèn)。

        @RestController

        public class NoteController{

        @Reference(loadbalance="leastactive")

        private NoteService noteService;

        @RequestMapping("/loadnotes")

        public NoteResult findAll(String noteBookId){

        ......

        }

        }

        3 結(jié)語(yǔ)

        該架構(gòu)相比傳統(tǒng)分布式架構(gòu),解決了開(kāi)發(fā)者在分布式跨域請(qǐng)求過(guò)程的繁瑣的過(guò)程,運(yùn)行更加穩(wěn)定,實(shí)現(xiàn)“高內(nèi)聚低耦合”的核心理念。本系統(tǒng)的后期,考慮開(kāi)發(fā)更多的擴(kuò)展功能,利用分布式搜索引擎增加了用戶(hù)搜索,系統(tǒng)可以作為共享資源分享自己的筆記,并收藏其他人分享的筆記資源擴(kuò)充自己的知識(shí)行囊。

        猜你喜歡
        調(diào)用筆記本筆記
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        筆記本
        可愛(ài)的筆記本
        學(xué)寫(xiě)閱讀筆記
        學(xué)寫(xiě)閱讀筆記
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        我的自然筆記(一)
        聯(lián)想發(fā)布YOGA系列超薄酷睿i多模筆記本
        電子世界(2015年22期)2015-12-29 02:49:42
        愛(ài)的筆記本
        日韩精品中文字幕无码一区| 老师脱了内裤让我进去| 一本一道久久a久久精品综合| 国产欧美日韩综合在线一区二区| 夜夜揉揉日日人人| 国产美女在线一区二区三区| 国产视频嗯啊啊啊| 骚货人妻视频中文字幕| 国产免费一区二区在线视频| 国产特级毛片aaaaaa高潮流水| 女人被弄到高潮的免费视频| 天躁夜夜躁狼狠躁| 国产免费AV片在线看| 日本一区免费喷水| 国产一区二区三区在线爱咪咪| 日本av一级片免费看| 国产va免费精品观看精品| 亚洲熟女乱色综合亚洲图片| yeyecao亚洲性夜夜综合久久 | 亚洲av本道一本二本三区 | 亚洲欧美日韩另类精品一区 | 精品亚洲一区二区视频| 国产夫妻精品自拍视频| 国产欧美va欧美va香蕉在线| 国产乱码一区二区三区爽爽爽| 国产精品福利视频一区| 国内精品一区二区2021在线 | 精品国产乱来一区二区三区| 久草中文在线这里只有精品| 在线麻豆精东9制片厂av影现网| 中文字幕人妻少妇引诱隔壁| 欧美成人看片黄a免费看| 亚洲国产福利成人一区二区 | 啪啪免费网站| 亚洲无码图| 伊人狼人大香线蕉手机视频 | 国产精品国产三级国av在线观看| 成年女人永久免费看片| 久久精品中文字幕久久| 亚洲av中文字字幕乱码软件| 亚洲久悠悠色悠在线播放|