Spring Cloud微服務學習筆記之微服務架構簡述

一、微服務及其他架構

Spring Cloud微服務學習筆記以一個微信點餐springboot系統爲背景講述微服務spring cloud框架的應用和原理實現,系統包括買家端和賣家端兩部分,將以賣家端爲主;涉及到的架構形態有單體架構、基於Ajax的前後端分離框架vue、分佈式(水平拓展&服務拆分)。

1.1 什麼是微服務

“微服務” 一詞源於Martin Fowler的名爲Microservices的博文,文中詳述了微服務概念,原文中的粗體部分如下

  • 一系列微小的服務共同組成
  • 運行在獨立的進程
  • 每個服務爲獨立的業務開發
  • 獨立部署
  • 分佈式的管理
  • 是一種架構風格,無嚴格標準

爲什麼提出微服務架構?架構的演變:單一應用架構==》垂直應用架構==》分佈式服務架構==》流式計算架構

1.2與單體架構對比

點餐系統結構圖
單體架構圖
單體結構優點

  • 容易測試
  • 容易部署
  • 響應時間短,適於併發量中小的系統

單體結構缺點

  • 開發效率低
  • 擴展性低,代碼維護難
  • 部署不靈活
  • 穩定性不高,無法應對高併發的場景

1.3基於Ajax的前後端分離框架vue

原理架構圖
前後端分離
邏輯架構圖

業務圖

二、從一個極簡的微服務架構開始

2.1基礎的微服務組件

簡單的微服務架構圖

微服務架構圖

注意與前後端分離的邏輯架構圖作對比

  1. 服務註冊與發現

服務提供方在其中註冊其自身地址,服務消費方在其中發現要調用的服務地址

  1. 服務網關(Service Gateway)

前端路由請求的唯一入口,屏蔽後端服務的細節,將外部的路由反向路由到後端服務中去,還會有限流、容錯、監控和日誌的功能,包括用戶認證、授權、反爬蟲等

  1. 後端通用服務(又稱中間層服務Middle Tier Service)

將API地址註冊在註冊中心上,供前端服務使用

  1. 前端服務(又稱邊緣服務Edge Service)

對註冊在註冊中心的後端服務進行聚合和裁剪。聚合:例如將多個API組合爲一個API,減少用戶調用次數。裁剪:例如手機端和PC端對同一個請求的返回信息詳細程度不同

2.2 兩大主流實現框架

  1. 阿里系Dubbo(噹噹Dubbox)
  • Dubbo做服務化治理
  • Zookeeper做服務註冊中心
  • SpringMVC or SpringBoot
  1. Spring Cloud全系列
  • Spring cloud Netflix Eureka
  • SpringBoot

2.3 Spring Cloud是什麼

spring cloud 是一個開發工具集,利用了springboot的開發便利;主要基於對Netflix 開源組件的進一步封裝,簡化了分佈式開發

javaweb發展

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章