国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Mac下使用ABTestingGateway快速搭建灰度網(wǎng)關(guān)

2bdenny / 989人閱讀

摘要:下使用快速搭建灰度網(wǎng)關(guān)簡介是新浪開源的一個(gè)可以動(dòng)態(tài)設(shè)置分流策略的灰度發(fā)布系統(tǒng),工作在層,基于和開發(fā),使用作為分流策略數(shù)據(jù)庫,可以實(shí)現(xiàn)動(dòng)態(tài)調(diào)度功能。目前在京東如實(shí)時(shí)價(jià)格秒殺動(dòng)態(tài)服務(wù)單品頁列表頁等都在使用架構(gòu),其他公司如淘寶去哪兒網(wǎng)等。

Mac下使用ABTestingGateway快速搭建灰度網(wǎng)關(guān) ABTestingGateway簡介
ABTestingGateway 是新浪開源的一個(gè)可以動(dòng)態(tài)設(shè)置分流策略的灰度發(fā)布系統(tǒng),工作在7層,基于nginx和ngx-lua開發(fā),使用 redis 作為分流策略數(shù)據(jù)庫,可以實(shí)現(xiàn)動(dòng)態(tài)調(diào)度功能。

nginx是目前使用較多的7層服務(wù)器,可以實(shí)現(xiàn)高性能的轉(zhuǎn)發(fā)和響應(yīng);ABTestingGateway 是在 nginx 轉(zhuǎn)發(fā)的框架內(nèi),在轉(zhuǎn)向 upstream 前,根據(jù) 用戶請(qǐng)求特征 和 系統(tǒng)的分流策略 ,查找出目標(biāo)upstream,進(jìn)而實(shí)現(xiàn)分流。

環(huán)境搭建 1.安裝openresty
其是由Nginx核心加很多第三方模塊組成,其最大的亮點(diǎn)是默認(rèn)集成了Lua開發(fā)環(huán)境,使得Nginx可以作為一個(gè)Web Server使用。借助于Nginx的事件驅(qū)動(dòng)模型和非阻塞IO,可以實(shí)現(xiàn)高性能的Web應(yīng)用程序。而且OpenResty提供了大量組件如Mysql、Redis、Memcached等等,使在Nginx上開發(fā)Web應(yīng)用更方便更簡單。目前在京東如實(shí)時(shí)價(jià)格、秒殺、動(dòng)態(tài)服務(wù)、單品頁、列表頁等都在使用Nginx+Lua架構(gòu),其他公司如淘寶、去哪兒網(wǎng)等。

安裝命令:brew install openresty

brew默認(rèn)將openresty安裝在/usr/local/Cellar/openresty/目錄下

2.安裝luajit
JIT = Just In Time即時(shí)編譯,是動(dòng)態(tài)編譯的一種形式,是一種優(yōu)化虛擬機(jī)運(yùn)行的技術(shù)。 
程序運(yùn)行通常有兩種方式,一種是靜態(tài)編譯,一種是動(dòng)態(tài)解釋,即時(shí)編譯混合了這二者。Java和.Net/mono中都使用了這種技術(shù)。

安裝命令:brew install LuaJIT

brew默認(rèn)將openresty安裝在/usr/local/Cellar/luajit/目錄下

3.安裝redis

安裝命令:brew install redis

啟動(dòng)命令:brew services start redis

ABTestingGateway搭建 項(xiàng)目下載:

命令:git clone https://github.com/CNSRE/ABTestingGateway.git

下載后目錄結(jié)果如下

repo中的utils/conf文件夾中有灰度系統(tǒng)部署所需的最小示例

運(yùn)行灰度網(wǎng)關(guān)
1. 進(jìn)入ABTestingGateway目錄
2. 創(chuàng)建logs目錄,mkdir logs
3. 啟動(dòng)redis
4. 
# 啟動(dòng)upstream server,其中stable為默認(rèn)upstream
4. /usr/local/Cellar/openresty/1.13.6.2/nginx/sbin/nginx -p `pwd` -c conf/stable.conf
5. /usr/local/Cellar/openresty/1.13.6.2/nginx/sbin/nginx -p `pwd` -c conf/beta1.conf
6. /usr/local/Cellar/openresty/1.13.6.2/nginx/sbin/nginx -p `pwd` -c conf/beta2.conf
7. /usr/local/Cellar/openresty/1.13.6.2/nginx/sbin/nginx -p `pwd` -c conf/beta3.conf
8. /usr/local/Cellar/openresty/1.13.6.2/nginx/sbin/nginx -p `pwd` -c conf/beta4.conf

