亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

定制化json配置校驗說明

2023-08-02 07:16:47
27
0

一、json配置校驗必要性

現如今網關配置多采用熱加載架構,即線上配置隨時更新,而無需reload。在該背景下,使用json格式呈現的配置文件無法第一時間知道配置方式是否有誤。極端情況下,客戶請求的過程中暴露出問題,導致5XX、宕機等問題,從而影響整個節點的服務質量。由此,預先的json配置校驗就變得非常必要。

二、網關json配置校驗方案簡述

獨立一組機器作為中心校驗節點,該節點的環境與線上保持一致(同步升級與回退),由配置平臺在下發配置之前,將整個json配置文件發送請求到中心校驗節點的網關特定接口,由網關告知平臺這些變量是否都合法,若是都合法,則回復“0”,不合法則回復“1”,且返回那些不合法的變量的說明。網關根據json解析到的lua模塊,調用check函數進行配置校驗。

三、校驗接口概述

采用中心校驗的方式,配置平臺在下發配置之前,將全量的json配置整合后發送到網關json配置校驗接口。網關解析json配置,根據解析到的lua模塊名稱,以對應的json配置作為入參,調用該模塊對應的check函數。網關將所有check函數的調用結果進行整合,以json形式響應給配置平臺。

注:若是未檢測到check函數,則直接跳過該lua模塊的校驗。

四、json配置拼接示例

[
    {
        "server_name":"server1.com",
        "level":1,
        "data":{
            "ports":{
                "80":"1",
                "443":"1"
            },
            "server_name":"server1.com",
            "ssl_certificate":"server.crt",
            "ssl_certificate_key":"server.key",
            "http2":"on",
            "locations":[
                {
                    "/":{
                        "internal":"0",
                        "plugin_lua_functions":{
                            "req_rewrite":[
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "&gzip":"on",
                                            "&gzip_min_length":"1k",
                                            "&gzip_types":"text/xml text/plain text/css application/javascript application/x-javascript text/javascript application/json"
                                        }
                                    }
                                ],
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffer_size":"32k"
                                        }
                                    }
                                ],
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffers":"4 32k"
                                        }
                                    }
                                ]
                            ]
                        }
                    }
                }
            ]
        }
    },
    {
        "server_name":"server2.com",
        "level":2,
        "data":{
            "ports":{
                "80":"1",
                "443":"1"
            },
            "server_name":"server2.com",
            "locations":[
                {
                    "/":{
                        "internal":"0",
                        "plugin_lua_functions":{
                            "req_rewrite":[
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffer_size":"32k"
                                        }
                                    }
                                ],
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffers":"4 32k"
                                        }
                                    }
                                ]
                            ]
                        }
                    }
                }
            ]
        }
    },
    ...
]

五、配置校驗相應示例

{

    "res":"0" / "1",

    "details":{} / [
               {
                    "server_name":"server1.com",
                    "level":1/2/3
                    "detail":[
                        {
                            "func_name":"set_vars",
                            "fail_msg":"Missing conf :set_var_list",
                            "phase":"req_rewrite"
                        },
                        {
                            "origin_code":"hhhh:...",
                            "func_name":"set_vars",
                            "fail_msg":"Configuration is invalid",
                            "phase":"req_rewrite"
                        }
                    ]
                },
               {
                    "server_name":"server2.com",
                    "level":1/2/3
                    "detail":[
                        {
                            "func_name":"set_vars",
                            "fail_msg":"Module configuration is missing",
                            "phase":"req_rewrite"
                        }
                    ]
                }
                 ... ...
             ]
} 

具體如下:

①校驗不含非法配置:

       res字段顯示"0",details字段為{}

②校驗含非法配置:

       res字段顯示"1",details字段為不合法的配置的詳細信息,包括字段:server_name、leveldetail和fail_msg字段:

             server_name:選填,不合法配置所屬的域名

             level:選填,不合法配置所屬的層級,level數值和對應含義如下:

                       1:邊緣層,2:中間層,3:回源層

             detail:選填,不合法配置清單,該字段內又包括以下四個字段:

                      phase:不合法配置所屬的lua執行階段

                      func_name:不合法配置所屬的lua模塊

                      origin_code:不合法的具體配置

                      fail_msg:不合法的原因

             fail_msg:選填,不合法的原因

 

六、結語

配置平臺根據校驗結果,調整下發策略,實現智能化下發等。

0條評論
作者已關閉評論
yyyye
4文章數
0粉絲數
yyyye
4 文章 | 0 粉絲
原創

