国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

微服務平臺改造落地解決方案設計

開發 后端 新聞
最近幾年,樓主在微服務領域做過一些架構設計,針對新老服務如何微服務化積累一定經驗,先分享給大家,希望對大家有用。同時歡迎頭條朋友在評論區留言,共同討論微服務該如何演進。

 前言

[[271713]]

最近幾年,樓主在微服務領域做過一些架構設計,針對新老服務如何微服務化積累一定經驗,先分享給大家,希望對大家有用。同時歡迎頭條朋友在評論區留言,共同討論微服務該如何演進。

一、平臺微服務改造方案

1、啟動方式

啟動方式改為spring-boot啟動,需修改pom文件,修改之前的配置文件加載方式。

Springboot打包可以打成jar, 也可以打出包含jsp的war,但是war的打包方式目前沒有研究。配置文件可以合并,也可以加載指定文件。

2、服務劃分

需要新增多個服務,如服務發現、服務網關、配置中心服務、負載均衡等,需要用到spring-cloud。除此之外,如果不手動啟動停止服務、方便管理,還需要一些自動化管理部署工具(Docker + k8s)。

平臺具體的功能被劃分為以下4個服務

干活分享:微服務平臺改造落地解決方案設計

3、登錄認證

登錄認證由網關配合認證服務共同完成。各服務本身上跟認證相關的配置也需要更改。

4、前端展示

采用Angular2+Bootstrap+H5展示View層,淘汰jsp。

5、代碼結構

干活分享:微服務平臺改造落地解決方案設計

6、MVC框架

業務邏輯層(service)保持不變;數據訪問層改成JPA實現(repository);controller層改成restful風格,struts的全部改成rest的springmvc。

使用spring-data技術,在此基礎上擴展了其基類方法。支持以下多種查詢方式:

干活分享:微服務平臺改造落地解決方案設計

在configuration類上添加@enableJpaRepository注解

@configuration@enableJpaRepository(basePackages={“xxx”}, repositoryFactoryBeanClass=BaseRepositoryFactoryBean.calss)public class Application { …}

2、編寫的repository接口都繼承自BaseRepository接口

7、單元測試與集成測試

目前前端后端分組,原則上前端單元測試不依賴于后臺數據,前后端定義好json數據格式,以便前端獨立測試。

前端用karma進行單元測試;后端用mock+postman進行單元測試。

8、數據庫設計

干活分享:微服務平臺改造落地解決方案設計

9、關于工程切換和數據源切換

目前基本上是一個服務訪問一個數據源。

10、上下文

AuthenticationHolder來獲取當前登錄用戶信息。

11、服務間調用

服務的api在實現時,都是通過rest方式來實現。通過spring-cloud-feign技術作為http客戶端調用遠程http服務。服務端接口暴露方式如下:

干活分享:微服務平臺改造落地解決方案設計

客戶端調用方式如下:

  1. @Autowired 
  2. private LogRemoteService service; // 遠程服務 

凡是涉及到兩個服務的之間API接口調用,不能使用之前的pom引入,改為服務間調用的方式。所以需要兩個服務都引用共同的實體,共用的實體需要提取出來。系統參數和字典、操作日志都需要改成微服務

12、緩存框架

使用redis + ehcache兩級緩存,原理如下:

干活分享:微服務平臺改造落地解決方案設計