# 啟動(dòng)灰度系統(tǒng),proxy server,灰度系統(tǒng)的配置也寫在conf/nginx.conf中
9. /usr/local/Cellar/openresty/1.13.6.2/nginx/sbin/nginx -p `pwd` -c conf/nginx.conf
簡單驗(yàn)證:添加分流策略組
$ curl 127.0.0.1:8080/ab_admin?action=policygroup_set -d "{"1":{"divtype":"uidsuffix","divdata":[{"suffix":"1","upstream":"beta1"},{"suffix":"3","upstream":"beta2"},{"suffix":"5","upstream":"beta1"},{"suffix":"0","upstream":"beta3"}]},"2":{"divtype":"arg_city","divdata":[{"city":"BJ","upstream":"beta1"},{"city":"SH","upstream":"beta2"},{"city":"XA","upstream":"beta1"},{"city":"HZ","upstream":"beta3"}]},"3":{"divtype":"iprange","divdata":[{"range":{"start":1111,"end":2222},"upstream":"beta1"},{"range":{"start":3333,"end":4444},"upstream":"beta2"},{"range":{"start":7777,"end":2130706433},"upstream":"beta2"}]}}"

{"desc":"success ","code":200,"data":{"groupid":0,"group":[0,1,2]}}
分流規(guī)則簡介

ABTestingGateway灰度系統(tǒng)目前支持的策略有ip段分流、用戶uid段分流、uid尾數(shù)分流、uid白名單分流

優(yōu)先級(jí)由數(shù)字表示,從1開始,級(jí)別為1的策略優(yōu)先級(jí)最高

以下共添加了3個(gè)分流規(guī)則,分別是用戶uid尾數(shù)分流、城市分流、ip段分流,具體請(qǐng)看json中的注釋
stable服務(wù)為默認(rèn)的,未匹配到規(guī)則則分流到stable服務(wù)器上

{
    "1": {
        "divtype": "uidsuffix", 
        "divdata": [
            {
                "suffix": "1",    //http請(qǐng)求中header X-Uid尾數(shù)為1分流到beta1服務(wù)器
                "upstream": "beta1"
            }, 
            {
                "suffix": "3",    //http請(qǐng)求中header X-Uid尾數(shù)為3分流到beta2服務(wù)器
                "upstream": "beta2"
            }, 
            {
                "suffix": "5", 
                "upstream": "beta1"
            }, 
            {
                "suffix": "0", 
                "upstream": "beta3"
            }
        ]
    }, 
    "2": {
        "divtype": "arg_city", 
        "divdata": [
            {
                "city": "BJ",      // url上參數(shù)city=BJ,分流到beta1
                "upstream": "beta1"
            }, 
            {
                "city": "SH", 
                "upstream": "beta2"
            }, 
            {
                "city": "XA", 
                "upstream": "beta1"
            }, 
            {
                "city": "HZ", 
                "upstream": "beta3"
            }
        ]
    }, 
    "3": {
        "divtype": "iprange", 
        "divdata": [
            {
                "range": {
                    "start": 1111, 
                    "end": 2222
                }, 
                "upstream": "beta1"
            }, 
            {
                "range": {
                    "start": 3333, 
                    "end": 4444
                }, 
                "upstream": "beta2"
            }, 
            {
                "range": {
                    "start": 7777, 
                    "end": 2130706433
                }, 
                "upstream": "beta2"
            }
        ]
    }
}
簡單驗(yàn)證:設(shè)置運(yùn)行時(shí)策略
$ curl "127.0.0.1:8080/ab_admin?action=runtime_set&hostname=api.weibo.cn&policygroupid=0"

# 分流
$ curl 127.0.0.1:8030 -H "X-Uid:39" -H "X-Real-IP:192.168.1.1"
this is stable server

$ curl 127.0.0.1:8030 -H "X-Uid:30" -H "X-Real-IP:192.168.1.1"
this is beta3 server

$ curl 127.0.0.1:8030/?city=BJ -H "X-Uid:39" -H "X-Real-IP:192.168.1.1"
this is beta1 server
注意

報(bào)錯(cuò):

2018/07/11 22:00:39 [error] 65912#7287282: *34 lua entry thread aborted: runtime error: ../lib/lua-resty-core/lib/ngx/semaphore.lua:64: dlsym(RTLD_DEFAULT, ngx_http_lua_ffi_semaphore_new): symbol not found
stack traceback:
coroutine 0:
    [C]: in function "require"
    .../Nginx/ABTestingGateway/utils/../diversion/diversion.lua:11: in function <.../Nginx/ABTestingGateway/utils/../diversion/diversion.lua:1>, client: 127.0.0.1, server: api.weibo.cn, request: "GET / HTTP/1.1", host: "127.0.0.1:8030"

原因:

brew安裝的openresty版本與ABTestingGateway不一致導(dǎo)致的,將/usr/local/Cellar/openresty/1.13.6.2/lualib (1.13.6.2替換為您安裝的版本)下的相關(guān)的lua文件拷貝覆蓋ABTestingGateway/lualib下的文件,重啟nginx即可

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/40017.html

