Spring Cloud 系列之 Apollo 配置中心(一)
背景
隨著程式功能的日益複雜,程式的配置日益增多:各種功能的開關、引數的配置、伺服器的地址等等。
對程式配置的期望值也越來越高:配置修改後實時生效,灰度釋出,分環境、分叢集管理配置,完善的許可權、稽核機制等等。
在這樣的大環境下,傳統的通過配置檔案、資料庫等方式已經越來越無法滿足開發人員對配置管理的需求。
Apollo 配置中心應運而生!Apollo - 一個可靠的配置管理系統。
Apollo 介紹
Apollo(阿波羅)是攜程框架部門研發的分散式配置中心,能夠集中化管理應用不同環境、不同叢集的配置,配置修改後能夠實時推送到應用端,並且具備規範的許可權、流程治理等特性,適用於微服務配置管理場景。服務端基於 Spring Boot 和 Spring Cloud 開發,打包後可以直接執行,不需要額外安裝 Tomcat 等應用容器。
Apollo 支援 4 個維度管理 Key-Value 格式的配置:
application (應用) environment (環境) cluster (叢集) namespace (名稱空間 Namespace 是配置項的集合,類似於一個配置檔案的概念)
同時,Apollo 基於開源模式開發,開源地址:https://github.com/ctripcorp/apollo
官網文件:https://github.com/ctripcorp/apollo/wiki/Quick-Start
演示環境(Demo):
http://106.54.227.205/ 賬號/密碼:apollo/admin
上圖是Apollo配置中心中一個專案的配置首頁
在頁面左上方的環境列表模組展示了所有的環境和叢集,使用者可以隨時切換。 頁面中央展示了兩個namespace(application和FX.apollo)的配置資訊,預設按照表格模式展示、編輯。使用者也可以切換到文字模式,以檔案形式檢視、編輯。 頁面上可以方便地進行釋出、回滾、灰度、授權、檢視更改歷史和釋出歷史等操作。
Apollo 核心概念
「application (應用)」 這個很好理解,就是實際使用配置的應用,Apollo客戶端在執行時需要知道當前應用是誰,從而可以去獲取對應的配置 每個應用都需要有唯一的身份標識 -- appId,我們認為應用身份是跟著程式碼走的,所以需要在程式碼中配置,具體資訊請參見Java客戶端使用指南。
「environment (環境)」 配置對應的環境,Apollo客戶端在執行時需要知道當前應用處於哪個環境,從而可以去獲取應用的配置 我們認為環境和程式碼無關,同一份程式碼部署在不同的環境就應該能夠獲取到不同環境的配置 所以環境預設是通過讀取機器上的配置(server.properties中的env屬性)指定的,不過為了開發方便,我們也支援執行時通過System Property等指定,具體資訊請參見Java客戶端使用指南。
「cluster (叢集)」 一個應用下不同例項的分組,比如典型的可以按照資料中心分,把上海機房的應用例項分為一個叢集,把北京機房的應用例項分為另一個叢集。 對不同的cluster,同一個配置可以有不一樣的值,如zookeeper地址。 叢集預設是通過讀取機器上的配置(server.properties中的idc屬性)指定的,不過也支援執行時通過System Property指定,具體資訊請參見Java客戶端使用指南。
「namespace (名稱空間)」 一個應用下不同配置的分組,可以簡單地把namespace類比為檔案,不同型別的配置存放在不同的檔案中,如資料庫配置檔案,RPC配置檔案,應用自身的配置檔案等 應用可以直接讀取到公共元件的配置namespace,如DAL,RPC等 應用也可以通過繼承公共元件的配置namespace來對公共元件的配置做調整,如DAL的初始資料庫連線數
Apollo 特性
「統一管理不同環境、不同叢集的配置」 Apollo提供了一個統一介面集中式管理不同環境(environment)、不同叢集(cluster)、不同名稱空間(namespace)的配置。 同一份程式碼部署在不同的叢集,可以有不同的配置,比如zk的地址等 通過名稱空間(namespace)可以很方便的支援多個不同應用共享同一份配置,同時還允許應用對共享的配置進行覆蓋 配置介面支援多語言(中文,English)
「配置修改實時生效(熱釋出)」 使用者在Apollo修改完配置併發布後,客戶端能實時(1秒)接收到最新的配置,並通知到應用程式。
「版本釋出管理」 所有的配置釋出都有版本概念,從而可以方便的支援配置的回滾。
「灰度釋出」 支援配置的灰度釋出,比如點了釋出後,只對部分應用例項生效,等觀察一段時間沒問題後再推給所有應用例項。
「許可權管理、釋出稽核、操作審計」 應用和配置的管理都有完善的許可權管理機制,對配置的管理還分為了編輯和釋出兩個環節,從而減少人為的錯誤。 所有的操作都有審計日誌,可以方便的追蹤問題。
「客戶端配置資訊監控」 可以方便的看到配置在被哪些例項使用
「提供Java和.Net原生客戶端」 提供了Java和.Net的原生客戶端,方便應用整合 支援Spring Placeholder,Annotation和Spring Boot的ConfigurationProperties,方便應用使用(需要Spring 3.1.1+) 同時提供了Http介面,非Java和.Net應用也可以方便的使用
「提供開放平臺API」 Apollo自身提供了比較完善的統一配置管理介面,支援多環境、多資料中心配置管理、許可權、流程治理等特性。 不過Apollo出於通用性考慮,對配置的修改不會做過多限制,只要符合基本的格式就能夠儲存。 在我們的調研中發現,對於有些使用方,它們的配置可能會有比較複雜的格式,如xml, json,需要對格式做校驗。 還有一些使用方如DAL,不僅有特定的格式,而且對輸入的值也需要進行校驗後方可儲存,如檢查資料庫、使用者名稱和密碼是否匹配。 對於這類應用,Apollo支援應用方通過開放介面在Apollo進行配置的修改和釋出,並且具備完善的授權和許可權控制
「部署簡單」 配置中心作為基礎服務,可用性要求非常高,這就要求Apollo對外部依賴儘可能地少 目前唯一的外部依賴是MySQL,所以部署非常簡單,只要安裝好Java和MySQL就可以讓Apollo跑起來 Apollo還提供了打包指令碼,一鍵就可以生成所有需要的安裝包,並且支援自定義執行時引數
Apollo 總體設計
官方文件:https://github.com/ctripcorp/apollo/wiki/Apollo配置中心設計
架構模組
上圖簡要描述了 Apollo 的總體設計,我們可以從下往上看:
Config Service提供配置的讀取、推送等功能,服務物件是Apollo客戶端(我們自己的微服務應用) Admin Service提供配置的修改、釋出等功能,服務物件是Apollo Portal(管理介面) Config Service和Admin Service都是多例項、無狀態部署,所以需要將自己註冊到Eureka中並保持心跳 在Eureka之上我們架了一層Meta Server用於封裝Eureka的服務發現介面 Client通過域名訪問Meta Server獲取Config Service服務列表(IP+Port),而後直接通過IP+Port訪問服務,同時在Client側會做load balance、錯誤重試 Portal通過域名訪問Meta Server獲取Admin Service服務列表(IP+Port),而後直接通過IP+Port訪問服務,同時在Portal側會做load balance、錯誤重試 為了簡化部署,我們實際上會把Config Service、Eureka和Meta Server三個邏輯角色部署在同一個JVM程序中
1.3 各模組概要介紹
1.3.1 Config Service
提供配置獲取介面 提供配置更新推送介面(基於Http long polling) 服務端使用Spring DeferredResult實現非同步化,從而大大增加長連線數量 目前使用的tomcat embed預設配置是最多10000個連線(可以調整),使用了4C8G的虛擬機器實測可以支撐10000個連線,所以滿足需求(一個應用例項只會發起一個長連線)。
介面服務物件為Apollo客戶端
1.3.2 Admin Service
提供配置管理介面 提供配置修改、釋出等介面 介面服務物件為Portal
1.3.3 Meta Server
Portal通過域名訪問Meta Server獲取Admin Service服務列表(IP+Port) Client通過域名訪問Meta Server獲取Config Service服務列表(IP+Port) Meta Server從Eureka獲取Config Service和Admin Service的服務資訊,相當於是一個Eureka Client 增設一個Meta Server的角色主要是為了封裝服務發現的細節,對Portal和Client而言,永遠通過一個Http介面獲取Admin Service和Config Service的服務資訊,而不需要關心背後實際的服務註冊和發現元件 Meta Server只是一個邏輯角色,在部署時和Config Service是在一個JVM程序中的,所以IP、埠和Config Service一致
1.3.4 Eureka
基於Eureka和Spring Cloud Netflix提供服務註冊和發現 Config Service和Admin Service會向Eureka註冊服務,並保持心跳 為了簡單起見,目前Eureka在部署時和Config Service是在一個JVM程序中的(通過Spring Cloud Netflix)
1.3.5 Portal
提供Web介面供使用者管理配置 通過Meta Server獲取Admin Service服務列表(IP+Port),通過IP+Port訪問服務 在Portal側做load balance、錯誤重試
1.3.6 Client
Apollo提供的客戶端程式,為應用提供配置獲取、實時更新等功能 通過Meta Server獲取Config Service服務列表(IP+Port),通過IP+Port訪問服務 在Client側做load balance、錯誤重試
服務端
上圖簡要描述了配置釋出的大致過程:
使用者在Portal操作配置釋出 Portal呼叫Admin Service的介面操作釋出 Admin Service釋出配置後,傳送ReleaseMessage給各個Config Service Config Service收到ReleaseMessage後,通知對應的客戶端
客戶端
上圖簡要描述了Apollo客戶端的實現原理:
客戶端和服務端保持了一個長連線,從而能第一時間獲得配置更新的推送。(通過Http Long Polling實現) 客戶端還會定時從Apollo配置中心服務端拉取應用的最新配置。 這是一個fallback機制,為了防止推送機制失效導致配置不更新 客戶端定時拉取會上報本地版本,所以一般情況下,對於定時拉取的操作,服務端都會返回304 - Not Modified 定時頻率預設為每5分鐘拉取一次,客戶端也可以通過在執行時指定System Property: apollo.refreshInterval
來覆蓋,單位為分鐘。
客戶端從Apollo配置中心服務端獲取到應用的最新配置後,會儲存在記憶體中 客戶端會把從服務端獲取到的配置在本地檔案系統快取一份 在遇到服務不可用,或網路不通的時候,依然能從本地恢復配置
應用程式可以從Apollo客戶端獲取最新的配置、訂閱配置更新通知
環境準備
點選連結觀看:Apollo 搭建服務端視訊(獲取更多請關注公眾號「哈嘍沃德先生」)
Java
Apollo 服務端:1.8+ Apollo 客戶端:1.7+
由於需要同時啟動服務端和客戶端,所以建議安裝Java 1.8+。
MySQL
版本要求:5.6.5+
Apollo的表結構對timestamp
使用了多個default宣告,所以需要5.6.5以上版本。
下載Quick Start安裝包
Apollo 給我們準備好了一個Quick Start安裝包,大家只需要下載到本地,就可以直接使用,免去了編譯、打包過程。
安裝包共50M,如果訪問github網速不給力的話,可以從百度網盤下載。
從Github下載 checkout或下載apollo-build-scripts專案 由於Quick Start專案比較大,所以放在了另外的repository,請注意專案地址 https://github.com/nobodyiam/apollo-build-scripts
從百度網盤下載 通過https://github.com/ctripcorp/apollo/wiki/Quick-Start#13-下載quick-start安裝包頁面的網盤連結下載 下載到本地後,在本地解壓apollo-quick-start.zip
為啥安裝包要58M這麼大? 因為這是一個可以自啟動的jar包,裡面包含了所有依賴jar包以及一個內建的tomcat容器
安裝 Apollo
建立資料庫
Apollo 服務端共需要兩個資料庫:ApolloPortalDB
和ApolloConfigDB
,我們把資料庫、表的建立和樣例資料都分別準備了 sql 檔案,只需要匯入資料庫即可。
❝注意:如果你本地已經建立過Apollo資料庫,請注意備份資料。我們準備的sql檔案會清空Apollo相關的表。
❞
建立 ApolloPortalDB 資料庫
通過各種MySQL客戶端匯入sql/apolloportaldb.sql即可。
建立 ApolloConfigDB 資料庫
通過各種MySQL客戶端匯入sql/apolloconfigdb.sql即可。
配置資料庫連線資訊
Apollo 服務端需要知道如何連線到你前面建立的資料庫,所以需要編輯demo.sh,修改 ApolloPortalDB 和 ApolloConfigDB 相關的資料庫連線串資訊。
❝注意:填入的使用者需要具備對 ApolloPortalDB 和 ApolloConfigDB 資料的讀寫許可權。
❞
#apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=使用者名稱
apollo_config_db_password=密碼(如果沒有密碼,留空即可)
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=使用者名稱
apollo_portal_db_password=密碼(如果沒有密碼,留空即可)
❝注意:不要修改 demo.sh 的其它部分
❞
搭建服務端
確保埠未被佔用
Quick Start指令碼會在本地啟動3個服務,分別使用8070, 8080, 8090埠,請確保這3個埠當前沒有被使用。
執行啟動指令碼
./demo.sh start
Apollo 提供的指令碼檔案為 .sh
檔案,如果你的安裝環境是在 Linux 系統下直接執行以上命令即可,如果你想在 Windows 環境下執行該指令碼,先安裝 Git 然後在 demo.sh
所在目錄下滑鼠右鍵點選 Git Bash Here
,然後再通過以上命令執行指令碼即可。
當看到如下輸出後,就說明啟動成功了!
==== starting service ====
Service logging file is ./service/apollo-service.log
Started [10768]
Waiting for config service startup.......
Config service started. You may visit http://localhost:8080 for service status now!
Waiting for admin service startup....
Admin service started
==== starting portal ====
Portal logging file is ./portal/apollo-portal.log
Started [10846]
Waiting for portal startup......
Portal started. You can visit http://localhost:8070 now!
相關推薦
Spring Cloud 系列之 Apollo 配置中心(一)
背景
隨著程式功能的日益複雜,程式的配置日益增多:各種功能的開關、引數的配置、伺服器的地址等等。
對程式配置的期望值也越來越高:配置修改後實時生效,灰度釋出,分環境、分叢集管理配置,完善的許可權、稽核機制等等。
在這樣的大環境下,傳統的通過配置檔案、資料庫等方式已經越來越無法滿足開發人員對配置管理
Spring Cloud 系列之 Apollo 配置中心(二)
本篇文章為系列文章,未讀第一集的同學請猛戳這裡:Spring Cloud 系列之 Apollo 配置中心(一)
本篇文章講解 Apollo 部門管理、使用者管理、配置管理、叢集管理。
點選連結觀看:Apollo 部門管理、使用者管理、配置管理、叢集管理視訊(獲取更多請關注公眾號「哈嘍沃德先生」)
部門及使
Spring Cloud 系列之 Apollo 配置中心(四)
本篇文章為系列文章,未讀前幾集的同學請猛戳這裡:
Spring Cloud 系列之 Apollo 配置中心(一)Spring Cloud 系列之 Apollo 配置中心(二)Spring Cloud 系列之 Apollo 配置中心(三)
本篇文章講解 Apollo 高可用環境搭建,灰度釋出,教大家搭建企業中
Spring Cloud 系列之 Config 配置中心(一)
## 服務配置現狀
配置檔案是我們再熟悉不過的,在微服務系統中,每個微服務不僅僅只有程式碼,還需要**連線其他資源**,例如資料庫的配置或功能性的開關 MySQL、Redis 、Security 等相關的配置。除了專案執行的基礎配置之外,還有一些配置是與我們業務有關係的,比如說七牛儲存、簡訊和郵
Spring Cloud 系列之 Config 配置中心(二)
本篇文章為系列文章,未讀第一集的同學請猛戳這裡:Spring Cloud 系列之 Config 配置中心(一)
本篇文章講解 Config 如何實現配置中心自動重新整理。
配置中心自動重新整理
點選連結觀看:配置中心自動重新整理視訊(獲取更多請關注公眾號「哈嘍沃德先生」)
Spring Cloud Con
Spring Cloud 系列之 Config 配置中心(三)
本篇文章為系列文章,未讀前幾集的同學請猛戳這裡:
Spring Cloud 系列之 Config 配置中心(一)Spring Cloud 系列之 Config 配置中心(二)
本篇文章講解 Config 如何實現配置中心加解密,配置中心使用者安全認證。
配置中心加解密
考慮這樣一個問題:所有的配置檔案都
Spring Cloud 系列之 Consul 配置中心
前面我們已經學習過 Spring Cloud Config 了:
Spring Cloud 系列之 Config 配置中心(一)Spring Cloud 系列之 Config 配置中心(二)Spring Cloud 系列之 Config 配置中心(三)
它提供了配置中心的功能,但是需要配合 git、svn
Spring Cloud微服架構之分散式配置中心(續)
本文接之前的《Spring Cloud微服架構之分散式配置中心》,繼續來說說Spring Cloud Config的使用。
先來回顧一下,在前文中我們完成了什麼:
構建了config-server,連線到Git倉庫
在Git上建立了一個config-repo目錄,用來儲
Spring Cloud入門:分散式配置中心(Spring Cloud Config)
文章例項使用的Spring Cloud版本為Finchley.SR1,Spring Boot版本為2.0.4。
1 Spring Cloud Config
Spring Cloud Config是Spring Cloud團隊建立的一個全新專案,用來為分散式系統中的基礎設
spring cloud系列教程(13)---配置中心初步
給大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油
1.微服務面臨的問題,配置檔案
微服務意味著要將單體應用中的業務拆分成一個個子服務,每個子服務的粒度相對較小,因此係統中會出現大量的服務。由於每個服務都需要必要的配置資訊才能執行,所以一套集中式的,動態的配置管理設
spring cloud config 配置中心(一)
微服務的基礎服務之一,可以使用Apollo 代替,後續補充,也可以自己搭建 https://github.com/ctr
Spring Cloud 系列之 ZooKeeper 註冊中心
## 什麼是註冊中心
服務註冊中心是服務實現服務化管理的核心元件,類似於目錄服務的作用,主要用來儲存服務資訊,譬如提供者 url 串、路由資訊等。服務註冊中心是微服務架構中最基礎的設施之一。
註冊中心可以說是微服務架構中的“通訊錄”,它記錄了服務和服務地址的對映關係。在分散式架構中,服務會
spring-cloud學習筆記Eureka註冊中心(四)修改成IP顯示
修改配置類
eureka:
instance:
#使用IP訪問註冊中心
prefer-ip-address: true
#在註冊中心status的時候顯示的格式,這裡是 ip:埠
instance-id: ${spring.cloud.c
Spring Cloud Zuul中路由配置細節(14)
轉自 https://blog.csdn.net/u012702547/article/details/77823434
這個系列我感覺真的太好了,可以一步一步的瞭解spring cloud 的搭建以及更深層次的東西,對想學這門技術的朋友真的入門特別的快,感謝這位大哥的分享,我也會持續
Spring MVC系列之模型繫結(SpringBoot)(七)
前言
上一節我們在SpringBoot中啟用了Spring MVC最終輸出了HelloWorld,本節我們來講講Spring MVC中的模型繫結,這個名稱來源於.NET或.NET Core,不知是否恰當,我們暫且這樣理解吧。
@RequestParam VS @PathVariable
&n
Spring Cloud 入門Eureka -Consumer服務消費(一)
ppi package AR con .so 1.8 Coding ng- int 這裏介紹:LoadBalancerClient接口,它是一個負載均衡客戶端的抽象定義,下面我們就看看如何使用Spring Cloud提供的負載均衡器客戶端接口來實現服務的消費。
引用之前的文
Docker系列之CentOS7安裝Docker(一)
add 程序 發布 更新 介紹 entos star alt ice 0、前言
整體架構目錄:ASP.NET Core分布式項目實戰-目錄
一、瞎扯淡(只講有用的)
感興趣的同學可以上網搜索一下docker具體的介紹。我這邊主要介紹偏實戰的內容,不喜勿噴,有問題也請
spring原始碼學習之路---IOC初探(一)
首先把spring原始碼匯入,怎麼匯入百度下。 首先我們來說一下IOC,IOC是spring最核心的理念,包括AOP也要屈居第二,那麼IOC到底是什麼呢,四個字,控制反轉。
網上有不少是這麼解釋IOC的,說IOC是將物件的建立和依賴關係交給容器,這句話我相信不少人都知道,在我個人的理解
Spring Cloud---Zuul閘道器篇( 一)-----Zuul請求流程解析(簡化)
前述:Spring Zuul是Spring微服務的閘道器,作為微服務的入口,用來統一管理請求。Zuul不是把閘道器的所有事情都做了,而是暴露了當前請求的整個過程生命週期的處理。實際閘道器的實現邏輯還是需要我們自己處理,在解析完Zuul後我會提供一個閘道器限流的方案例項,並對其做擴充套件,以為
Spring Boot開發之明月千城(一)
D:\soft\Java\jdk1.7.0_04\bin\java -Didea.launcher.port=7532 "-Didea.launcher.bin.path=D:\idea\ideainstall\IntelliJ IDEA 14.0.2\bin" -Dfile.encoding=UTF-8 -
Spring Cloud 系列之 Apollo 配置中心(一)
背景 隨著程式功能的日益複雜,程式的配置日益增多:各種功能的開關、引數的配置、伺服器的地址等等。 對程式配置的期望值也越來越高:配置修改後實時生效,灰度釋出,分環境、分叢集管理配置,完善的許可權、稽核機制等等。 在這樣的大環境下,傳統的通過配置檔案、資料庫等方式已經越來越無法滿足開發人員對配置管理
Spring Cloud 系列之 Apollo 配置中心(二)
本篇文章為系列文章,未讀第一集的同學請猛戳這裡:Spring Cloud 系列之 Apollo 配置中心(一) 本篇文章講解 Apollo 部門管理、使用者管理、配置管理、叢集管理。 點選連結觀看:Apollo 部門管理、使用者管理、配置管理、叢集管理視訊(獲取更多請關注公眾號「哈嘍沃德先生」) 部門及使
Spring Cloud 系列之 Apollo 配置中心(四)
本篇文章為系列文章,未讀前幾集的同學請猛戳這裡: Spring Cloud 系列之 Apollo 配置中心(一)Spring Cloud 系列之 Apollo 配置中心(二)Spring Cloud 系列之 Apollo 配置中心(三) 本篇文章講解 Apollo 高可用環境搭建,灰度釋出,教大家搭建企業中
Spring Cloud 系列之 Config 配置中心(一)
## 服務配置現狀 配置檔案是我們再熟悉不過的,在微服務系統中,每個微服務不僅僅只有程式碼,還需要**連線其他資源**,例如資料庫的配置或功能性的開關 MySQL、Redis 、Security 等相關的配置。除了專案執行的基礎配置之外,還有一些配置是與我們業務有關係的,比如說七牛儲存、簡訊和郵
Spring Cloud 系列之 Config 配置中心(二)
本篇文章為系列文章,未讀第一集的同學請猛戳這裡:Spring Cloud 系列之 Config 配置中心(一) 本篇文章講解 Config 如何實現配置中心自動重新整理。 配置中心自動重新整理 點選連結觀看:配置中心自動重新整理視訊(獲取更多請關注公眾號「哈嘍沃德先生」) Spring Cloud Con
Spring Cloud 系列之 Config 配置中心(三)
本篇文章為系列文章,未讀前幾集的同學請猛戳這裡: Spring Cloud 系列之 Config 配置中心(一)Spring Cloud 系列之 Config 配置中心(二) 本篇文章講解 Config 如何實現配置中心加解密,配置中心使用者安全認證。 配置中心加解密 考慮這樣一個問題:所有的配置檔案都
Spring Cloud 系列之 Consul 配置中心
前面我們已經學習過 Spring Cloud Config 了: Spring Cloud 系列之 Config 配置中心(一)Spring Cloud 系列之 Config 配置中心(二)Spring Cloud 系列之 Config 配置中心(三) 它提供了配置中心的功能,但是需要配合 git、svn
Spring Cloud微服架構之分散式配置中心(續)
本文接之前的《Spring Cloud微服架構之分散式配置中心》,繼續來說說Spring Cloud Config的使用。 先來回顧一下,在前文中我們完成了什麼: 構建了config-server,連線到Git倉庫 在Git上建立了一個config-repo目錄,用來儲
Spring Cloud入門:分散式配置中心(Spring Cloud Config)
文章例項使用的Spring Cloud版本為Finchley.SR1,Spring Boot版本為2.0.4。 1 Spring Cloud Config Spring Cloud Config是Spring Cloud團隊建立的一個全新專案,用來為分散式系統中的基礎設
spring cloud系列教程(13)---配置中心初步
給大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油 1.微服務面臨的問題,配置檔案 微服務意味著要將單體應用中的業務拆分成一個個子服務,每個子服務的粒度相對較小,因此係統中會出現大量的服務。由於每個服務都需要必要的配置資訊才能執行,所以一套集中式的,動態的配置管理設
spring cloud config 配置中心(一)
微服務的基礎服務之一,可以使用Apollo 代替,後續補充,也可以自己搭建 https://github.com/ctr
Spring Cloud 系列之 ZooKeeper 註冊中心
## 什麼是註冊中心 服務註冊中心是服務實現服務化管理的核心元件,類似於目錄服務的作用,主要用來儲存服務資訊,譬如提供者 url 串、路由資訊等。服務註冊中心是微服務架構中最基礎的設施之一。 註冊中心可以說是微服務架構中的“通訊錄”,它記錄了服務和服務地址的對映關係。在分散式架構中,服務會
spring-cloud學習筆記Eureka註冊中心(四)修改成IP顯示
修改配置類 eureka: instance: #使用IP訪問註冊中心 prefer-ip-address: true #在註冊中心status的時候顯示的格式,這裡是 ip:埠 instance-id: ${spring.cloud.c
Spring Cloud Zuul中路由配置細節(14)
轉自 https://blog.csdn.net/u012702547/article/details/77823434 這個系列我感覺真的太好了,可以一步一步的瞭解spring cloud 的搭建以及更深層次的東西,對想學這門技術的朋友真的入門特別的快,感謝這位大哥的分享,我也會持續
Spring MVC系列之模型繫結(SpringBoot)(七)
前言 上一節我們在SpringBoot中啟用了Spring MVC最終輸出了HelloWorld,本節我們來講講Spring MVC中的模型繫結,這個名稱來源於.NET或.NET Core,不知是否恰當,我們暫且這樣理解吧。 @RequestParam VS @PathVariable &n
Spring Cloud 入門Eureka -Consumer服務消費(一)
ppi package AR con .so 1.8 Coding ng- int 這裏介紹:LoadBalancerClient接口,它是一個負載均衡客戶端的抽象定義,下面我們就看看如何使用Spring Cloud提供的負載均衡器客戶端接口來實現服務的消費。 引用之前的文
Docker系列之CentOS7安裝Docker(一)
add 程序 發布 更新 介紹 entos star alt ice 0、前言 整體架構目錄:ASP.NET Core分布式項目實戰-目錄 一、瞎扯淡(只講有用的) 感興趣的同學可以上網搜索一下docker具體的介紹。我這邊主要介紹偏實戰的內容,不喜勿噴,有問題也請
spring原始碼學習之路---IOC初探(一)
首先把spring原始碼匯入,怎麼匯入百度下。 首先我們來說一下IOC,IOC是spring最核心的理念,包括AOP也要屈居第二,那麼IOC到底是什麼呢,四個字,控制反轉。 網上有不少是這麼解釋IOC的,說IOC是將物件的建立和依賴關係交給容器,這句話我相信不少人都知道,在我個人的理解
Spring Cloud---Zuul閘道器篇( 一)-----Zuul請求流程解析(簡化)
前述:Spring Zuul是Spring微服務的閘道器,作為微服務的入口,用來統一管理請求。Zuul不是把閘道器的所有事情都做了,而是暴露了當前請求的整個過程生命週期的處理。實際閘道器的實現邏輯還是需要我們自己處理,在解析完Zuul後我會提供一個閘道器限流的方案例項,並對其做擴充套件,以為
Spring Boot開發之明月千城(一)
D:\soft\Java\jdk1.7.0_04\bin\java -Didea.launcher.port=7532 "-Didea.launcher.bin.path=D:\idea\ideainstall\IntelliJ IDEA 14.0.2\bin" -Dfile.encoding=UTF-8 -