微服務SpringCloud項目架構搭建入門


Spring的微服務框架SpringCloud受到眾多公司歡迎,給大家帶來一篇框架搭建入門。本次采用的版本是Spring Cloud版本為Finchley.RELEASE。

一、SpringCloud項目簡介

 spring cloud:

    為開發人員提供了快速構建分布式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等。它運行環境簡單,可以在開發人員的電腦上跑。

 Spring Boot:

    旨在簡化創建產品級的 Spring 應用和服務,簡化了配置文件,使用嵌入式web服務器,含有諸多開箱即用微服務功能(spring cloud是基於springboot的,所以需要開發中對springboot有一定的了解)。

二、SpringCloud子項目介紹

  Netflix Eureka:和zookeeper類似,是一個用於服務注冊和發現的組件,主要分為EurekaServer和EurekaClient,EurekaServer是服務注冊中心,EurekaClient為Eureka的客戶端(可以是生產者,也可以是消費者)

       Feign:是一個聲明式的偽Http客戶端,它使得寫Http客戶端變得更簡單。使用Feign,只需要創建一個接口並注解。Feign默認集成了Ribbon,並和Eureka結合,默認實現了負載均衡的效果。

       Spring Cloud Config:配置管理開發工具包,可以讓你把配置放到遠程服務器,目前支持本地存儲、Git以及Subversion。

       Spring Cloud Bus:事件、消息總線,用於在集群(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。

  Spring Cloud Netflix:針對多種Netflix組件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。

  Netflix Hystrix:容錯管理工具,旨在通過控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力

  Netflix Zuul:邊緣服務工具,是提供動態路由,監控,彈性,安全等的邊緣服務。

  Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能。

  Spring Cloud for Cloud Foundry:通過Oauth2協議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS雲平台。

  Spring Cloud Sleuth:日志收集工具包,封裝了Dapper,Zipkin和HTrace操作。

  Spring Cloud Data Flow:大數據操作工具,通過命令行方式操作數據流。

  Spring Cloud Security:安全工具包,為你的應用程序添加安全控制,主要是指OAuth2。

  Spring Cloud Consul:封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫集成。

  Spring Cloud Zookeeper:操作Zookeeper的工具包,用於使用zookeeper方式的服務注冊和發現。

  Spring Cloud Stream:數據流操作開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。

  Spring Cloud CLI:基於 Spring Boot CLI,可以讓你以命令行方式快速建立雲組件。

三、微服務開發要素

       1、Codebase:從一個代碼庫部署到多個環境。

  2、Dependencies:使用顯式的聲明隔離依賴,即模塊單獨運行,並可以顯式管理依賴。

  3、Config:在系統外部存儲配置信息。

  4、Backing Services:把支持性服務看做是資源,支持性服務包括數據庫、消息隊列、緩沖服務器等。

  5、Build, release, run:嚴格的划分編譯、構建、運行階段,每個階段由工具進行管理。

  6、Processes:應用作為無狀態執行。

  7、Port binding:經由端口綁定導出服務,優先選擇 HTTP API 作為通用的集成框架。

  8、Concurrency:並發性使用水平擴展實現,對於web就是水平擴展web應用實現。

  9、Disposability:服務可處置性,任何服務可以隨意終止或啟動。

  10、Dev/prod parity:開發和生產環境保持高度一致,一鍵式部署。

  11、Logs:將日志看做是事件流來管理,所有參與的服務均使用該方式處理日志。

  12、Admin processes:管理任務作為一次性的過程運行(使用腳本管理服務啟動和停止)。

 四、SpringCloud項目搭建

      具體的項目搭建步驟就不詳細介紹了,大家直接去看源碼:

      源碼地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM