日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 概述
  • 注冊中心
    • 注冊中心選型
    • CAP原理
    • Consul介紹
    • Consul Raft算法
  • Consul 基本使用
    • 注冊服務(wù)

概述

上篇說到構(gòu)建良好的架構(gòu),依托于基礎(chǔ)設(shè)施建設(shè)(自動(dòng)化測試、自動(dòng)化部署、服務(wù)監(jiān)控,服務(wù)發(fā)現(xiàn)、配置中心等等),決定成敗的往往是基礎(chǔ)設(shè)施建設(shè),所以從搭建一個(gè)注冊中心和配置中心開始我們新一階段的啟程。

注冊中心

微服務(wù)之注冊中心和配置中心Consul詳解

注冊中心選型

你有沒有思考過這樣一個(gè)問題,為什么會有這么多的注冊中心(etcd/ZooKeeper/Consul),選用那個(gè)最適合自己,是不是在選用的時(shí)候會眼花繚亂?

我在開始做的時(shí)候,自己也有很多困惑,將近3年的時(shí)候里我都在不停的學(xué)習(xí),但是還是有很多不同的框架和產(chǎn)品,后來我明白了其中的原因,他們就像生活中的可樂、果汁、和牛奶一樣,你在使用的時(shí)候選取你的編程語言(Java、Go、PHP),程序易接入的就好了。

產(chǎn)生注冊中心五花八門的原因是因?yàn)檎Z言很多,都想打造最適合自己的體系生態(tài),我選擇Consul為大家講解,因?yàn)樗惭b和接入都比較方便。

不用被這些假象所困擾,多學(xué)習(xí)網(wǎng)絡(luò)和系統(tǒng)的底層原理,萬變不離其宗,技術(shù)人應(yīng)該是給出解決方案。

CAP原理

  • 一致性: 所有節(jié)點(diǎn)在同一時(shí)間具有相同的數(shù)據(jù)
  • 可用性:保證每個(gè)請求不管成功或者失敗都有響應(yīng)
  • 分區(qū)容錯(cuò):系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運(yùn)作
Feature Consul ZooKeeper etcd
服務(wù)健康檢查 服務(wù)狀態(tài)、內(nèi)存、硬盤 長鏈接、Keepalive 鏈接心跳
多數(shù)據(jù)中心 支持
K/V存儲服務(wù) 支持 支持 支持
一致性 Raft Paxos Raft
CAP定理 CP CP CP
使用接口(多語言能力) Http/Dns 客戶端 Http/Grpc
安全 acl/https acl Https支持

Consul介紹

使用PHP、和Go編寫,使用Consul作為注冊中心和配置中心比較方便,所以我選用的是Consul。

  • 采用Raft算法實(shí)現(xiàn),有服務(wù)發(fā)現(xiàn),Key/Value存儲,可以做配置中心使用,有健康檢查,并提供了web管理頁面。

Consul 內(nèi)部端口說明:

  • TCP/8300:8300端口用于服務(wù)器節(jié)點(diǎn),客戶端通過RPC協(xié)議調(diào)用服務(wù)端節(jié)點(diǎn)。
  • TCP/UDP/8301: 8301端口用于單個(gè)數(shù)據(jù)中心所有節(jié)點(diǎn)之間的互相通信,即對LAN池信息的同步,它使得整個(gè)數(shù)據(jù)中心能夠自動(dòng)的發(fā)現(xiàn)服務(wù)器地址,分布式監(jiān)測點(diǎn)的故障,事件廣播。
  • TCP/UDP/8302: 8302端口用于單個(gè)或多個(gè)數(shù)據(jù)中心之間的服務(wù)器節(jié)點(diǎn)的信息同步(WAL池信息的同步),它針對互聯(lián)網(wǎng)的高延遲進(jìn)行了優(yōu)化,能夠?qū)崿F(xiàn)跨數(shù)據(jù)中心請求。
  • HTTP/8500: 8500端口基于Http服務(wù),用于Api接口和Ui訪問。
  • DNS/8600: 8600端口作為DNS服務(wù)器,它使得我們可以通過節(jié)點(diǎn)查詢節(jié)點(diǎn)信息。

Consul Raft算法

  • 解決了分布式中領(lǐng)導(dǎo)選舉和一致性問題
  • Raft算法是比較出名的共識算法,比如Redis的哨兵、Consul

