日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

php etcd 服务发现,confd+etcd+nginx 实现简单服务发现

發布時間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php etcd 服务发现,confd+etcd+nginx 实现简单服务发现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 項目背景

隨著微服務的興起,大量接口服務化。當新的微服務加入或微服務的信息發生變更時,服務方如何通知周邊系統、使用方如何知道這些變更呢?

這時就需要服務的注冊配置和發現功能。

服務注冊配置——存儲的信息至少包括正在運行的服務的主機和端口信息

服務發現——允許其他用戶可以發現在服務注冊配置階段存儲的信息

二. Confd簡介

Confd是一個輕量級的配置管理工具。Confd通過讀取后端存儲的配置信息來動態更新對應的配置文件,對應的后端存儲可以是etcd、consul、vault、environment variables、redis、zookeeper、dynamodb、stackengine、rancher等,其中etcd的v3版本對應的存儲后端為etcdv3。目前常用的存儲是etcd。

三. etcd簡介

etcd是CoreOS團隊于2013年6月發起的開源項目,它的目標是構建一個高可用的分布式鍵值(key-value)數據庫。etcd內部采用raft協議作為一致性算法,etcd基于Go語言實現。

etcd作為服務發現系統,有以下的特點:

簡單:安裝配置簡單,而且提供了HTTP API進行交互,使用也很簡單

安全:支持SSL證書驗證

快速:根據官方提供的benchmark數據,單實例支持每秒2k+讀操作

可靠:采用raft算法,實現分布式系統數據的可用性和一致性

etcd項目地址:https://github.com/coreos/etcd/

四. etcd+conf+nginx 架構圖

五. 環境安裝(自己需要啟動etcd與nginx)

1.etcd

brew install etcd

2.nginx

brew install nginx

3.confd

請先在下載地址下載confd-0.16.0-darwin-amd64文件 并添加執行權限

六. 使用教程

編輯confd配置文件

mkdir -p /etc/confd/{conf.d,templates}

touch /etc/confd/conf.d/myconfig.toml

編輯myconfig.toml文件

[template]

//模板文件

src = "nginx.tmpl"

//生成nginx的配置目錄文件

dest = "/usr/local/nginx/conf/conf.d/upstream.conf"

//監控KEY的改變,改變會自動重新生成nginx配置并重啟

keys = [

"/portal",

"/portal-upstream",

"/openapi",

"/openapi-upstream",

"/gateway",

"/gateway-upstream",

]

owner = "root"//當前用戶

mode = "0644"

check_cmd = "nginx -t"//執行命令

reload_cmd = "nginx -s reload"//執行命令

配置用于生成upstream的模板文件

upstream {{getv "/portal"}} {

{{range getvs "/portal-upstream/*"}}

server {{.}};

{{end}}

}

upstream {{getv "/openapi"}} {

{{range getvs "/openapi-upstream/*"}}

server {{.}};

{{end}}

}

upstream {{getv "/gateway"}} {

{{range getvs "/gateway-upstream/*"}}

server {{.}};

{{end}}

}

修改nginx的配置文件

include /usr/local/nginx/conf/conf.d/*.conf

增加etcd數據

etcdctl set /portal portal

etcdctl set /portal-upstream/portal01 192.168.81.11:30400

etcdctl set /openapi openapi

etcdctl set /openapi-upstream/openapi01 192.168.81.11:30600

etcdctl set /gateway gateway

etcdctl set /gateway-upstream/gateway01 192.168.81.11:30000

啟動confd監控etcd

confd支持兩種運行方式,即daemon和onetime。在守護程序模式下,confd輪詢后端以進行更改,并在必要時更新目標配置文件。

confd -onetime -backend etcd -node http://127.0.0.1:2379

查看nginx是否生成配置文件

cat /usr/local/nginx/conf/conf.d/upstream.conf

upstream portal {

server 192.168.81.11:30400

}

upstream openapi {

server 192.168.81.11:30600

}

upstream gateway {

server 192.168.81.11:30000

}

本作品采用《CC 協議》,轉載必須注明作者和本文鏈接

總結

以上是生活随笔為你收集整理的php etcd 服务发现,confd+etcd+nginx 实现简单服务发现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。