定制化json配置校驗說明

2023-08-02 07:16:47
27
0

一、json配置校驗必要性

現如今網關配置多采用熱加載架構,即線上配置隨時更新,而無需reload。在該背景下,使用json格式呈現的配置文件無法第一時間知道配置方式是否有誤。極端情況下,客戶請求的過程中暴露出問題,導致5XX、宕機等問題,從而影響整個節點的服務質量。由此,預先的json配置校驗就變得非常必要。

二、網關json配置校驗方案簡述

獨立一組機器作為中心校驗節點,該節點的環境與線上保持一致(同步升級與回退),由配置平臺在下發配置之前,將整個json配置文件發送請求到中心校驗節點的網關特定接口,由網關告知平臺這些變量是否都合法,若是都合法,則回復“0”,不合法則回復“1”,且返回那些不合法的變量的說明。網關根據json解析到的lua模塊,調用check函數進行配置校驗。

三、校驗接口概述

采用中心校驗的方式,配置平臺在下發配置之前,將全量的json配置整合后發送到網關json配置校驗接口。網關解析json配置,根據解析到的lua模塊名稱,以對應的json配置作為入參,調用該模塊對應的check函數。網關將所有check函數的調用結果進行整合,以json形式響應給配置平臺。

注:若是未檢測到check函數,則直接跳過該lua模塊的校驗。

四、json配置拼接示例

[
    {
        "server_name":"server1.com",
        "level":1,
        "data":{
            "ports":{
                "80":"1",
                "443":"1"
            },
            "server_name":"server1.com",
            "ssl_certificate":"server.crt",
            "ssl_certificate_key":"server.key",
            "http2":"on",
            "locations":[
                {
                    "/":{
                        "internal":"0",
                        "plugin_lua_functions":{
                            "req_rewrite":[
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "&gzip":"on",
                                            "&gzip_min_length":"1k",
                                            "&gzip_types":"text/xml text/plain text/css application/javascript application/x-javascript text/javascript application/json"
                                        }
                                    }
                                ],
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffer_size":"32k"
                                        }
                                    }
                                ],
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffers":"4 32k"
                                        }
                                    }
                                ]
                            ]
                        }
                    }
                }
            ]
        }
    },
    {
        "server_name":"server2.com",
        "level":2,
        "data":{
            "ports":{
                "80":"1",
                "443":"1"
            },
            "server_name":"server2.com",
            "locations":[
                {
                    "/":{
                        "internal":"0",
                        "plugin_lua_functions":{
                            "req_rewrite":[
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffer_size":"32k"
                                        }
                                    }
                                ],
                                [
                                    "set_vars",
                                    {
                                        "set_var_list":{
                                            "proxy_buffers":"4 32k"
                                        }
                                    }
                                ]
                            ]
                        }
                    }
                }
            ]
        }
    },
    ...
]

五、配置校驗相應示例

{

    "res":"0" / "1",

    "details":{} / [
               {
                    "server_name":"server1.com",
                    "level":1/2/3
                    "detail":[
                        {
                            "func_name":"set_vars",
                            "fail_msg":"Missing conf :set_var_list",
                            "phase":"req_rewrite"
                        },
                        {
                            "origin_code":"hhhh:...",
                            "func_name":"set_vars",
                            "fail_msg":"Configuration is invalid",
                            "phase":"req_rewrite"
                        }
                    ]
                },
               {
                    "server_name":"server2.com",
                    "level":1/2/3
                    "detail":[
                        {
                            "func_name":"set_vars",
                            "fail_msg":"Module configuration is missing",
                            "phase":"req_rewrite"
                        }
                    ]
                }
                 ... ...
             ]
} 

具體如下:

①校驗不含非法配置:

       res字段顯示"0",details字段為{}

②校驗含非法配置:

       res字段顯示"1",details字段為不合法的配置的詳細信息,包括字段:server_name、leveldetail和fail_msg字段:

             server_name:選填,不合法配置所屬的域名

             level:選填,不合法配置所屬的層級,level數值和對應含義如下:

                       1:邊緣層,2:中間層,3:回源層

             detail:選填,不合法配置清單,該字段內又包括以下四個字段:

                      phase:不合法配置所屬的lua執行階段

                      func_name:不合法配置所屬的lua模塊

                      origin_code:不合法的具體配置

                      fail_msg:不合法的原因

             fail_msg:選填,不合法的原因

 

六、結語

配置平臺根據校驗結果,調整下發策略,實現智能化下發等。

文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
1
1