springcloud-微服務架構基礎

一 前言

學習微服務要從基礎的架構學起,首先你要有個微服務的概念才能學習對吧!!若是你都不知道啥是微服務,就一頭扎進去學習,你本身也以爲本身也學不會對吧。本篇文章主要讓你們快速瞭解基礎的架構分格,以便於微服務入門。html

二 單體架構

單體架構是傳統架構,其發展了幾十年,咱們今天任然還在用單體架構開發,存在即合理;單體架構也就是一般的表現層跟UI界面交互,業務層寫業務邏輯,數據DAO層訪問數據庫。其部署方式也很簡單,直接將項目打包成war包放進web服務器(如tomcat,jetty)中運行; 其優勢以下:web

  1. 易於開發,架構單一,很容易上手,一站式到底;docker

  2. 易於部署,直接放進web服務器便可運行;數據庫

其缺點以下:apache

  1. 維護困難,每次進行代碼維護,每每修改都是從上而下改動,需將整個程序部署才能看見修改結果;tomcat

  2. 二次開發難度大,都要讀懂大量代碼,業務邏輯複雜;服務器

  3. 測試難度大,隨着業務越多,測試的難度會越大;restful

在這裏插入圖片描述

三 分佈式架構

分佈式架構簡單的能夠理解爲由多個單體結構組成,可是它們都是經過發佈的服務相互調用;架構

在這裏插入圖片描述

分佈式服務架構中比較出門的就是面向服務的SOA(Service-Oriented Architecture)架構,服務之間經過通訊協議進行相互通訊;比較出名的服務治理框架也就是阿里開源的Dubbo框架,目前在Apache旗下,服務之間經過遠程過程調用(RPC),主要角色以下;app

  1. 註冊中心:服務的註冊與發現;

  2. 提供者:提供服務

  3. 消費者:消費服務

  4. 監控中心:監控服務之間的日誌和健康;

在這裏插入圖片描述

四 微服務架構

到目前爲止其實關於微服務架構仍是沒有一個精確的定義;2014 年 Martin Fowler 在 《Microservices》 一文中提出了微服務的概念,大致的咱們能夠總結爲以下幾點:

  1. 一個單體應用開發成多個微小服務;

  2. 微小服務間一般經過HTTP協議或者restful風格調用;

  3. 每一個微小服務圍繞業務邏輯構建,獨立自動部署;

In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

在這裏插入圖片描述

微服務的優勢以下:

  1. 獨立部署,易於開發維護

  2. 服務拆分,業務邏輯清晰,

  3. 服務間經過HTTP通訊,耦合度低

微服務缺點以下:

  1. 部署難度大,目前有docker等容器化技術相對好點;

  2. 分佈式事物問題突出;

五參考文檔

dubbo官方文檔

miroservice

 

 

相關文章
相關標籤/搜索