添加數據時,在緩存到遠程redis的同時,緩存一份到本地進程ehcache(此處的ehcache不用做集群,避免組播帶來的開銷),取緩存的時候會先取本地,沒有會向redis請求,這樣會減少應用服務器<–>緩存服務器redis之間的網絡開銷。(見下圖,為了減少get這幾條網絡傳輸,我們會在每個應用服務器上增加本地的ehcache緩存作為二級緩存,即第一次get到的數據存入ehcache,后面output輸出即可從本地ehcache中獲取,不用再訪問redis了,所以就減少了以后get的網絡開銷。get開銷只要一次,后續不需要了,除非本地緩存過期需要再get。

13、操作日志切面處理

操作日志切面處理。之前核心包有些service用到記錄操作日志、和當前用戶的方法都需要改。

第一步,定義注解類注解類Logging

第二步,服務定義切面

  1. @Aspect 
  2. @Component 
  3. public class LogAspect { 
  4.     … 

第三步,在需要記錄操作日志的方法上添加注解

  1. @RestController 
  2. @RequestMapping(value = "/xxx"
  3. public class xxxController { 
  4.  @Logging(title="查詢訂單列表操作", data="查詢類型為{0}訂單"
  5.  @RequestMapping( value="/showData", method = RequestMethod.GET) 
  6.  public ResponseEntity<String> showData(String tupe){ 
  7.  … 
  8.  } 

14、分布式異常與事務

調用其他服務異常時,該業務是否繼續進行問題需要做特殊處理。而分布式事物的回滾問題,目前還沒有研究,要實現可能代碼寫的時候要麻煩些,需要考慮各種情況,為了回滾也需要記錄操作前的數據。

15、統一返回碼處理

為了提高前后端的交互體驗,對后臺返回的數據和異常進行了統一封裝。并根據不同類型的返回值定義了一系列的返回碼。

后端返回值格式如下:

  1. { 
  2.  “code“: “10001“, 
  3.  “message“: “code重復,不能保存!“, 
  4.  “data“:null 
  5. } 

其中:code代碼返回碼,message代碼提示信息,data代表返回數據。以上是一個校驗異常的示例。返回碼定義列表如下:

干活分享:微服務平臺改造落地解決方案設計

二、前端框架設計

1、背景

在過去的幾年,前端技術飛速發展,涌現了很多優秀的框架,新興的前端技術主要有以下特點:

  • 用戶體驗

從html5產生以來,隨著富客戶端技術的多種多樣,用戶體驗變得越來越重要。頁面的美觀性、響應速度、內存消耗性能優劣等成為客戶選擇產品非常重要的因素。

  • 組件化

利潤最大化的兩個主要途徑是減少部署成本、提高開發效率;而提高開發效率的兩個主要途徑就是加快開發速度,減少變更代價。JavaScript組件化的目標是清晰的職責,松耦合,便于單元測試和重復利用,提高開發效率。

  • MV*框架

類似于后端的分層,前端也大致分為三層,從發展上經歷了由MVC --> MVP --> MVVM的轉換,MV*代表這三者及類似框架。MV*框架的理念是把前端按照職責分層,每一層都相對比較獨立,有自己的價值,也有各自發揮的余地。

  • 工程化

一個符合工程化要求的軟件系統(前端)需要包含的要素:

開發規范;模塊化開發;組件化開發;組件倉庫;性能優化;項目部署;開發流程;開發工具。

2、目標

  • 搭建前端框架,制定開發規范及開發流程

選用目前應用最廣,有著良好的開源社區及技術支持的MV*框架,結合公司后臺管理類系統的特點,進行技術選型及框架設計。在編程模型確定以后,制定前端開發流程及開發規范。

  • 搭建符合前端框架的開發環境及開發、打包、發布工具

根據前端開發、部署及測試等需求,建立前端的開發工具、開發環境、打包及部署等工具。

  • 基于界面交互風格,開發通用組件庫

為了提高應用開發效率,需要建立一套頁面組件庫,滿足應用開發的各個場景。

  • 建立一套優秀用戶體驗的界面交互風格及視覺效果

建立優秀的前端框架可以支持更加豐富的頁面交互效果,提高響應速度,提升用戶體驗。但是沒有良好的交互及視覺效果設計,這一切用戶是很難感受到的,所以前端的交互風格及視覺效果是不可或缺的一部分。

3、技術選型

基于目標通過技術調研并結合公司實際情況選取如下前端技術棧:

干活分享:微服務平臺改造落地解決方案設計

前端新的框架層出不窮,為什么最終會選擇Angular,主要有以下幾方面的原因:

  • 整合性(ALL-IN-ONE)。它涵蓋了M、V、C/VM等各個層面,不需要組合、評估其它技術就能完成大部分前端開發任務,可以有效降低決策成本,提高決策速度。
  • 組件化。Angular原生支持組件化開發,便于代碼解耦和復用,提高開發效率。
  • 全生命周期支持。一個優秀的框架需要對分工提供良好的支持,每個人都可以先從一些簡單任務開始,逐步的從修改一個文件擴大到修改一個目錄再到獨立實現一個特性。Angular是一個大型開源項目,并得到了Google的鼎力支持,學習成本相對較低,可以讓新人快速融入項目組,貢獻生產力。
  • 支持單元測試和e2e測試。Angular對單元測試和e2e測試更加友好,可以更快速地編寫測試代碼,完成自動化測試。

4、界面設計

設計原則

對應用系統的功能能夠一目了然、不需要多少培訓就可以方便使用該應用系統,一直是做好用戶界面的最終目標!

本系統堅持圖形用戶界面(GUI)設計原則:

  • 設計時首先關注用戶及其業務,而不是技術如何實現
  • UI設計簡潔美觀,視覺元素清晰

采用蘋果灰的配色方案以及親和力比較強的“桔色#ff9900”為主體色。

可理解性操作思維

行為、反饋、可視化展現和信息等一系列活動,應該有合理的順序,很容易記得,容易放置在內容中。

可配置性

允許簡單的個性化配置、設置或新配置。

  • 界面以及操作一致性
  • 引導性術語描述,引導用戶行為

一方面為:幫助信息,輔助用戶完成操作的提示信息;另一方面為:用戶操作結果的反饋信息(多為彈出提示框形式出現)。

5、設計規范

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

6、框架結構

干活分享:微服務平臺改造落地解決方案設計

如上圖為前端整體框架結構,包括:

  • 入口文件:index.html同時也是應用程序首頁面。index.html中可以定義系統的全局的樣式。
  • appModule:系統的根模塊,Angular 應用是模塊化的,每個應用至少有一個跟模塊。
  • homeModule:系統界面框架模塊,包括左側菜單欄、頂部導航欄以及中間內容區。
  • sysModule:平臺安全框架模塊。
  • otherModule:其它應用模塊。
  • base/constants:平臺提供的基類以及常量。
  • 組件庫:組件庫為平臺搭建的通用組件,滿足應用開發的常用場景,可以作為第三方依賴包集成到應用開發中,提高應用產品開發效率。

目前,組件庫的開發已完成80%左右,可以滿足應用基本業務場景,后續還需要不斷地擴充、完善和優化,讓組件庫更方便、易用。

7、工程化

工程化的主要目的是提高效率、降低成本,因此前端工程化也是必不可少的一部分,前面提到了工程化的幾個要素,針對這幾個要素提出了我們的解決方案:

  • 開發規范

定義前端開發規范文檔,并通過TSLint和codelyzer對代碼進行檢查。

  • 模塊化開發

利用Angular的module功能對不同的應用模塊采用模塊化開發。

  • 組件化開發

Angular原生支持組件化開發,降低代碼的耦合性,提高代碼可復用性。

  • 組件倉庫

利用cnpm搭建私服,所有組件庫在cnpm私服中統一管理。

  • 開發流程

定義開發流程,明確職責和協同,明確目標,提高開發效率。(目前,開發流程還沒有完全固化下來,仍需要進一步完善)

  • 開發工具

平臺組完成開發語言、開發工具、測試工具、發布工具等選型,所有應用產品按照規范統一開發工具。

  • 性能優化

頁面的響應時間對于用戶是非常重要的,因此前端的性能優化(按需加載、延遲加載、代碼壓縮、緩存等)是很重要的一部分,目前這部分考慮的比較少,后續會重點考慮前端性能優化內容。

三、后端框架設計

1、 服務拆分

公共服務

干活分享:微服務平臺改造落地解決方案設計

2、公共組件

干活分享:微服務平臺改造落地解決方案設計

3、開發靜態視圖

平臺基礎框架

平臺基礎框架提供公共的API供業務開發者調用,讓他們關注與業務層面的代碼實現,而不是平臺底層框架實現。

平臺基礎框架包括

1) 基礎核心(app-cloud-framework-core)

提供數據庫訪問配置、Base基類(Service、Repository)、實體、工具、注解、切面、常量功能等

2) 控制層(app-cloud-framework-mvc)

提供控制層基類(Controller)、獲取認證用戶功能等。

如下圖所示:

干活分享:微服務平臺改造落地解決方案設計

平臺基礎服務

平臺基礎服務存在的目的是為用戶提供訪問入口、安全認證;為服務提供注冊與發現、負載均衡、熔斷、配置等功能。

平臺基礎服務包括:

1) 認證服務(app-cloud-cloudware-authserver)

用于實現用戶單點登錄和退出。

2) 配置中心服務(app-cloud-cloudware-configserver)

用于管理各個服務的配置文件管理。

3) 注冊與發現服務(app-cloud-cloudware-discovery)