相關(guān)文章

  • UCloud 虛擬網(wǎng)絡(luò)VPC技術(shù)演進(jìn)之路

    摘要:在實(shí)踐中,我們開發(fā)并上線了網(wǎng)關(guān)和負(fù)載均衡網(wǎng)關(guān)。而負(fù)載均衡網(wǎng)關(guān)則支持無縫替換傳統(tǒng)交換機(jī)實(shí)現(xiàn)網(wǎng)關(guān)集群,支持一致性,并支持根據(jù)任意字段,內(nèi)存和端口來計(jì)算哈希,支持協(xié)議。網(wǎng)絡(luò)作為信息時(shí)代的重要載體,在云服務(wù)的快速發(fā)展下形成了獨(dú)具特色的虛擬網(wǎng)絡(luò)服務(wù)架構(gòu)和模式。12月19日,2020中國云網(wǎng)絡(luò)峰會(huì)于北京順利召開,會(huì)上UCloud虛擬網(wǎng)絡(luò)VPC負(fù)責(zé)人陳煌棟給大家?guī)砹搜葜v《UCloud VPC技術(shù)演進(jìn)之路...

    Tecode 評(píng)論0 收藏0
  • 馬蜂窩容器化平臺(tái)前端賦能實(shí)踐

    摘要:本文將結(jié)合馬蜂窩容器化平臺(tái)賦能前端應(yīng)用構(gòu)建的實(shí)踐經(jīng)驗(yàn),介紹整個(gè)平臺(tái)背后的設(shè)計(jì)和實(shí)現(xiàn)原理,取得的一些效果及問題的優(yōu)化方案。如果使用容器化平臺(tái)就不會(huì)出現(xiàn)這方面的擔(dān)憂。 容器對(duì)前端開發(fā)真的有用嗎?答案是肯定的。 最初當(dāng)我向公司的前端同學(xué)「安利」容器技術(shù)的時(shí)候,很多人都會(huì)說:「容器?這不是用在后端的技術(shù)嗎?我不懂啊,而且前端開發(fā)用不上吧。」 showImg(https://segmentfau...

    wall2flower 評(píng)論0 收藏0
  • 馬蜂窩容器化平臺(tái)前端賦能實(shí)踐

    摘要:本文將結(jié)合馬蜂窩容器化平臺(tái)賦能前端應(yīng)用構(gòu)建的實(shí)踐經(jīng)驗(yàn),介紹整個(gè)平臺(tái)背后的設(shè)計(jì)和實(shí)現(xiàn)原理,取得的一些效果及問題的優(yōu)化方案。如果使用容器化平臺(tái)就不會(huì)出現(xiàn)這方面的擔(dān)憂。 容器對(duì)前端開發(fā)真的有用嗎?答案是肯定的。 最初當(dāng)我向公司的前端同學(xué)「安利」容器技術(shù)的時(shí)候,很多人都會(huì)說:「容器?這不是用在后端的技術(shù)嗎?我不懂啊,而且前端開發(fā)用不上吧。」 showImg(https://segmentfau...

    余學(xué)文 評(píng)論0 收藏0
  • 馬蜂窩容器化平臺(tái)前端賦能實(shí)踐

    摘要:本文將結(jié)合馬蜂窩容器化平臺(tái)賦能前端應(yīng)用構(gòu)建的實(shí)踐經(jīng)驗(yàn),介紹整個(gè)平臺(tái)背后的設(shè)計(jì)和實(shí)現(xiàn)原理,取得的一些效果及問題的優(yōu)化方案。如果使用容器化平臺(tái)就不會(huì)出現(xiàn)這方面的擔(dān)憂。 容器對(duì)前端開發(fā)真的有用嗎?答案是肯定的。 最初當(dāng)我向公司的前端同學(xué)「安利」容器技術(shù)的時(shí)候,很多人都會(huì)說:「容器?這不是用在后端的技術(shù)嗎?我不懂啊,而且前端開發(fā)用不上吧。」 showImg(https://segmentfau...

    desdik 評(píng)論0 收藏0
  • 微服務(wù)網(wǎng)關(guān)方案調(diào)研

    摘要:綜述經(jīng)調(diào)研,使用解決方案的占多數(shù),已經(jīng)能滿足絕大多數(shù)公司需求。但除了一些超級(jí)公司外,比如阿里,京東,他們是自己擼的一套網(wǎng)關(guān)。 綜述 經(jīng)調(diào)研,使用Spring Cloud Zuul解決方案的占多數(shù),已經(jīng)能滿足絕大多數(shù)公司需求。但除了一些超級(jí)公司外,比如阿里,京東,他們是自己擼的一套網(wǎng)關(guān)。此外,點(diǎn)評(píng)直接采用的nginx負(fù)載均衡前置網(wǎng)關(guān),而沒用第七層網(wǎng)關(guān),原因據(jù)說是七層網(wǎng)關(guān)會(huì)影響性能,但由于...

    Y3G 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<