摘要:問題其他方案當(dāng)我們需要在多臺服務(wù)器部署多個不同的項目時,我們需要一個集中的配置信息管理和同步的工具。啟動之后通過命令管理。我們用的配置模板意思是遍歷這個目錄,生成格式。
在預(yù)生產(chǎn)環(huán)境跑了一年多,在此記錄和分享一下。
問題 & 其他方案當(dāng)我們需要在多臺服務(wù)器部署多個不同的項目時,我們需要一個集中的配置信息管理和同步的工具??紤]過的方案有:
用rsync同步.env文件:多個項目的配置略繁瑣,要ssh到服務(wù)器修改再同步
用Docker:集群部署比較方便,可以用圖形界面修改環(huán)境變量,但是更新環(huán)境變量要重啟容器,大部分項目沒遷移到Docker
下面看一下Consul + Consul Template的方案。
安裝Consul和Consul Template都提供了預(yù)編譯的可執(zhí)行文件,下載解壓即可。
啟動Consul:
consul agent -server -bootstrap -ui -bind
其他服務(wù)節(jié)點可以通過consul agent -join
啟動之后通過consul命令、RESTful API、Web UI管理Consul。
Consul KVConsul提供了一個分布式的鍵值對存儲,可以用來存儲應(yīng)用的動態(tài)配置信息,基本操作:
# put 設(shè)置一個KV對 consul kv put APP_DEBUG false # get 獲取 consul kv get APP_DEBUG # exprot 導(dǎo)出JSON consul kv export > data.json # import 導(dǎo)入JSON consul kv import @data.json # delete 刪除 consul kv delete APP_DEBUG
Consul KV支持目錄,可以通過/分隔key實現(xiàn),例如我們使用configs/
配置集中管理了,怎樣傳給Laravel呢?一個方法是在Laravel里用Consul的API獲取配置信息,第二個發(fā)放是在外部監(jiān)聽KV變化然后寫入到.env文件,Consul Template就是這樣的一個外部工具。
我們用的配置模板(.env.tpl):
{{ range ls "configs/crm" }} {{ .Key }}={{ .Value }}{{ end }}
意思是遍歷config/crm這個KV目錄,生成key=value格式。
運行:
## 格式: 模板文件:目標文件:更新后執(zhí)行的命令 consul-template --template /path/to/.env.tpl:/path/to/.env:"php /path/to/artisan config:cache"
就可以生成.env文件,并且持續(xù)監(jiān)聽變化,一個consul-template實例可以有多個--template多個參數(shù),可以為一臺服務(wù)器上多個項目生成配置文件。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/28932.html
摘要:二緣起對于一個普通的屌絲創(chuàng)業(yè)公司的屌絲項目來說,理論上來說是沒必要用太復(fù)雜的技術(shù)的,對新技術(shù)的克制也是碼農(nóng)的一個職業(yè)操守。 Docker出現(xiàn)后,容器技術(shù)在互聯(lián)網(wǎng)領(lǐng)域得到了空前的普及,無論是大公司還是屌絲創(chuàng)業(yè)公司的碼農(nóng)基本上都會在各種技術(shù)社區(qū)或者各種演講會議上了解到過相關(guān)技術(shù),我們作為一家屌絲創(chuàng)業(yè)公司也不例外,去年對Docker做了一番了解,并在年前測試了一些方案,今天在這里總結(jié)一下遇到...
摘要:二緣起對于一個普通的屌絲創(chuàng)業(yè)公司的屌絲項目來說,理論上來說是沒必要用太復(fù)雜的技術(shù)的,對新技術(shù)的克制也是碼農(nóng)的一個職業(yè)操守。 Docker出現(xiàn)后,容器技術(shù)在互聯(lián)網(wǎng)領(lǐng)域得到了空前的普及,無論是大公司還是屌絲創(chuàng)業(yè)公司的碼農(nóng)基本上都會在各種技術(shù)社區(qū)或者各種演講會議上了解到過相關(guān)技術(shù),我們作為一家屌絲創(chuàng)業(yè)公司也不例外,去年對Docker做了一番了解,并在年前測試了一些方案,今天在這里總結(jié)一下遇到...
摘要:二緣起對于一個普通的屌絲創(chuàng)業(yè)公司的屌絲項目來說,理論上來說是沒必要用太復(fù)雜的技術(shù)的,對新技術(shù)的克制也是碼農(nóng)的一個職業(yè)操守。 Docker出現(xiàn)后,容器技術(shù)在互聯(lián)網(wǎng)領(lǐng)域得到了空前的普及,無論是大公司還是屌絲創(chuàng)業(yè)公司的碼農(nóng)基本上都會在各種技術(shù)社區(qū)或者各種演講會議上了解到過相關(guān)技術(shù),我們作為一家屌絲創(chuàng)業(yè)公司也不例外,去年對Docker做了一番了解,并在年前測試了一些方案,今天在這里總結(jié)一下遇到...
摘要:前兩個數(shù)據(jù)業(yè)務(wù)相關(guān)的服務(wù)即下圖的,第三個項目就是的實現(xiàn)的負載均衡。這里后臺,前臺項目各啟動了三個實例,用戶訪問的時候,就會根據(jù)配置的負載均衡的策略,訪問其中一個。這一部分與之前我轉(zhuǎn)發(fā)的實現(xiàn)服務(wù)發(fā)現(xiàn)及網(wǎng)關(guān)其實也只是差了個網(wǎng)關(guān)和負載均衡。 一.簡介 上一篇只講了博客的前端問題,這一篇講一下后端的微服務(wù)搭建。項目的后端使用的thinkjs框架,在我之前的博客中已經(jīng)寫過,這里就不重點說明了。后...
閱讀 2728·2021-11-25 09:43
閱讀 2683·2021-11-22 09:34
閱讀 2963·2021-11-12 10:34
閱讀 1509·2021-10-20 13:46
閱讀 2356·2019-08-30 13:21
閱讀 988·2019-08-30 11:21
閱讀 542·2019-08-30 11:20
閱讀 2247·2019-08-29 17:20