1. 程式人生 > >spring cloud 分散式實戰(一)-- 初見

spring cloud 分散式實戰(一)-- 初見

spring cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分散式系統基礎設施的開發,如服務發現註冊、配置中心、訊息匯流排、負載均衡、斷路器、資料監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring Cloud並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝遮蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分散式系統開發工具包。

核心元件

Spring Cloud Eureka (服務治理)

Spring Cloud Eureka 是 微服務套件中的一部分,它基於Netflix Eureka 做了二次封裝,主要負責完成微服務架構中的服務治理功能

Spring Cloud Zuul (服務閘道器)

反向代理和負載均衡,大前置的感覺

Spring Cloud Ribbon (負載均衡)

服務消費者是將服務從註冊中心獲取服務生產者的服務列表並維護在本地的,這種客戶端發現模式的方式是服務消費者選擇合適的節點進行訪問服務生產者提供的資料,這種選擇合適節點的過程就是Spring Cloud Ribbon完成的。

Spring Cloud Feign (rpc呼叫)

Spring Cloud Feign 是一個宣告web服務客戶端,這使得編寫Web服務客戶端更容易,使用Feign 建立一個介面並對它進行註解,它具有可插拔的註解支援包括Feign註解與JAX-RS註解,Feign還支援可插拔的編碼器與解碼器,Spring Cloud 增加了對 Spring MVC的註解,Spring Web 預設使用了HttpMessageConverters, Spring Cloud 整合 Ribbon 和 Eureka 提供的負載均衡的HTTP客戶端 Feign。
簡單的可以理解為:Spring Cloud Feign 的出現使得Eureka和Ribbon的使用更為簡單。易於編碼

Spring Cloud Hystrix(熔斷器)

當有一個服務出現了故障,而服務的呼叫方不知道服務出現故障,若此時呼叫方的請求不斷的增加,最後就會等待出現故障的依賴方 相應形成任務的積壓,最終導致自身服務的癱瘓。
Spring Cloud Hystrix正是為了解決這種情況的,防止對某一故障服務持續進行訪問。Hystrix的含義是:斷路器,斷路器本身是一種開關裝置,用於我們家庭的電路保護,防止電流的過載,當線路中有電器發生短路的時候,斷路器能夠及時切換故障的電器,防止發生過載、發熱甚至起火等嚴重後果。

Spring Cloud Config (配置中心)

對於微服務還不是很多的時候,各種服務的配置管理起來還相對簡單,但是當成百上千的微服務節點起來的時候,服務配置的管理變得會複雜起來。
分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在Spring Cloud中,有分散式配置中心元件Spring Cloud Config ,它支援配置服務放在配置服務的記憶體中(即本地),也支援放在遠端Git倉庫中。在Cpring Cloud Config 元件中,分兩個角色,一是Config Server,二是Config Client。
Config Server用於配置屬性的儲存,儲存的位置可以為Git倉庫、SVN倉庫、本地檔案等,Config Client用於服務屬性的讀取。

Spring Cloud Bus (訊息匯流排)

簡單理解為server和client 推送服務,例如 config-server 屬性改變,config-client 並不知道,如何生效呢,傳統做法,重啟config-client,bus的出現就是可以在不關閉服務的情況下,通知各服務做一些事情,例如config-client的更新.

springboot

當然,作為cloud的核心,springboot是必不可少的。

總結

好了,以上就是cloud的各大重要元件,當然還有一些不是很重要的,下面我將使用各元件,完成一套cloud的分散式專案,並持續優化更新。由簡到難,來探討colud的內容。

相關推薦

spring cloud 分散式實戰-- 初見

spring cloud Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分散式系統基礎設施的開發,如服務發現註冊、配置中心、訊息匯流排、負載

Spring 事務配置實戰:過濾無需事務處理的查詢之類操作

log pla ssi pan spl tail gif aop img <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes

Spring Cloud Stream教程介紹Spring Cloud Stream

連接 測試 channel source 發布 構建 自動 ces oot Spring Cloud Stream是構建消息驅動的微服務應用程序的框架。Spring Cloud Stream基於Spring Boot建立獨立的生產級Spring應用程序,並使用Spring

【原創】Spring-Cloud快速入門微服務入門--轉載請註明出處

一、什麼是微服務? 有時候,會有的人存在誤解,所謂微服務就是SpringCloud。這種思想本身是不正確的,微服務是一種系統架構上面的設計風格,而SpringCloud則是一種較為適用於微服務架構的框架。 在java體系中,我們通常需要將一個大的類,拆分成若干個的小的類,每個類都具有自己獨立

Spring Cloud 元件搭建Eureka服務發現

Spring Cloud生態圈目前有21個子專案來共同構建,解決了目前微服務系統的很多問題,廢話不多說,直接上其最普通簡單的Eureka服務發現與註冊中心搭建過程。本系列教材依照1.3.5.RELEASE版本,該版本比較穩定,JDK要求1.7以上。 1、mic

Spring Cloud 學習筆記——入門、特徵、配置

