Kong整合Consul - Kong最佳實(shí)踐

整合Kong和Consul

一、先裝個(gè)Consul拟枚,參考:Consul 快速入門
注意事項(xiàng):?jiǎn)?dòng)時(shí),可以添加 -dns-port=53 這樣就可以走默認(rèn)的DNS端口了众弓。

二恩溅、然后裝個(gè)Kong,參考:Kong的簡(jiǎn)介和安裝使用Docker安裝Kong
注意事項(xiàng):如果使用docker方式執(zhí)行谓娃,網(wǎng)絡(luò)需要使用host方式脚乡。
附Docker執(zhí)行方式:

[root@local12 ~]# docker run -d --name kong-database  \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" postgres:9.6 

[root@local12 ~]# docker run --rm  \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=192.168.56.112" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database"  \
kong:0.13.1-centos  kong migrations up 

[root@local12 ~]# docker run -d --name kong  \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=192.168.56.112" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
-e "DNS_RESOLVER=192.168.56.112" \
-p 8000:8000 -p 8443:8443 -p 8001:8001 -p 8444:8444 \
-v /mnt/kong.conf:/etc/kong/kong.conf \
kong:0.13.1-centos  

[root@local12 ~]# docker run -d -p 1337:1337  --name konga pantsel/konga

三、檢查一下效果


kong的info信息

四滨达、配置一個(gè)DNS SRV每窖,后面用來(lái)做輪訓(xùn)

[root@local13 ~]# cat /etc/consul.d/web.json 
{"service": {"name": "web", "tags": ["springboot"], "port": 8080}}
# local12同local13

# 查下結(jié)果
[root@local13 ~]# dig @192.168.56.112 web.service.consul SRV
...
;; QUESTION SECTION:
;web.service.consul.        IN  SRV
;; ANSWER SECTION:
web.service.consul. 0   IN  SRV 1 1 8080 agent-two.node.dc1.consul.
web.service.consul. 0   IN  SRV 1 1 8080 agent-one.node.dc1.consul.

至此,Kong與Consul就整合完成了弦悉。然后窒典,我們?cè)僬蟂pring Cloud,實(shí)現(xiàn)Kong網(wǎng)關(guān)到APP的DNS輪訓(xùn)稽莉。

Spring Cloud整合Consul

一瀑志、POM文件添加Spring Cloud依賴

...
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-consul-dependencies</artifactId>
                <version>2.0.2.BUILD-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
...
<dependencies>
        <dependency>
           <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-all</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
</dependencies>
...
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/libs-snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    

二、配置YML文件污秆,添加CONSUL相關(guān)內(nèi)容

spring:
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        register: true
        hostname: 127.0.0.1
        tags: version=1.0,author=Dreamson.Ma
        healthCheckPath: /actuator/health
        healthCheckInterval: 5s
        instanceId: ${spring.application.name}:${spring.cloud.client.hostname}:${server.port}

三劈猪、Spring Boot入口添加相關(guān)注解

@EnableDiscoveryClient
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@Import({DynamicDataSourceConfig.class})
public class DreamsonApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(DreamsonApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DreamsonApplication.class);
    }

}

至此,Spring Cloud整合Consul已經(jīng)完成良拼。運(yùn)行下看看效果吧战得。

spring cloud整合consul

通過(guò)Kong的DNS輪訓(xùn)訪問(wèn)應(yīng)用

這次使用konga(kong的ui管理工具)進(jìn)行配置。

一庸推、配置一個(gè)Service


konga配置kong的服務(wù)

二常侦、配置一個(gè)Route

konga配置kong的路由

三、然后就可以訪問(wèn)了


訪問(wèn)kong的代理

至此贬媒,Kong利用dns輪訓(xùn)訪問(wèn)后端應(yīng)用的配置已經(jīng)完成聋亡。可以自己隨便關(guān)個(gè)應(yīng)用測(cè)試一下际乘。

穿梭機(jī):開(kāi)源API網(wǎng)關(guān)系統(tǒng)(Kong教程)入門到精通

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坡倔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌罪塔,老刑警劉巖投蝉,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異征堪,居然都是意外死亡墓拜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門请契,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咳榜,“玉大人,你說(shuō)我怎么就攤上這事爽锥∮亢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵氯夷,是天一觀的道長(zhǎng)臣樱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)腮考,這世上最難降的妖魔是什么雇毫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮踩蔚,結(jié)果婚禮上棚放,老公的妹妹穿的比我還像新娘。我一直安慰自己馅闽,他們只是感情好飘蚯,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著福也,像睡著了一般局骤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上暴凑,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天峦甩,我揣著相機(jī)與錄音,去河邊找鬼现喳。 笑死凯傲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拿穴。 我是一名探鬼主播泣洞,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼忧风,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼默色!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腿宰,失蹤者是張志新(化名)和其女友劉穎呕诉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吃度,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡甩挫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了椿每。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伊者。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖间护,靈堂內(nèi)的尸體忽然破棺而出亦渗,到底是詐尸還是另有隱情,我是刑警寧澤汁尺,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布法精,位于F島的核電站,受9級(jí)特大地震影響痴突,放射性物質(zhì)發(fā)生泄漏搂蜓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一辽装、第九天 我趴在偏房一處隱蔽的房頂上張望帮碰。 院中可真熱鬧,春花似錦拾积、人聲如沸收毫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)此再。三九已至,卻和暖如春玲销,著一層夾襖步出監(jiān)牢的瞬間输拇,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工贤斜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留策吠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓瘩绒,卻偏偏與公主長(zhǎng)得像猴抹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锁荔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理蟀给,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,696評(píng)論 18 139
  • 在互聯(lián)網(wǎng)應(yīng)用領(lǐng)域跋理,服務(wù)的動(dòng)態(tài)性需求十分常見(jiàn)择克,這就對(duì)服務(wù)的自動(dòng)發(fā)現(xiàn)和可動(dòng)態(tài)擴(kuò)展提出了很高的要求。 微服務(wù)系統(tǒng)動(dòng)輒上萬(wàn)...
    Liberalman閱讀 8,058評(píng)論 23 80
  • 由于文章太長(zhǎng)前普,簡(jiǎn)書(shū)放不下肚邢,完整文檔見(jiàn)Consul文檔。 一拭卿、安裝 Consul Consul 的安裝很簡(jiǎn)單骡湖,安裝 ...
    FlySheep_ly閱讀 10,154評(píng)論 1 13
  • HashiCorp 公司推出的Consul是一款分布式高可用服務(wù)治理與服務(wù)配置的工具。關(guān)于其配置與使用可以參考這篇...
    millions_chan閱讀 1,272評(píng)論 0 6
  • Docker從2013年發(fā)布第一個(gè)版本以來(lái)峻厚,已經(jīng)火遍全球勺鸦,技術(shù)迭代也比較頻繁,其周邊產(chǎn)品和技術(shù)也越來(lái)越豐富目木。Doc...
    歸海聽(tīng)雪閱讀 12,286評(píng)論 7 44