1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        玩轉(zhuǎn)keycloak集群部署-協(xié)議JDBC_PING

        共 2680字,需瀏覽 6分鐘

         ·

        2022-01-05 17:53

        下載安裝 Keycloak,建議安裝 keycloak 4.8.3 及以上版本,Keycloak 官網(wǎng)下載地址:https://www.keycloak.org/downloads

        這里以 win64 系統(tǒng)為例,下載安裝 keycloak-4.8.3.Final.zip,需求的 Java 版本為 JDK 1.8及以上。下載完成后,解壓縮文件,雙擊運(yùn)行 keycloak-4.8.3.Final/bin 目錄下的 standalone.bat 文件,啟動(dòng) Keycloak。

        Keycloak 的本地訪問(wèn)地址為:http://localhost:8080/auth/,訪問(wèn)該地址,點(diǎn)擊頁(yè)面中的“Administration Console“,創(chuàng)建 Keycloak 的管理員賬戶,該賬戶用于在 Keycloak 中進(jìn)行配置,管理用戶、角色等。

        您可以通過(guò)以下方式配置使用 IP并更改 Keycloak 的端口:

        在 keycloak-4.8.3.Final/bin 目錄下,執(zhí)行以下 DOS 命令:

        standalone.bat -Djboss.socket.binding.port-offset=100 -Djboss.bind.address=192.168.112.172

        • -Djboss.socket.binding.port-offset:設(shè)置端口偏移量,100表示默認(rèn)端口號(hào)+100,此時(shí) Keycloak 端口號(hào)更改為:8180
        • -Djboss.bind.address:設(shè)置 Keycloak 所在機(jī)器的 IP 地址

        ?

        如果你通過(guò)上面的步驟能打開(kāi)頁(yè)面。說(shuō)明你對(duì)部署keycloak有一定的熟悉了。我們使用keycloak的目的是什么呢?,為什么要用集群模式么?集群使用哪種模式?,怎么部署集群?

        好多的問(wèn)題,和考驗(yàn)。因?yàn)閗eycloak目前并不是很開(kāi)放的原因,因此外界的文檔都不是很成熟的集群部署,好多文章都是復(fù)制粘貼官網(wǎng)的信息。然而官網(wǎng)的信息配置也只是大概,也不是完全能成功部署的,我這篇文章,來(lái)源本人花費(fèi)整整兩周的時(shí)間,一點(diǎn)一點(diǎn)的研究起來(lái)的。

        先說(shuō)一下,集群的大概思想:

        一。同步共享keycloak數(shù)據(jù)信息,如果共享,那就是接外數(shù)據(jù)庫(kù)。這個(gè)步驟網(wǎng)上不少,我是mysql數(shù)據(jù)庫(kù)。

        二。數(shù)據(jù)同步共享以后,我們要解決session共享問(wèn)題。這個(gè)就是下面講解的通過(guò)JDBC_PING協(xié)議,同步信息

        三。上面好多人對(duì)Jgroup協(xié)議不了解。官網(wǎng)推薦好多種。新手看著頭大。本人推薦用JDBC_PING協(xié)議。這個(gè)協(xié)議是跨機(jī)器信息同步。只需要連接一個(gè)共享mysql數(shù)據(jù)庫(kù),就可以解決我們

        session同步的問(wèn)題,并且不用關(guān)心,節(jié)點(diǎn)發(fā)現(xiàn)、因?yàn)?。JDBC_PING協(xié)議已經(jīng)幫我們解決了這個(gè)大難題。那就是通過(guò)數(shù)據(jù)庫(kù)一張表評(píng)價(jià)jgroupping這個(gè)表

        ?

        通過(guò)上面的思想以后,我們要在下面解決我們的難題:

        一。啟動(dòng)

        keycloak部署集群的方式 目前是通過(guò)。。standalone\configuration\standalone-ha.xml?這個(gè)模式配置文件啟動(dòng)的。

        第一步就應(yīng)該難道好多人吧,啟動(dòng)命令:

        就是通過(guò)bin\standalone.bat 啟動(dòng),上面說(shuō)過(guò)啟動(dòng)必須指定standalone-ha.xml 文件,這樣才是集群?jiǎn)?dòng)的方式。

        啟動(dòng)方式直接給大家?bin\standalone.bat?--server-config=standalone-ha.xml -DJGROUPS_DISCOVERY_EXTERNAL_IP=192.168.1.107?-DJGROUPS_DISCOVERY_PROTOCOL=JDBC_PING -Dfile.encoding=UTF-8 -Dfile.io.encoding=UTF-8 -DjavaEncoding=UTF-8?

        ?

        好對(duì)人對(duì)面的啟動(dòng)命令,不是很了解。JGROUPS_DISCOVERY_EXTERNAL_IP 是指定本地ip;?JGROUPS_DISCOVERY_PROTOCOL=JDBC_PING 是同步session按照J(rèn)DBC_PING 的方式啟動(dòng)。有了這兩個(gè)命令。我們才能玩轉(zhuǎn)session同步問(wèn)題

        ?

        二。配置

        上面把啟動(dòng)的方式告訴大家了。下面也是最難得,就是配置。配置的難度,按照上面的思想。下面同步數(shù)據(jù)配置:

        跟著步驟走:

        配置數(shù)據(jù)源信息:

        1.先寫(xiě)一個(gè)module.xml

        RPrEVYyC4R.png

        ?

        ?

        這個(gè)xml放置的問(wèn)題,如下面標(biāo)題的位置放置。沒(méi)有這個(gè)目錄自己創(chuàng)建

        SXmgDpoqJZ.png

        ?

        ?

        ?

        接著我們需要在我們的standalone-ha.xml 配置如下:

        ?

        90H7172GSL.png

        ?

        ?

        ?

        經(jīng)過(guò)以上的步驟我們就完成了,數(shù)據(jù)源共享的問(wèn)題:

        ?

        二。session同步

        ?

        下面才是最難的配置,這個(gè)也是目前我認(rèn)為keycloak的精華點(diǎn)。目前官網(wǎng)都有指導(dǎo),但是目前市場(chǎng)上面很難有一篇文章講清楚,玩轉(zhuǎn)這個(gè)的。我也是在摸索的情況下完成的,對(duì)JDBC_PING協(xié)議session共享的實(shí)現(xiàn)。

        首先講解一下,為什么keycloak可以實(shí)現(xiàn)session共享,那就不得不說(shuō),keycloak內(nèi)部有一個(gè)好東西。那就是infinispan 分布式緩存。市場(chǎng)很難流行。但是就常常能在高端場(chǎng)景見(jiàn)到。

        ?

        不像redis那樣流行,但就是一個(gè)好東西。分布式緩存。就是因?yàn)橛羞@個(gè)組件的存在,keycloak的內(nèi)部節(jié)點(diǎn)才能被通知,發(fā)現(xiàn)。也是因?yàn)檫@個(gè),keycloak的集群才能玩的起來(lái)。

        因此懂infinispan 比較重要。owners 更是亮點(diǎn)簡(jiǎn)單配置

        ?

        rOR0T8RNQU.png

        ?

        ?

        上面了解一下分布式內(nèi)存,下面我們就根據(jù)這個(gè)原理,開(kāi)始配置

        三。配置JDBC_PING (重點(diǎn))--需要請(qǐng)聯(lián)系本人,因?yàn)檫@個(gè)配置是本人花費(fèi)兩周日夜研究的配置。---------很重要呦,不知道這個(gè)地方的配置,集群就無(wú)法玩轉(zhuǎn)session同步。

        可以簡(jiǎn)單給點(diǎn)模糊配置

        zGJ4RbyXom.png

        ?

        ?

        四。http通信為什么不能發(fā)現(xiàn)目標(biāo),而是報(bào)錯(cuò):

        wPqWNz8FZn.png

        ?

        ?如果大家遇到這個(gè)問(wèn)題,也請(qǐng)聯(lián)系本人。這個(gè)問(wèn)題。也是本人花費(fèi)了好幾天的時(shí)間研究出來(lái)的。

        通信問(wèn)題

        1、通信報(bào)錯(cuò)、

        2,通信節(jié)點(diǎn)發(fā)現(xiàn)不了

        3.節(jié)點(diǎn)之間退去程序無(wú)法刪除session信息節(jié)點(diǎn),造成重啟,連接失敗

        ?

        上面的配置大家可以自己玩。目前不是研究太深。但是跨機(jī)器的集群是完全可以使用的。

        瀏覽 137
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            人人爱爱人人 | 高潮流水视频 | 揉我胸啊嗯~出水了在线观看 | 黄色无码视频在线观看 | 日韩综合 | 日韩乱伦中文字幕 | 欧美影院洗澡54岁老女人B | 日逼片 | 成人免费视频 国产在线观看 | 三级黄色片下载 |