Consul 集群的特點(diǎn):

  • 任期機(jī)制,Raft是終身任期的,它永遠(yuǎn)都是領(lǐng)導(dǎo)者
  • 心跳機(jī)制,它決定領(lǐng)導(dǎo)者是否能有效的和跟隨者通信
  • 隨機(jī)的選舉超時(shí)時(shí)間,因?yàn)槭请S機(jī)的所以決定了不會再同一時(shí)間進(jìn)行選舉
  • 先到先得,一屆任期內(nèi),先收到誰的投票就會給誰,剩下的請求一律拒絕
  • 過半機(jī)制,收到一半的投票才會

Consul 集群的角色:

  • Followers 追隨者:接受到領(lǐng)導(dǎo)者發(fā)送的消息,當(dāng)心跳超時(shí)時(shí),主動(dòng)推薦自己成為候選人。
  • Candidate 候選人:發(fā)送Rpc消息,讓其它節(jié)點(diǎn)投票給自己,當(dāng)投票超過半數(shù)時(shí),成為領(lǐng)導(dǎo)者。
  • Leader 領(lǐng)導(dǎo)者:向其他節(jié)點(diǎn)發(fā)送心跳,只要心跳不超時(shí),一直為領(lǐng)導(dǎo)者。

算法的詳情可以點(diǎn)擊官網(wǎng)視頻查看

Consul 基本使用

注冊服務(wù)

1.注冊服務(wù)是Consul最基礎(chǔ)的服務(wù),點(diǎn)擊查看官網(wǎng)Api

PUT 192.168.88.144:8500/v1/agent/service/register
{
    "Name":"audio",
    "Id":"audio",
    "Tags":[
        "v2",
        "primary"
    ],
    "Address":"192.168.88.144",
    "Port":8500,
    "Check":{
        "HTTP":"http://192.168.88.144:8500",
        "Interval":"10s"
    }
}
{
  "id": "web",
  "name": "web",
  "port": 80,
  "check": {
    "name": "ping check",
    "args": ["ping", "-c1", "test.stark.com"],
    "interval": "30s",
    "status": "passing"
  }
}

2.發(fā)現(xiàn)服務(wù)

GET http://192.168.88.144:8500/v1/health/service/audio
[
    {
        "Node": {
            "ID": "38779dca-bffd-e399-6597-266aff68132c",
            "Node": "server01-virtual-machine",
            "Address": "127.0.0.1",
            "Datacenter": "dc1",
            "TaggedAddresses": {
                "lan": "127.0.0.1",
                "lan_ipv4": "127.0.0.1",
                "wan": "127.0.0.1",
                "wan_ipv4": "127.0.0.1"
            },
            "Meta": {
                "consul-network-segment": ""
            },
            "CreateIndex": 13,
            "ModifyIndex": 17
        },
        "Service": {
            "ID": "audio",
            "Service": "audio",
            "Tags": [
                "v2",
                "primary"
            ],
            "Address": "192.168.88.144",
            "TaggedAddresses": {
                "lan_ipv4": {
                    "Address": "192.168.88.144",
                    "Port": 8500
                },
                "wan_ipv4": {
                    "Address": "192.168.88.144",
                    "Port": 8500
                }
            },
            "Meta": null,
            "Port": 8500,
            // ...
}
]

Service API Service 相關(guān)的 API 都在 /v1/agent/service 下:

  • /agent/services:該端點(diǎn)返回在本地代理程序中注冊的所有服務(wù);
  • /agent/service/{service_id}:返回在本地代理上注冊的單個(gè)服務(wù)實(shí)例的完整服務(wù)定義;
  • /agent/health/service/name/{service_name}/
  • /agent/health/service/id/{service_id}:通過名稱或id檢索本地代理上的聚合服務(wù)狀態(tài);
  • /agent/service/register:注冊服務(wù);
  • /agent/service/deregister/{service_id} :注銷服務(wù);
  • /agent/service/maintenance/{service_id}:該端點(diǎn)將給定的服務(wù)置于“維護(hù)模式”,在維護(hù)模式下,該服務(wù)將被標(biāo)記為不可用,并且不會出現(xiàn)在DNS或API查詢中。

關(guān)于更多Consul的使用,查詢官方文檔吧。

以上就是微服務(wù)之注冊中心和配置中心Consul詳解的詳細(xì)內(nèi)容,更多關(guān)于微服務(wù)注冊配置Consul的資料請關(guān)注其它相關(guān)文章!

分享到:
標(biāo)簽:中心 微服 服務(wù)器 詳解 配置
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定