• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于微服務(wù)架構(gòu)的預(yù)約攝影平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

    2020-12-28 11:53李步官潘志宏張東源林勁文蔡杰遠(yuǎn)李赟
    電腦知識(shí)與技術(shù) 2020年31期
    關(guān)鍵詞:微服務(wù)攝影

    李步官 潘志宏 張東源 林勁文 蔡杰遠(yuǎn) 李赟

    摘要:隨著項(xiàng)目的功能需求的增加,傳統(tǒng)的單體應(yīng)用已經(jīng)變得臃腫,難以繼續(xù)進(jìn)行開發(fā)維護(hù),因此提出基于微服務(wù)架構(gòu)的系統(tǒng)架構(gòu)方法對(duì)單體應(yīng)用進(jìn)行改造。確定微服務(wù)架構(gòu)之后,選用了Spring Cloud技術(shù)體系,并將系統(tǒng)拆分為多個(gè)微服務(wù)模塊。在微服務(wù)的開發(fā)過程中,由于服務(wù)數(shù)量多,難以手動(dòng)集成和手動(dòng)部署每一個(gè)服務(wù),因此結(jié)合DevOps,采用了阿里云云效平臺(tái)的流水線功能實(shí)現(xiàn)持續(xù)集成、持續(xù)部署,同時(shí)將服務(wù)部署到Kubernetes和Docker中,實(shí)現(xiàn)了軟件產(chǎn)品的持續(xù)交付,使得開發(fā)效率得到了極大的提升。

    關(guān)鍵詞:微服務(wù);Spring Cloud;DevOps;Docker;預(yù)約;攝影

    中圖分類號(hào):TP312 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

    文章編號(hào):1009-3044(2020)31-0026-05

    Abstract: With the increasing functional requirements of the project, the traditional single application has become bloated and difficult to continue development and maintenance. Therefore, a system architecture method based on micro-service architecture is proposed to improve the single application. After determining the micro-service architecture, the Spring Cloud is selected and divided into several micro-service modules. During the development of micro-services, it is difficult to manually integrate and deploy each service because of the large number of services. Therefore, combined with DevOps, using the pipeline function of Ali Yunxiao Platform to achieve continuous integration and deployment. At the sametime, deploying services to Kubernetes and Docker to achieve continuous delivery of software products, which greatly improves development efficiency.

    Key words: microservice; spring cloud; DevOps; docker; reservation; photography

    1 背景

    預(yù)約攝影平臺(tái)的后端系統(tǒng)主要功能包括用戶模塊、約拍模塊、作品模塊和打卡點(diǎn)推薦模塊。前期規(guī)劃時(shí)系統(tǒng)采用Java語言開發(fā),選用單體架構(gòu)(如圖1)進(jìn)行模塊化設(shè)計(jì)。由于整個(gè)系統(tǒng)構(gòu)建在單體架構(gòu)下, 單體應(yīng)用的架構(gòu)已無法滿足業(yè)務(wù)的發(fā)展。在現(xiàn)有單體架構(gòu)應(yīng)用程序,如果代碼有細(xì)微的改動(dòng),都要手工重新編譯代碼、打jar包、上傳到服務(wù)器、重新部署應(yīng)用,所謂的牽一發(fā)而動(dòng)全身,這樣煩瑣的手工操作流程,使得整個(gè)系統(tǒng)部署上線,持續(xù)交付的耗時(shí)長,影響范圍大、風(fēng)險(xiǎn)高、風(fēng)險(xiǎn)高,系統(tǒng)的開發(fā)效率低[1]。

    鑒于以上所述的單體架構(gòu)應(yīng)用的缺點(diǎn),提出了新的架構(gòu)方案——微服務(wù)架構(gòu),來替換之前的單體架構(gòu)應(yīng)用。Spring Cloud微服務(wù)架構(gòu)是目前應(yīng)用最廣的技術(shù),為此選擇Spring Cloud微服務(wù)架構(gòu)的方案對(duì)系統(tǒng)進(jìn)行改造,相比之前的單體架構(gòu)的應(yīng)用,新方案確實(shí)降低了開發(fā)難度,提升了開發(fā)效率,證實(shí)了該方案的可行性。

    2 基于微服務(wù)的架構(gòu)方案

    微服務(wù)是系統(tǒng)架構(gòu)上的一種設(shè)計(jì)風(fēng)格,將一個(gè)原本獨(dú)立的單體架構(gòu)應(yīng)用系統(tǒng)拆解為多個(gè)小型服務(wù),即微服務(wù),每個(gè)微服務(wù)都在各自獨(dú)立的進(jìn)程中運(yùn)行,服務(wù)之間通過基于HTTP的RESTful API進(jìn)行通信協(xié)作[2]。被拆分成的每一個(gè)服務(wù)都圍繞著系統(tǒng)中的某一項(xiàng)或某一些耦合度較高的業(yè)務(wù)功能進(jìn)行構(gòu)建,并且每個(gè)服務(wù)都維護(hù)著自身的數(shù)據(jù)存儲(chǔ)、業(yè)務(wù)開發(fā)、自動(dòng)化測(cè)試案例以及獨(dú)立部署機(jī)制[3]。微服務(wù)架構(gòu)模式有非常明顯的優(yōu)勢(shì),特別是在實(shí)施敏捷開發(fā)和復(fù)雜的企業(yè)應(yīng)用交付方面[4]。

    結(jié)合預(yù)約攝影平臺(tái)后端系統(tǒng)的業(yè)務(wù)情況,將單體應(yīng)用拆分為微服務(wù)后,每個(gè)服務(wù)中的類遵守單一職責(zé)原則[5],將相同職責(zé)的類放到一起,不同職責(zé)的類分解到不同的接口和實(shí)現(xiàn)類中去。一個(gè)類的職責(zé)減少,代碼少了,代碼的復(fù)雜度就降低了,隨之代碼可讀性也會(huì)提高,可維護(hù)性也會(huì)提高。根據(jù)現(xiàn)有后端系統(tǒng)的單體架構(gòu),將其改造為微服務(wù)架構(gòu)的總體架構(gòu)圖2所示,服務(wù)拆分為用戶服務(wù)、約拍服務(wù)、訂單服務(wù)、作品服務(wù)、打卡點(diǎn)服務(wù)、圖片服務(wù)、輪播圖服務(wù)、搜索服務(wù)等。

    3 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    3.1 架構(gòu)搭建

    3.1.1 基本的開發(fā)環(huán)境軟件版本

    3.1.2 搭建統(tǒng)一的項(xiàng)目依賴

    為了方便管理各個(gè)服務(wù)的依賴,需要建立一個(gè)統(tǒng)一的項(xiàng)目依賴。將該項(xiàng)目依賴作為所有工程的父依賴,在pom.xml文件中指定properties屬性,即可統(tǒng)一管理所有項(xiàng)目的依賴版本。

    3.1.3 搭建分布式配置中心

    分布式配置中心采用Spring Cloud Config,該微服務(wù)組件是為分布式系統(tǒng)中的基礎(chǔ)設(shè)施和微服務(wù)應(yīng)用提供集中化的外部配置支持,由客戶端和服務(wù)端兩部分組成。其服務(wù)端是一個(gè)獨(dú)立的微服務(wù)應(yīng)用,用來連接配置倉庫,并為客戶端提供獲取配置信息,加密/解密信息的訪問接口。其客戶端則是各個(gè)微服務(wù)應(yīng)用,每個(gè)微服務(wù)應(yīng)用在配置文件中指定配置中心服務(wù)端的地址,在應(yīng)用啟動(dòng)的時(shí)候會(huì)自動(dòng)地去指定的配置中心服務(wù)端地址中加載相應(yīng)的配置信息。分布式配置中心搭建步驟如下:

    1)服務(wù)端的配置

    添加Spring Cloud Config項(xiàng)目依賴,新建ConfigApplication啟動(dòng)類,并在該類中添加@EnableConfigServer注解,表示啟用配置服務(wù)器,將該應(yīng)用作為配置中心服務(wù)器。在代碼托管平臺(tái)中創(chuàng)建一個(gè)倉庫,用來存放各個(gè)微服務(wù)應(yīng)用的配置文件。yml配置信息如下:

    spring:

    cloud:

    config:

    label: master

    server:

    git:

    uri: https://gitee.com/username/repo.git

    search-paths: repo

    username:

    password:

    2)客戶端的配置

    以服務(wù)注冊(cè)中心panda-eureka為例,在pom.xml中添加spring-cloud-starter-config依賴,并且在yml配置文件中添加如下配置信息:

    spring:

    cloud:

    config:

    uri: http://localhost:8888

    3.1.4 搭建服務(wù)注冊(cè)與發(fā)現(xiàn)中心

    服務(wù)注冊(cè)中心(service registry)是服務(wù)發(fā)現(xiàn)的一個(gè)關(guān)鍵部分。它是一個(gè)包含了服務(wù)實(shí)例網(wǎng)絡(luò)位置的數(shù)據(jù)庫。服務(wù)注冊(cè)中心必須是高可用和最新的。雖然客戶端可以緩存從服務(wù)注冊(cè)中心獲得的網(wǎng)絡(luò)位置,但該信息最終會(huì)過期,客戶端將無法發(fā)現(xiàn)服務(wù)實(shí)例。因此,服務(wù)注冊(cè)中心由使用了復(fù)制協(xié)議(replication protocol)來維護(hù)一致性的服務(wù)器集群組成[4]。

    Netflix Eureka 是一個(gè)很好的服務(wù)注冊(cè)中心微服務(wù)組件。它提供了一個(gè)用于注冊(cè)和查詢服務(wù)實(shí)例的 REST API。服務(wù)實(shí)例使用 POST 請(qǐng)求注冊(cè)其網(wǎng)絡(luò)位置。它必須每隔30秒使用PUT請(qǐng)求來刷新其注冊(cè)信息。通過使用 HTTP DELETE 請(qǐng)求或?qū)嵗?cè)超時(shí)來移除注冊(cè)信息??蛻舳丝梢允褂肏TTP GET 請(qǐng)求來檢索已注冊(cè)的服務(wù)實(shí)例。Eureka也有服務(wù)端和客戶端組成,服務(wù)端主要處理服務(wù)注冊(cè),客戶端處理服務(wù)的注冊(cè)與發(fā)現(xiàn)。搭建步驟如下:

    1)Eureka服務(wù)端

    在Eureka項(xiàng)目中添加spring-cloud-starter-netflix-eureka-server依賴,yml配置文件信息如下:

    spring:

    cloud:

    config:

    uri: http://localhost:8888

    label: master

    name: panda-eureka

    profile: dev

    2)客戶端的配置:

    以用戶服務(wù)panda-service-provider-user為例,在項(xiàng)目的pom.xml文件中添加spring-cloud-netflix-eureka-client依賴,yml文件配置如下:

    spring:

    cloud:

    config:

    uri: http://localhost:8888

    label: master

    name: panda-service-provider-user

    3)Eureka工作效果

    3.1.5 搭建API網(wǎng)關(guān)

    API網(wǎng)關(guān)是一個(gè)智能的應(yīng)用服務(wù)器,所有的外部客戶端訪問都需要經(jīng)過它來進(jìn)行調(diào)度和過濾。在該項(xiàng)目的預(yù)約拍照系統(tǒng)中,采用Spring Cloud Zuul作為API網(wǎng)關(guān),并將Spring Cloud Zuul與Spring Cloud EurekaI進(jìn)行整合,將Zuul注冊(cè)為Eureka服務(wù)治理下的應(yīng)用,同時(shí)從Eureka中獲得了所有其他微服務(wù)的實(shí)例信息,將維護(hù)實(shí)例的工作交給了服務(wù)治理框架自動(dòng)完成,不需要人工介入。

    1)構(gòu)建網(wǎng)關(guān)

    新建Zuul的Spring Boot項(xiàng)目,添加相關(guān)依賴,在啟動(dòng)類上添加@EnableZuulProxy開啟API網(wǎng)關(guān)服務(wù)功能。

    2)配置請(qǐng)求路由

    路由功能與Eureka結(jié)合使用,在Eureka的服務(wù)注冊(cè)與發(fā)現(xiàn)體系中,每個(gè)服務(wù)既是服務(wù)提供者,也是服務(wù)消費(fèi)者,所以作為消費(fèi)者的微服務(wù)應(yīng)用也可以作為服務(wù)提供者向路由網(wǎng)關(guān)提供服務(wù)。

    下面以用戶服務(wù)提供者為例,為panda-service-provider-user配置路由。

    zuul:

    routes:

    v1-provider-user:

    path: /api/v1/user/**

    上面的配置中,在zuul的routes節(jié)點(diǎn)下配置了一個(gè)路徑為/api/v1/user/的路由來映射用戶服務(wù)提供者的接口地址。路由搭建好后,通過訪問API網(wǎng)關(guān)配置的路由地址可訪問到用戶服務(wù)提供者的接口地址。可以看到,上面這種簡(jiǎn)單的path加serviceId的映射組合,稱之為面向服務(wù)的路由配置,因?yàn)閆uul與Eureka結(jié)合使用,Zuul只需要指定serviceId,路由轉(zhuǎn)發(fā)時(shí)可以從Eureka中獲取到服務(wù)實(shí)例的地址(ip和端口),這種配置方式使得API網(wǎng)關(guān)服務(wù)可以自動(dòng)化完成服務(wù)實(shí)例清單的維護(hù),完美地解決了對(duì)路由映射實(shí)例的維護(hù)問題。

    3.1.6 搭建鏈路追蹤系統(tǒng)

    隨著預(yù)約拍照系統(tǒng)的開發(fā),微服務(wù)應(yīng)用越來越多,系統(tǒng)規(guī)模越來越大,各微服務(wù)間的調(diào)用關(guān)系變得錯(cuò)綜復(fù)雜,幾乎每一個(gè)前端請(qǐng)求都會(huì)形成一條復(fù)雜調(diào)用的鏈路。為解決以上問題,采用ZipKin作為服務(wù)鏈路追蹤系統(tǒng)。

    1)搭建ZipKin Server

    搭建Spring Boot項(xiàng)目,添加相關(guān)依賴zipkin,zipkin-server,zipkin-autoconfigure-ui。在啟動(dòng)類上添加@EnableZipkinServer注解。然后在yml配置文件中添加如下配置即可。

    spring:

    application:

    name: panda-zipkin

    main:

    allow-bean-definition-overriding: true

    server:

    port: 9411

    2)在微服務(wù)中添加ZipKin客戶端配置

    以用戶服務(wù)提供者為例,在pom.xml文件中添加spring-cloud-starter-zipkin依賴,在yml配置文件中添加ZipKin Server的url配置。

    spring:

    zipkin:

    base-url: http://localhost:9411

    3.2 核心業(yè)務(wù)模塊

    預(yù)約攝影服務(wù)是整個(gè)系統(tǒng)的核心業(yè)務(wù),為模特和攝影師提供預(yù)約的服務(wù),核心業(yè)務(wù)代碼如下。

    3.2.1 發(fā)布預(yù)約

    public int addAppointment(TAppointment appointment){

    //傳遞到Dao層,并保存數(shù)據(jù)到數(shù)據(jù)庫

    int i = appointmentMapper.addAppointment(appointment);

    if (i != 0){

    appointmentRepository.save(appointment);

    }

    return i;

    }

    上面的代碼比較簡(jiǎn)單,該代碼位于Service層,作用是將從Controller層傳過來的數(shù)據(jù)傳到Dao層,并將數(shù)據(jù)保存到數(shù)據(jù)庫。

    3.2.2 預(yù)約下單

    public int addOrder(TOrder order) {

    int i = orderMapper.addOrder(order);

    //成功將訂單插入數(shù)據(jù)庫,將消息發(fā)送到MQ

    if (i != 0) {

    int id = order.getId();

    TOrder.MyOrder myOrder = orderMapper.getOrderAndUserAndAppointmentById(id);

    //獲取約拍時(shí)間

    String startDatetime = myOrder.getStartDatetime();

    //約拍時(shí)間不為空的情況下執(zhí)行

    if (!StringUtils.isEmpty(startDatetime)) {

    int hour = 2;

    //提前發(fā)送郵件提醒

    Long stringDateToTimestamp = DateUtils.getStringDateToTimestamp(startDatetime);

    Long remindDateTimestamp = (stringDateToTimestamp - 1000 * 60 * 60 * hour) / 1000L;

    String remindDate = DateUtils.getTimestampToStringDate(remindDateTimestamp);

    //短信通知

    SMSNoticeJobDTO smsNoticeJobDTO = new SMSNoticeJobDTO(

    myOrder.getUsername(),

    myOrder.getTitle(),

    "" + hour,

    remindDate,

    myOrder.getPhone());

    String smsJsonString = JSONObject.toJSONString(smsNoticeJobDTO);

    mqService.sendMessage("exchange.direct", "panda.sms", smsJsonString);

    //郵件通知

    String emailText = "親愛的" + myOrder.getUsername()

    + ",您預(yù)約的標(biāo)題為【" + myOrder.getTitle()

    + "】" + ",還有" + hour

    + "個(gè)小時(shí)就要開始啦,請(qǐng)做好準(zhǔn)備。祝您生活愉快?。躰【熊貓約拍】";

    EmailJobDTO emailJobDTO = new EmailJobDTO(

    "job_" + myOrder.getOrderNo(),

    remindDate,

    myOrder.getEmail(),

    "約拍時(shí)間提醒",

    emailText);

    String emailJsonString = JSONObject.toJSONString(emailJobDTO);

    mqService.sendMessage("exchange.direct", "panda.email", emailJsonString);

    }

    }

    return i;

    }

    這段代碼是用戶添加預(yù)約攝影的代碼,該代碼的邏輯是如果成功將訂單插入數(shù)據(jù)庫,將消息發(fā)送到消息隊(duì)列MQ,由MQ處理發(fā)送郵件和短信提醒的異步任務(wù)。

    3.3 前端的實(shí)現(xiàn)

    前端分為網(wǎng)站和移動(dòng)客戶端,網(wǎng)站選用了目前最火的前端框架Vue.js。Vue.js是一套用于構(gòu)建用戶界面的漸進(jìn)式框架。與其它大型框架不同的是,Vue 被設(shè)計(jì)為可以自底向上逐層應(yīng)用。Vue 的核心庫只關(guān)注視圖層,不僅易于上手,還便于與第三方庫或既有項(xiàng)目整合[6]。在移動(dòng)端上,選用了uni-app。uni-app 是一個(gè)使用 Vue.js開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,可發(fā)布到iOS、Android、H5、以及各種小程序[7]。使用這兩個(gè)框架,可以快速的搭建出網(wǎng)站應(yīng)用和移動(dòng)客戶端應(yīng)用。

    3.3.1 網(wǎng)站前端的實(shí)現(xiàn)

    addOrder(pubUid, acptUid, aptId, image = '') {

    if (this.isLogin){

    let param = {

    pubUid: pubUid,

    acptUid: acptUid,

    aptId: aptId,

    image: image

    };

    request({

    url: ORDER_ADD,

    method: 'post',

    data: this.qsParam(param),

    }).then(res => {

    if (res.data.code === 1) {

    this.$message.success("預(yù)約成功");

    this.addedOrder = true;

    }

    }).catch(err => {

    this.$message.error("預(yù)約失敗, 請(qǐng)稍候重試");

    })

    }else {

    this.$message.warning("請(qǐng)先登錄");

    }

    }

    這段代碼是前端處理添加預(yù)約攝影的邏輯代碼。通過發(fā)送網(wǎng)絡(luò)請(qǐng)求向后端發(fā)送數(shù)據(jù)。

    網(wǎng)站UI的設(shè)計(jì)方面,采用餓了么公司開源的UI框架Element-UI,它提供大量常用的UI組件,結(jié)合上述三個(gè)框架,完成網(wǎng)站前端的設(shè)計(jì),網(wǎng)站主頁效果圖如圖4所示。

    3.3.2 移動(dòng)客戶端的實(shí)現(xiàn)

    移動(dòng)客戶端采用uni-app,移動(dòng)端跨平臺(tái)的框架。相比Vue.js框架,uni-app在vue.js的基礎(chǔ)之上,將常用的功能和組件進(jìn)行了封裝,如網(wǎng)絡(luò)請(qǐng)求、UI組件等,方便開發(fā)者快速進(jìn)行開發(fā)。移動(dòng)客戶端的效果圖如圖5所示,以u(píng)ni-app打包的Andriod APP為例。

    4 結(jié)合DevOps實(shí)現(xiàn)持續(xù)集成、持續(xù)部署

    DevOps是一套實(shí)踐方法,在保證高質(zhì)量的前提下縮短系統(tǒng)變更從提交到部署至生產(chǎn)環(huán)境的時(shí)間。DevOps的重點(diǎn)是通過發(fā)展創(chuàng)建一個(gè)穩(wěn)定、快速的開發(fā)工作流和IT運(yùn)維。DevOps一方面可以縮短系統(tǒng)的部署時(shí)間,另一方面可以減少系統(tǒng)的缺陷,大大提高系統(tǒng)的質(zhì)量[8]。

    4.1 DevOps平臺(tái)的選擇

    在IT技術(shù)快速發(fā)展的今天,已經(jīng)涌現(xiàn)出了大批的DevOps平臺(tái),前有老牌的持續(xù)集成開源項(xiàng)目軟件Jenkins,后有國內(nèi)一流的互聯(lián)網(wǎng)公司推出的DevOps平臺(tái),如阿里云的云效,騰訊的藍(lán)鯨智云,百度的效率云等等。預(yù)約拍照系統(tǒng)選擇了阿里云云效平臺(tái),由于服務(wù)器是在阿里云平臺(tái)購買的云服務(wù)器ECS,結(jié)合阿里云云效平臺(tái),可將項(xiàng)目快速地通過云效平臺(tái)部署。

    4.2 阿里云云效平臺(tái)的使用

    4.2.1 創(chuàng)建項(xiàng)目和應(yīng)用

    創(chuàng)建項(xiàng)目,項(xiàng)目為必創(chuàng)建項(xiàng),方便管理項(xiàng)目下的每個(gè)應(yīng)用。每一個(gè)微服務(wù)都要?jiǎng)?chuàng)建一個(gè)對(duì)應(yīng)的應(yīng)用。

    4.2.2 創(chuàng)建鏡像倉庫

    在阿里云鏡像服務(wù)中為應(yīng)用創(chuàng)建一個(gè)專門的鏡像倉庫,用來存放流水線完成的制品。

    4.2.3 創(chuàng)建并配置流水線

    進(jìn)入相應(yīng)的應(yīng)用,并創(chuàng)建流水線,填寫代碼倉庫、分支、開啟webhook,并將地址添加到代碼倉庫,配置環(huán)境,填寫部署腳本和執(zhí)行用戶,保存配置即可。

    4.2.4 運(yùn)行流水線

    因?yàn)閯?chuàng)建流水線時(shí)配置了webhook,所以只要提交代碼到倉庫,即可觸發(fā)webhook,使流水線自動(dòng)運(yùn)行,實(shí)現(xiàn)持續(xù)集成、持續(xù)部署。流水線運(yùn)行圖如圖6所示。

    5 結(jié)束語

    隨著互聯(lián)網(wǎng)的技術(shù)的發(fā)展,近年來微服務(wù)在應(yīng)用開發(fā)和部署方面取得了顯著的進(jìn)步。相比采用傳統(tǒng)單體應(yīng)用架構(gòu)的系統(tǒng),預(yù)約拍照系統(tǒng)后端服務(wù)結(jié)合微服務(wù)架構(gòu)、DevOps文化、持續(xù)集成與持續(xù)部署(CI/CD)和容器引擎技術(shù),將服務(wù)部署到云端,極大地提高了系統(tǒng)的開發(fā)效率和維護(hù)效率。解決了單體應(yīng)用架構(gòu)代碼臃腫、開發(fā)效率低、軟件交付時(shí)間長等問題。

    微服務(wù)架構(gòu)在軟件開發(fā)上主要有兩種應(yīng)用模式,其中一種是從需求分析出發(fā),從無到有地開發(fā)一個(gè)新的微服務(wù)應(yīng)用程序;另一種應(yīng)用是將已有系統(tǒng)(通常是單體應(yīng)用程序)重構(gòu)到微服務(wù)架構(gòu)[9]。目前業(yè)務(wù)還未劃分完整,下一階段就是需要結(jié)合業(yè)務(wù)場(chǎng)景和服務(wù)器資源進(jìn)行細(xì)度的劃分預(yù)約拍照系統(tǒng)的后端服務(wù),在有限的服務(wù)器資源下合理地劃分服務(wù),最大化地利用服務(wù)器資源完成業(yè)務(wù)功能,使得系統(tǒng)能夠更加高效穩(wěn)定地運(yùn)行。

    參考文獻(xiàn):

    [1] 劉從軍,劉毅.基于微服務(wù)的維修資金管理系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2019,28(4):52-60.

    [2] FOWLER M.Microservice[EB/OL].(2014-04-25)[2020-04-18].http://martinfowler.com/articles/microservices.html.

    [3] 翟永超.Spring Cloud微服務(wù)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2017.

    [4] Richardson C,Smith F.微服務(wù):從設(shè)計(jì)到部署[EB/OL].Oopsguy,譯. [2020-04-18].https://github.com/DocsHome/microservices .

    [5] 高松,牛治永.敏捷設(shè)計(jì)原則與設(shè)計(jì)模式的編程實(shí)踐——單一職責(zé)原則與依賴倒置原則[J].計(jì)算機(jī)應(yīng)用,2011,31(S2):149-152.

    [6] 高棟,王殿勝,張思琪,等.DevOps平臺(tái)建設(shè)分析[J].中國科技信息,2019(24):39-40.

    [7] vue.js中文官網(wǎng)[EB/OL].[2020-04-18]. https://cn.vuejs.org/.

    [8] uni-app官網(wǎng)[EB/OL].[2020-04-18].https://uniapp.dcloud.io/.

    [9] 吳化堯,鄧文俊.面向微服務(wù)軟件開發(fā)方法研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2020,57(3):525-541.

    【通聯(lián)編輯:謝媛媛】

    猜你喜歡
    微服務(wù)攝影
    微信公眾平臺(tái)在醫(yī)院圖書館的應(yīng)用現(xiàn)狀調(diào)查
    從單一模式系統(tǒng)架構(gòu)往微服務(wù)架構(gòu)遷移轉(zhuǎn)化技術(shù)研究
    攝影42℃展版
    国产午夜精品久久久久久| 婷婷丁香在线五月| 一级毛片精品| 亚洲一区二区三区色噜噜| 丁香欧美五月| 久久人妻福利社区极品人妻图片| 日韩一卡2卡3卡4卡2021年| 国产人伦9x9x在线观看| 又黄又爽又免费观看的视频| 日韩欧美一区视频在线观看| 日韩av在线大香蕉| 日韩一卡2卡3卡4卡2021年| 精品国产乱子伦一区二区三区| 少妇熟女aⅴ在线视频| 亚洲欧美激情在线| 黄色女人牲交| 午夜福利在线观看吧| 熟女少妇亚洲综合色aaa.| 丝袜美足系列| 老司机在亚洲福利影院| 国产精品综合久久久久久久免费 | 亚洲五月色婷婷综合| 一边摸一边抽搐一进一出视频| 丝袜美足系列| 好看av亚洲va欧美ⅴa在| 午夜两性在线视频| 久久久国产欧美日韩av| 黑人巨大精品欧美一区二区蜜桃| 搡老岳熟女国产| 十八禁网站免费在线| 电影成人av| 制服诱惑二区| 给我免费播放毛片高清在线观看| 大型av网站在线播放| 久久人妻熟女aⅴ| 电影成人av| 亚洲精品久久国产高清桃花| 欧美成狂野欧美在线观看| 制服丝袜大香蕉在线| 久久人妻福利社区极品人妻图片| 一个人免费在线观看的高清视频| 99国产精品免费福利视频| 亚洲第一青青草原| 极品教师在线免费播放| 男女之事视频高清在线观看| 一夜夜www| 久久久久久久精品吃奶| 久久午夜亚洲精品久久| 午夜福利成人在线免费观看| 久久国产精品影院| 亚洲va日本ⅴa欧美va伊人久久| 9热在线视频观看99| 巨乳人妻的诱惑在线观看| 黄频高清免费视频| 最新在线观看一区二区三区| 欧美日本视频| 成人三级黄色视频| 51午夜福利影视在线观看| 亚洲一区高清亚洲精品| 国产伦一二天堂av在线观看| 国产高清激情床上av| 满18在线观看网站| 人妻久久中文字幕网| www日本在线高清视频| 欧美av亚洲av综合av国产av| 国内毛片毛片毛片毛片毛片| 狂野欧美激情性xxxx| 老司机深夜福利视频在线观看| 午夜免费成人在线视频| 成人亚洲精品一区在线观看| 可以免费在线观看a视频的电影网站| 欧美乱码精品一区二区三区| 亚洲国产精品sss在线观看| 久久中文字幕人妻熟女| 久久久国产成人精品二区| 日日爽夜夜爽网站| 老司机靠b影院| 一二三四社区在线视频社区8| 国产色视频综合| 最近最新中文字幕大全电影3 | 国产精品一区二区在线不卡| 丝袜在线中文字幕| 女生性感内裤真人,穿戴方法视频| 久9热在线精品视频| 我的亚洲天堂| 一进一出抽搐gif免费好疼| 日韩三级视频一区二区三区| 成人国语在线视频| 亚洲va日本ⅴa欧美va伊人久久| av在线播放免费不卡| av网站免费在线观看视频| 女人被狂操c到高潮| 99久久99久久久精品蜜桃| 国产av在哪里看| 国内毛片毛片毛片毛片毛片| 亚洲精品国产色婷婷电影| 亚洲成人免费电影在线观看| 美女高潮到喷水免费观看| 欧美日韩福利视频一区二区| 欧美乱色亚洲激情| 男女做爰动态图高潮gif福利片 | 在线观看66精品国产| 午夜a级毛片| 免费看十八禁软件| 高潮久久久久久久久久久不卡| 久久久久久人人人人人| 国产精品九九99| 99香蕉大伊视频| 日韩大尺度精品在线看网址 | 久久久久国产一级毛片高清牌| 欧美激情久久久久久爽电影 | 男男h啪啪无遮挡| 精品人妻1区二区| 日本免费a在线| 亚洲avbb在线观看| 欧美成人午夜精品| 国产午夜精品久久久久久| 日本vs欧美在线观看视频| 色婷婷久久久亚洲欧美| 婷婷六月久久综合丁香| 中文字幕另类日韩欧美亚洲嫩草| 制服人妻中文乱码| 亚洲一区二区三区色噜噜| 色综合站精品国产| 97超级碰碰碰精品色视频在线观看| 国产亚洲精品av在线| 一级a爱片免费观看的视频| 老鸭窝网址在线观看| 国内久久婷婷六月综合欲色啪| 日韩中文字幕欧美一区二区| 国产成人精品在线电影| 人妻久久中文字幕网| 国产亚洲精品久久久久久毛片| 男女床上黄色一级片免费看| 日韩有码中文字幕| 中文字幕精品免费在线观看视频| 亚洲视频免费观看视频| 女警被强在线播放| 久久精品亚洲熟妇少妇任你| av天堂在线播放| 精品国产乱码久久久久久男人| 精品久久蜜臀av无| 久久香蕉精品热| 美女高潮到喷水免费观看| 首页视频小说图片口味搜索| 97人妻天天添夜夜摸| 男女床上黄色一级片免费看| 99久久综合精品五月天人人| 一边摸一边抽搐一进一出视频| 日韩欧美三级三区| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美精品啪啪一区二区三区| 久久久久久国产a免费观看| aaaaa片日本免费| 国产精品乱码一区二三区的特点 | 一级毛片高清免费大全| 午夜福利欧美成人| 久久九九热精品免费| 人人澡人人妻人| 午夜福利高清视频| 搡老妇女老女人老熟妇| 日韩欧美国产在线观看| 韩国精品一区二区三区| 久久久久久久精品吃奶| 久久青草综合色| 久久人人精品亚洲av| 国产精品久久久久久人妻精品电影| 欧美国产日韩亚洲一区| 亚洲中文字幕一区二区三区有码在线看 | 欧美日韩瑟瑟在线播放| 18禁国产床啪视频网站| 99精品久久久久人妻精品| 一级毛片女人18水好多| 此物有八面人人有两片| 日本 欧美在线| 国产精品电影一区二区三区| 欧美av亚洲av综合av国产av| 在线观看免费午夜福利视频| 老熟妇乱子伦视频在线观看| 成人免费观看视频高清| 中出人妻视频一区二区| 国产一区二区三区视频了| 极品教师在线免费播放| 国产aⅴ精品一区二区三区波| 午夜精品国产一区二区电影| 国产精品久久久久久人妻精品电影| 高潮久久久久久久久久久不卡| 久久欧美精品欧美久久欧美| 成在线人永久免费视频| 操出白浆在线播放| 又黄又爽又免费观看的视频| 亚洲狠狠婷婷综合久久图片| 国产av一区在线观看免费| 午夜两性在线视频| 免费看美女性在线毛片视频| 日日夜夜操网爽| 丝袜在线中文字幕| 女性生殖器流出的白浆| 俄罗斯特黄特色一大片| 国产又爽黄色视频| 一区二区三区国产精品乱码| 悠悠久久av| 久久久久久国产a免费观看| 精品熟女少妇八av免费久了| 日日摸夜夜添夜夜添小说| 91字幕亚洲| 婷婷六月久久综合丁香| 欧美日韩亚洲综合一区二区三区_| 免费在线观看亚洲国产| 9色porny在线观看| 中文亚洲av片在线观看爽| 久久亚洲精品不卡| 男女下面插进去视频免费观看| 欧美日韩一级在线毛片| 久久人妻av系列| 在线观看66精品国产| 中文字幕人妻丝袜一区二区| 18禁黄网站禁片午夜丰满| 我的亚洲天堂| 嫩草影视91久久| 极品教师在线免费播放| 国产麻豆69| 成人18禁高潮啪啪吃奶动态图| 国产熟女xx| 日本黄色视频三级网站网址| 嫩草影视91久久| 国产精品久久久人人做人人爽| 91av网站免费观看| 热99re8久久精品国产| 又黄又粗又硬又大视频| 亚洲精品在线美女| 一a级毛片在线观看| 狠狠狠狠99中文字幕| 一区在线观看完整版| 免费一级毛片在线播放高清视频 | 99久久99久久久精品蜜桃| 黑人巨大精品欧美一区二区蜜桃| 亚洲av成人av| 国产97色在线日韩免费| 色老头精品视频在线观看| 宅男免费午夜| 亚洲精品国产一区二区精华液| 一进一出抽搐gif免费好疼| 一级片免费观看大全| 男男h啪啪无遮挡| 在线免费观看的www视频| 老司机午夜福利在线观看视频| 国产成人欧美| 一区二区三区精品91| 欧美性长视频在线观看| 国产一区二区三区综合在线观看| xxx96com| 久久天堂一区二区三区四区| 久久久国产成人精品二区| 女人被躁到高潮嗷嗷叫费观| 一本久久中文字幕| 国产精品国产高清国产av| 久久久久久久午夜电影| 国产人伦9x9x在线观看| 99re在线观看精品视频| av片东京热男人的天堂| 久久久久久人人人人人| 桃红色精品国产亚洲av| 国产乱人伦免费视频| 国产成人精品在线电影| 精品一区二区三区av网在线观看| 在线永久观看黄色视频| 女人精品久久久久毛片| 亚洲专区中文字幕在线| 黄片大片在线免费观看| 激情在线观看视频在线高清| 国产精品av久久久久免费| 久久久久久久久免费视频了| 丰满的人妻完整版| 成熟少妇高潮喷水视频| 日本五十路高清| 欧美乱妇无乱码| 美女国产高潮福利片在线看| 淫秽高清视频在线观看| 啦啦啦韩国在线观看视频| 日韩欧美一区二区三区在线观看| 久久精品国产99精品国产亚洲性色 | 国产精品香港三级国产av潘金莲| 18禁黄网站禁片午夜丰满| 亚洲电影在线观看av| av网站免费在线观看视频| 欧美乱色亚洲激情| 一个人免费在线观看的高清视频| 精品久久久久久久人妻蜜臀av | 成人亚洲精品av一区二区| 午夜精品国产一区二区电影| av福利片在线| 丝袜在线中文字幕| 国产精华一区二区三区| 黑人巨大精品欧美一区二区mp4| 国产高清有码在线观看视频 | 久久久国产成人免费| 亚洲欧美日韩另类电影网站| 麻豆av在线久日| 又黄又爽又免费观看的视频| 国产高清有码在线观看视频 | 国产成人欧美在线观看| 自线自在国产av| 日韩高清综合在线| 国产精品98久久久久久宅男小说| 母亲3免费完整高清在线观看| 欧美乱色亚洲激情| 一个人免费在线观看的高清视频| 午夜日韩欧美国产| 亚洲精品粉嫩美女一区| 91大片在线观看| 久久精品国产亚洲av香蕉五月| 成人国语在线视频| 国产男靠女视频免费网站| 真人一进一出gif抽搐免费| 在线观看免费视频日本深夜| 免费搜索国产男女视频| 日韩精品中文字幕看吧| 国产精品精品国产色婷婷| 国产成人av激情在线播放| 午夜福利欧美成人| 成人国语在线视频| 亚洲成人精品中文字幕电影| 久久久国产成人精品二区| 午夜免费成人在线视频| 亚洲人成伊人成综合网2020| 午夜免费成人在线视频| 免费在线观看亚洲国产| 日韩欧美国产一区二区入口| 美女 人体艺术 gogo| 日本免费一区二区三区高清不卡 | 亚洲国产精品sss在线观看| 看黄色毛片网站| 日本精品一区二区三区蜜桃| 看免费av毛片| АⅤ资源中文在线天堂| 国产精品一区二区在线不卡| 91麻豆精品激情在线观看国产| 欧美日韩亚洲国产一区二区在线观看| 亚洲精品久久成人aⅴ小说| 自拍欧美九色日韩亚洲蝌蚪91| 国产av在哪里看| 精品一区二区三区四区五区乱码| 亚洲精品一区av在线观看| 免费在线观看黄色视频的| 999精品在线视频| 国产亚洲av嫩草精品影院| 变态另类成人亚洲欧美熟女 | 国产成人欧美| 免费在线观看黄色视频的| 成人av一区二区三区在线看| 91国产中文字幕| 亚洲国产高清在线一区二区三 | 欧美日韩福利视频一区二区| 成人国产一区最新在线观看| 很黄的视频免费| 999久久久国产精品视频| 午夜精品久久久久久毛片777| 亚洲一区二区三区色噜噜| 两性夫妻黄色片| 亚洲精品在线美女| 麻豆国产av国片精品| 老汉色∧v一级毛片| tocl精华| 每晚都被弄得嗷嗷叫到高潮| 一边摸一边抽搐一进一小说| 久热爱精品视频在线9| 电影成人av| 黄色成人免费大全| 中国美女看黄片| 女同久久另类99精品国产91| 欧美乱妇无乱码| 9热在线视频观看99| 大型av网站在线播放| 一边摸一边抽搐一进一出视频| 国产成人精品久久二区二区91| 久久精品亚洲熟妇少妇任你| 老鸭窝网址在线观看| 亚洲欧美精品综合一区二区三区| 男人的好看免费观看在线视频 | 亚洲欧美精品综合一区二区三区| 十八禁人妻一区二区| 国产亚洲av高清不卡| 午夜免费激情av| 国产视频一区二区在线看| 午夜免费激情av| 久久久久久免费高清国产稀缺| 黄片大片在线免费观看| 亚洲成人久久性| 女警被强在线播放| 亚洲精品一区av在线观看| 首页视频小说图片口味搜索| av在线播放免费不卡| svipshipincom国产片| 亚洲精品久久成人aⅴ小说| 国产精品永久免费网站| 18禁国产床啪视频网站| 精品国内亚洲2022精品成人| 露出奶头的视频| 在线观看舔阴道视频| 欧美激情极品国产一区二区三区| 国产亚洲精品av在线| 日本免费a在线| 亚洲国产精品合色在线| av网站免费在线观看视频| 在线观看66精品国产| 高清毛片免费观看视频网站| 国产精品综合久久久久久久免费 | 国产成人欧美| 极品人妻少妇av视频| 无遮挡黄片免费观看| 狂野欧美激情性xxxx| 男女下面进入的视频免费午夜 | 国产激情欧美一区二区| 视频区欧美日本亚洲| 99久久99久久久精品蜜桃| 中文字幕另类日韩欧美亚洲嫩草| 国产精品99久久99久久久不卡| 中国美女看黄片| 亚洲中文字幕一区二区三区有码在线看 | 国产精品99久久99久久久不卡| 在线观看午夜福利视频| 亚洲成人久久性| x7x7x7水蜜桃| 97人妻精品一区二区三区麻豆 | 国产精品电影一区二区三区| 极品教师在线免费播放| 亚洲色图av天堂| 桃红色精品国产亚洲av| 亚洲全国av大片| 亚洲人成伊人成综合网2020| 中文字幕人成人乱码亚洲影| 亚洲欧洲精品一区二区精品久久久| 欧美老熟妇乱子伦牲交| 中文字幕av电影在线播放| 嫩草影院精品99| 又黄又粗又硬又大视频| 中亚洲国语对白在线视频| 国产午夜福利久久久久久| 母亲3免费完整高清在线观看| 波多野结衣巨乳人妻| 午夜福利免费观看在线| 国产精品乱码一区二三区的特点 | 男人舔女人的私密视频| 国产97色在线日韩免费| 两个人免费观看高清视频| 国产aⅴ精品一区二区三区波| 99在线人妻在线中文字幕| 99国产精品99久久久久| 香蕉丝袜av| 美女国产高潮福利片在线看| 欧美成狂野欧美在线观看| 欧美+亚洲+日韩+国产| www国产在线视频色| av视频免费观看在线观看| 夜夜躁狠狠躁天天躁| 国产精品爽爽va在线观看网站 | 亚洲 欧美 日韩 在线 免费| bbb黄色大片| 午夜福利18| 日本三级黄在线观看| 亚洲久久久国产精品| 啦啦啦韩国在线观看视频| 俄罗斯特黄特色一大片| 久久国产精品影院| 国产熟女午夜一区二区三区| 亚洲全国av大片| 中文字幕色久视频| 日韩欧美一区视频在线观看| 欧美最黄视频在线播放免费| 搡老妇女老女人老熟妇| 午夜两性在线视频| 很黄的视频免费| 一a级毛片在线观看| 黄片播放在线免费| 亚洲av电影在线进入| 亚洲午夜精品一区,二区,三区| 成人手机av| 日本五十路高清| 日韩欧美在线二视频| 亚洲男人天堂网一区| 中文字幕久久专区| av在线天堂中文字幕| 国产精品1区2区在线观看.| 一区在线观看完整版| 久久人人精品亚洲av| 黄色丝袜av网址大全| av有码第一页| 久久久久国产精品人妻aⅴ院| 91国产中文字幕| 99国产极品粉嫩在线观看| 欧美另类亚洲清纯唯美| 男女床上黄色一级片免费看| 成人永久免费在线观看视频| 1024视频免费在线观看| 12—13女人毛片做爰片一| 三级毛片av免费| 国产精品香港三级国产av潘金莲| 久久青草综合色| 搡老妇女老女人老熟妇| 久久久久久免费高清国产稀缺| 97超级碰碰碰精品色视频在线观看| 男女做爰动态图高潮gif福利片 | 日本精品一区二区三区蜜桃| 国产精品亚洲美女久久久| www.www免费av| 神马国产精品三级电影在线观看 | 99久久国产精品久久久| 亚洲第一av免费看| 两个人看的免费小视频| 国产精品一区二区三区四区久久 | 一级黄色大片毛片| 国产精品秋霞免费鲁丝片| 国产真人三级小视频在线观看| 免费av毛片视频| 啦啦啦韩国在线观看视频| 亚洲精品中文字幕一二三四区| 久久精品91蜜桃| 亚洲成a人片在线一区二区| 他把我摸到了高潮在线观看| 两个人看的免费小视频| 中文字幕另类日韩欧美亚洲嫩草| 一区二区三区激情视频| 日本一区二区免费在线视频| 午夜福利欧美成人| 高潮久久久久久久久久久不卡| 免费女性裸体啪啪无遮挡网站| 亚洲欧美激情在线| 十分钟在线观看高清视频www| 国产蜜桃级精品一区二区三区| 日日爽夜夜爽网站| 老鸭窝网址在线观看| 18禁观看日本| 成人三级做爰电影| 久久香蕉国产精品| 美女国产高潮福利片在线看| 国产极品粉嫩免费观看在线| 国产又色又爽无遮挡免费看| 国产1区2区3区精品| av网站免费在线观看视频| 亚洲全国av大片| 欧美国产日韩亚洲一区| 亚洲狠狠婷婷综合久久图片| 黄网站色视频无遮挡免费观看| 日韩一卡2卡3卡4卡2021年| 精品人妻在线不人妻| 怎么达到女性高潮| cao死你这个sao货| 纯流量卡能插随身wifi吗| 国产区一区二久久| 人人妻人人爽人人添夜夜欢视频| 无限看片的www在线观看| 黄片大片在线免费观看| 国产精品久久久av美女十八| 啦啦啦韩国在线观看视频| 免费搜索国产男女视频| 大型黄色视频在线免费观看| 国产成人啪精品午夜网站| 露出奶头的视频| 亚洲熟女毛片儿| 国产单亲对白刺激| 在线天堂中文资源库| 777久久人妻少妇嫩草av网站| x7x7x7水蜜桃| 岛国视频午夜一区免费看| 久久精品亚洲熟妇少妇任你| 日韩有码中文字幕| 在线观看一区二区三区| 成人精品一区二区免费| 日韩高清综合在线| 美女大奶头视频| 精品第一国产精品| 日日干狠狠操夜夜爽| 18禁观看日本| 国产人伦9x9x在线观看| 久久中文字幕一级| 国产一级毛片七仙女欲春2 | 亚洲色图av天堂| x7x7x7水蜜桃| 男女床上黄色一级片免费看| 亚洲一区中文字幕在线| 国产精品秋霞免费鲁丝片| 黄片小视频在线播放| 又黄又粗又硬又大视频| 一级作爱视频免费观看| 久久精品国产亚洲av香蕉五月| 搡老熟女国产l中国老女人| 高清毛片免费观看视频网站| 亚洲自拍偷在线| 日日夜夜操网爽| 一边摸一边抽搐一进一小说| 欧美日本亚洲视频在线播放| 欧美一级a爱片免费观看看 | 免费看美女性在线毛片视频| 免费在线观看影片大全网站| 欧洲精品卡2卡3卡4卡5卡区| 俄罗斯特黄特色一大片| 亚洲国产欧美日韩在线播放| 亚洲男人的天堂狠狠| 久久精品人人爽人人爽视色| 亚洲 欧美 日韩 在线 免费| 熟女少妇亚洲综合色aaa.| 成在线人永久免费视频| 丝袜在线中文字幕| 高清在线国产一区| 黄频高清免费视频| 嫩草影视91久久| 精品久久久久久久久久免费视频| 亚洲七黄色美女视频| 波多野结衣高清无吗| 50天的宝宝边吃奶边哭怎么回事| 免费搜索国产男女视频| 亚洲美女黄片视频| 黄色毛片三级朝国网站| 久久久久国内视频|