目錄 0 放在前面 0.1 參考文件 http://cloud.spring.io/spring-cloud-static/Brixton.SR7/ https://springcloud.cc/ http://projects.spring.io/spring-cloud/ 0.2 maven配置 &

Spring Data JPA 實戰-體系結構及基本配置

Spring Data JPA 實戰(一) 一.Spring DataJPA介紹 使用Spring Data Repository將程式設計師從大量重複繁雜的資料庫層操作中解放啊出來。 二.Repository:遍歷的資料訪問層 1.  Repository的體系結構  

Spring Cloud架構教程 Hystrix監控面板

下面我們基於之前的示例來結合Hystrix Dashboard實現Hystrix指標資料的視覺化面板,這裡我們將用到下之前實現的幾個應用,包括: eureka-server:服務註冊中心eureka-client:服務提供者eureka-consumer-ribbon-h

【原創】Spring-Cloud快速入門微服務入門

一、什麼是微服務? 有時候,會有的人存在誤解,所謂微服務就是SpringCloud。這種思想本身是不正確的,微服務是一種系統架構上面的設計風格,而SpringCloud則是一種較為適用於微服務架構的框

Spring Cloud》學習 服務治理!

  前言:之前網上學習過Spring Cloud,對於工作上需要是足夠了,總歸對於一些方面一知半解,最近難得有些閒暇時間,有幸讀了崔永超先生的《Spring Cloud 微服務實戰》,一方面記錄下自己的學習歷程和讀後感,一方面分享下自己對Spring Cloud微服務的一些見解,寫下此文。  注意:本文著重於

從零一起學Spring Boot之LayIM項目長成記 初見 Spring Boot

部分 基礎 依賴 com stat boot.s 情況下 比較 tar 項目背景   之前寫過LayIM的.NET版後端實現,後來又寫過一版Java的。當時用的是servlet,websocket和jdbc。雖然時間過去很久了,但是仍有些同學在關註。偶然間我聽說了Sprin

微服務分散式事務實戰 專案需求描述和實現步驟

本文通過一個具體例項如何實施springCloud 分散式事務,不對分散式事務理論做探索。由於內容較多,分多個小節來說明 案例需求: 建立2個基於springCloud的微服務,分別訪問不同的資料庫;然後建立一個整合服務,呼叫微服務實現資料的儲存到2個不同的資料庫,要求採用分散式事務,要麼都

深度學習分散式訓練實戰

本系列部落格主要介紹使用Pytorch和TF進行分散式訓練,本篇重點介紹相關理論,分析為什麼要進行分散式訓練。後續會從程式碼層面逐一介紹實際程式設計過程中如何實現分散式訓練。 常見的訓練方式 單機單卡(單GPU) 這種訓練方式一般就是在自己筆記本上,窮學生專

spring cloud系列教程14---配置中心實戰

大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油,這個公眾號已經接入圖靈 ​   這兩天更新的有點慢兩點原因 1.字符集,在github上上傳的配置檔案一定要轉成utf-8的!!!!!!!! 2.配置中心的配置檔案的檔名稱和application: name

Spring cloud服務呼叫Feign

一、服務呼叫 核心概念 遠端過程呼叫(RPC) 介面定義語言(IDL) 通訊協議(Protocol) Netflix Feign (一)遠端過程呼叫(RPC)   遠端過程呼叫(RPC)是一個計算機通訊協議。該協議容許運行於一臺計算機的程式呼叫另一臺計算機的

Spring4實戰-Spring的前世今生

Spring簡介 Spring 是一個輕量級的控制反轉( IOC,Inversion of Control)/(DI ,Dependency Injection)和 面向切面(AOP,Aspect Oriented Programming) 容器框架,它為簡化

Spring4 Spring MVC實戰——讀《Spring in action》搭建最簡單的MVC

現在還在用Struts嗎,是的,不說你在用Spring MVC,我都覺得不好意思了。前面的時候所謂的MVC模式中,C的角色交由Struts控制。而Spring MVC這樣叫了,字眼上大概知道這東西是幹什麼用的。之前是在哪裡看到有位大哥這樣說的。技術差別大,一個一個追逐下來很累

Spring MVC新手教程

erp -s sil troy .html 解釋 rand rtu wire 直接幹貨 model 考慮給用戶展示什麽。關註支撐業務的信息構成。構建成模型。 control 調用業務邏輯產生合適的數據以及傳遞數據給視圖用於呈獻; view怎樣對數據進行布局,以

spring boot學習系列

web服務器 應用程序 spring 控制器 做什麽 spring boot開發第一個應用程序1、spring boot是什麽?2、spring boot容易上手嗎?寫這篇文章技術文章,主要是記錄日常的學習以及理解。我們重新認識一下spring假設你受命使用spring開發一個簡單的hel

RabbitMq 實戰

rabbitmq spring boot (消費者處理消息)RabbitMq消息消費者服務 開發工具Idea和Spring boot來開發的。消息消費目前只是一個簡單的Demo,後續會處理成更智能一些。首先配置文件類,RabbitMqConfig,裏面配置一些用戶名和密碼嗨喲隊列信息。package com.