用于管理服務的注冊與發現。

4) 網關服務(app-cloud-cloudware-gateway)

實現用戶統一入口訪問,動態路由,安全認證等。

如下圖所示:

干活分享:微服務平臺改造落地解決方案設計

四、持續構建與交付

Jenkins

Jenkins與Gitlab、Docker、Sonar配合完成服務源代碼的校驗、構建和發布。

最終構件分為兩個部分:

  1. Docker鏡像
  2. 二進制包(例如jar)

成果展示

服務源代碼構建任務清單:

  1. app-cloud-cloudware-authserver(認證服務源代碼構建任務)
  2. app-cloud-cloudware-configserver(配置中心服務構源代碼建任務)
  3. app-cloud-cloudware-discovery(服務注冊與發現源代碼構建任務)
  4. app-cloud-cloudware-gateway(服務網關源代碼構建任務)
  5. app-cloud-param-service(公用參數服務源代碼構建任務)
  6. app-cloud-security-service(安全框架服務源代碼構建任務)
  7. 其他服務

基礎框架源代碼構建任務清單:

  1. app-cloud-framework(基礎框架源代碼構建任務)
  2. app-cloud-platformwork(平臺框架源代碼構建任務)

如下圖所示:

干活分享:微服務平臺改造落地解決方案設計

例子:編譯服務網關源代碼

干活分享:微服務平臺改造落地解決方案設計

把服務網關打成鏡像,上傳到鏡像庫。

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

Gitlab

Gitlab是一個版本控制管理系統。實現一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。

如下圖:

干活分享:微服務平臺改造落地解決方案設計

 

干活分享:微服務平臺改造落地解決方案設計

例子:安全框架服務源碼

我們規定,一個完整的微服務,其靜態視圖包含如下幾個部分:

1.Dockerfile文件

用于創建Docker鏡像,實現微服務容器化部署。

2.api目錄

對外暴露服務的api接口訪問地址。例如我們想獲取張三的用戶信息,就可以調用用戶信息的API接口,請求地址為http://localhost/security-service/user/vi/000809

3.config目錄

用于配置數據庫訪問、服務啟動時配置參數加載以及api接口授權訪問控制。

4.repository目錄

數據的訪問層,提供訪問數據庫數據的接口

5. 實體目錄(獨立項目,通過pom引入)

用于處理實體與數據庫表映射關系;api資源授權訪問控制;為repository層提供數據封裝體。

6. service目錄

用于處理具體業務的邏輯

7. 啟動類Application

干活分享:微服務平臺改造落地解決方案設計

Maven私服庫

干活分享:微服務平臺改造落地解決方案設計

Docker私服庫

干活分享:微服務平臺改造落地解決方案設計

鏡像項目

干活分享:微服務平臺改造落地解決方案設計

平臺鏡像項目

干活分享:微服務平臺改造落地解決方案設計

安全框架服務鏡像地址

干活分享:微服務平臺改造落地解決方案設計

五、個人開發環境配置清單

干活分享:微服務平臺改造落地解決方案設計
責任編輯:華軒 來源: 今日頭條
相關推薦

2011-02-25 11:12:38

2025-05-09 09:10:00

2017-09-20 12:12:17

微服務原則方案

2017-09-09 15:27:49

微服務微服務架構互聯網

2018-03-20 13:54:33

物聯網網絡互聯網

2016-07-25 16:20:18

2010-08-25 17:18:10

DHCP服務器

2019-09-10 10:46:24

微服務架構傳統服務

2025-11-26 07:57:15

2020-09-17 17:09:35

戴爾

2023-09-06 16:49:14

架構微服務

2021-09-28 09:43:11

微服務架構技術

2017-10-17 11:39:40

微服務路由解決方案

2021-04-20 20:03:28

Systemjs模塊化前端

2015-11-06 14:53:37

數據中心節能

2013-11-08 16:46:42

華為數據遷移華為

2020-03-29 22:51:17

AWS IoT物聯網IOT

2011-11-28 12:55:32

2021-08-17 12:36:21

Longhorn云原生存儲
點贊
收藏

51CTO技術棧公眾號

久久久久久香蕉网| 糖心vlog在线免费观看| 成a人片在线观看www视频| 狂野欧美一区| 欧美精品在线观看91| 毛片毛片毛片毛片| 欧美亚洲一区| 久久久999成人| 四虎免费av| 国产一区二区三区日韩精品| 亚瑟在线精品视频| 国产在线播放观看| 怡红院成人在线| 麻豆精品视频在线观看| 亚洲成av人片一区二区梦乃| 色综合97天天综合网| www..com久久爱| 97se亚洲综合| 成人免费在线小视频| 国产精品一品二品| 18禁裸男晨勃露j毛免费观看| 成人看片网页| 亚洲第一福利网站| 婷婷电影在线观看| 精品中文字幕在线2019| 97精品国产综合久久久动漫日韩| 国产真实乱偷精品视频免| 精品亚洲欧美日韩| 欧美成人日本| 欧美精品一区三区在线观看| 日日嗨av一区二区三区四区| 亚洲五码在线观看视频| 不卡的av电影| 91免费国产网站| 免播放器亚洲一区| 欧美影院久久久| 久久精品免费看| 中文字幕无线精品亚洲乱码一区 | 中文字幕剧情在线观看一区| 亚洲综合五月| www.xxx麻豆| 欧美午夜美女看片| 日韩天堂在线| 亚洲高清久久网| 日本不卡免费一区| 91精品一区二区三区四区| 日本sm残虐另类| 亚洲国模精品私拍| 99国产精品一区二区| 欧美另类高清视频在线| 午夜一级久久| 91久久久久久| 成人免费看黄网站| 国产精品二区不卡| 成人网址在线观看| 久久国产精品亚洲77777| 精品久久一区二区三区蜜桃| 久久久久网站| 在线免费一区| 捆绑紧缚一区二区三区视频 | 日韩一区二区三区国产| av老司机免费在线| 久久人91精品久久久久久不卡| gogogo高清在线观看一区二区| 好看的日韩精品| 国产在线精品一区在线观看麻豆| 成人黄色一区二区| 色综合中文字幕| 3p视频在线观看| 精品久久久久99| 一区二区三区视频播放| 日韩禁在线播放| 久久久久久穴| 亚洲精品88| 国产区亚洲区欧美区| 日产精品一区二区| 国产精品va在线观看无码| 久久精品天堂| 波多野在线观看| 久久精品成人动漫| 无码日韩精品一区二区免费| 国产精品久久亚洲7777| 一区二区三区在线播放| 久久精品一区二| 亚洲激情视频在线| 国产乱子伦视频一区二区三区| 国产91在线播放精品| 国产三级av在线| 亚洲精品乱码久久久久久按摩观| 九九**精品视频免费播放| chinese偷拍一区二区三区| 欧美性猛交xxxx乱大交极品| 国产农村妇女精品一区二区| 成人精品一区二区三区电影| 成人久久18免费网站漫画| 免费观看成人www动漫视频| 国产黄色在线| 六月婷婷激情网| 国产一区二区三区在线观看网站 | 欧美日韩电影在线观看| 久久亚洲精品无码va白人极品| 精品中文字幕久久久久久| 五月亚洲婷婷| 手机看片福利盒子久久| 91精品国产91久久久| 日韩精品一区二区三区视频 | 欧美国产日韩a欧美在线观看| 24小时免费看片在线观看| 日日摸日日碰夜夜爽无码| 亚洲国产精品国自产拍av| 国产一区二区你懂的| 一区二区乱码| 国产a一区二区| 精品久久一区二区三区| 国产成人亚洲精品青草天美| 澳门精品久久国产| 欧美成人综合在线| 免费久久99精品国产自| 久久夜色精品亚洲噜噜国产mv| 亚洲国产高潮在线观看| 久久久91精品国产一区二区三区| 国产电影一区| 国产经典自拍视频在线观看| 国产女大学生av| 97av自拍| 国产福利成人在线| 精品一区二区三区国产| 国产精品视频福利| 视频一区二区三区在线观看 | 禁断一区二区三区在线| 免费毛片在线看片免费丝瓜视频 | 免费高清一区二区三区| 国产成人免费视频网站| 四虎精品欧美一区二区免费| 五月婷婷激情综合| 天堂av一区| 亚洲国产一二三精品无码| 五月天网站亚洲| 久久99国产精品久久99大师| 日韩第一页在线观看| 日本精品一区二区三区四区的功能| 老司机aⅴ在线精品导航| 国产九色porny| 日韩小视频在线观看专区| 午夜视频一区| 三年片观看免费观看大全视频下载| 久久艳片www.17c.com| 国产成人自拍网| 二区在线观看| 91在线观看免费观看 | 亚洲成av人片在线观看无码| 国产一区一区| 国产一区亚洲二区三区| 在线精品高清中文字幕| 久久成人免费日本黄色| 最新日本在线观看| 欧美最大成人综合网| 欧美一卡2卡三卡4卡5免费| 国产欧美日韩综合一区在线播放| 黄色软件在线观看| 国产精品一国产精品最新章节| 色婷婷综合久久| 欧美特黄视频| 免费av在线网站| 欧美重口乱码一区二区| 亚洲成人av片| 国精品**一区二区三区在线蜜桃| 美女日批视频在线观看| 亚洲欧美99| 亚洲精品视频播放| 成人网页在线观看| 国产美女视频一区二区| 超碰在线97免费| 欧美一区二区影院| 午夜精品免费在线| 亚洲久久一区二区| 蜜臀av在线播放| 国产免费一区二区三区四在线播放| 亚洲欧美精品在线| 97成人超碰视| 国产亚洲成av人片在线观黄桃| 国产911网站| 亚洲一区二区中文| 欧美xxxxxxxxx| 99久久久久久99| 欧美电影免费网站| 国产小视频福利在线| 欧美日韩亚洲免费| 中文字幕视频在线免费欧美日韩综合在线看 | 激情久久av| 欧美精品一区二区在线播放 | 警花观音坐莲激情销魂小说| 亚洲国产欧美日韩另类综合| 欧美视频不卡| 国产国产一区| 日本不卡免费播放| 国产精品-区区久久久狼| 国产98在线|日韩| 九九热这里只有精品免费看| 欧美精品第一页|