Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 12431|Απάντηση: 0

Το Microservices Gateway Kong χρησιμοποιεί προσθήκες για την προσαρμογή των επιστροφών σφαλμάτων

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 14/2/2019 4:58:19 μ.μ. | | |
Πρόσθετο Kong

Το πρόσθετο του Kong υποστηρίζει τέσσερις διαστάσεις, η σειρά εκτέλεσης είναι από πάνω προς τα κάτω και πρέπει να σημειωθεί ότι εάν το ίδιο πρόσθετο έχει ρυθμιστεί σε διαφορετικές διαστάσεις, θα εκτελεστεί μόνο μία φορά:

  • Εφαρμόστε το API συν το μείγμα καταναλωτών.
  • Εφαρμόζεται στους καταναλωτές.
  • Εφαρμόζεται στο API.
  • Εφαρμόζεται παγκοσμίως.

Επίσης, δεν υποστηρίζουν όλες οι προσθήκες τον ορισμό των καταναλωτών

Προσθέστε ένα άλλο API για δοκιμή
Προσθέστε μια νέα διεπαφή:


{
    "created_at": 1515055457572,
    "strip_uri": αλήθεια,
    "ID": "A99919D1-0770-40A1-81A9-E3C31FD9D282",
    "name": "spring-boot-consul-service2",
    "Μέθοδοι": [
        "ΠΑΡΩ"
    ],
    "http_if_terminated": ψευδής,
    "preserve_host": ψευδής,
    "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
    "uris": [
        "/χρήστης"
    ],
    "upstream_send_timeout": 60000,
    "upstream_connect_timeout": 60000,
    "upstream_read_timeout": 60000,
    "επαναλήψεις": 5,
    "https_only": ψευδής
}


Προσθέστε ατμούς


{
    "created_at": 1515055993113,
    "orderlist": [
        41,
        28,
        44,
        14,
        79,
        38,
        30,
        69,
        15,
        88,
        72,
        53,
        89,
        47,
        81,
        43,
        60,
        91,
        92,
        100,
        98,
        55,
        12,
        40,
        9,
        31,
        84,
        24,
        36,
        39,
        96,
        74,
        6,
        8,
        93,
        99,
        78,
        34,
        49,
        37,
        61,
        76,
        33,
        35,
        32,
        77,
        70,
        26,
        52,
        87,
        73,
        23,
        57,
        25,
        17,
        90,
        62,
        82,
        19,
        75,
        50,
        4,
        51,
        42,
        65,
        66,
        63,
        3,
        1,
        68,
        94,
        67,
        20,
        80,
        54,
        7,
        5,
        16,
        85,
        13,
        46,
        10,
        97,
        22,
        48,
        11,
        27,
        86,
        18,
        59,
        83,
        21,
        56,
        95,
        2,
        64,
        58,
        71,
        45,
        29
    ],
    "id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
    "name": "spring-boot-consul-service2.service.dc1.consul",
    "Υποδοχές": 100
}


Προσθήκη στόχων



Πληροφορίες Tagets

{
    "σύνολο": 3,
    "δεδομένα": [
        {
            "created_at": 1515056103599,
            "id": "994e7886-3e48-45cb-80ad-3f7918ede007",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "στόχος": "192.168.0.186:17004",
            "βάρος": 15
        },
        {
            "created_at": 1515056109570,
            "ID": "03B477EE-A69D-49EE-9892-276F451C373C",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "στόχος": "192.168.0.185:17004",
            "βάρος": 15
        },
        {
            "created_at": 1515056112730,
            "id": "8ace8d83-4504-4334-ad04-f0b536963df9",
            "upstream_id": "6b8bc38a-d449-47bf-8b8c-19b888e282d4",
            "target": "192.168.0.184:17004",
            "βάρος": 15
        }
    ]
}


Η τρέχουσα λίστα των API έχει ως εξής:

{
    "σύνολο": 2,
    "δεδομένα": [
        {
            "created_at": 1515055457572,
            "strip_uri": αλήθεια,
            "ID": "A99919D1-0770-40A1-81A9-E3C31FD9D282",
            "name": "spring-boot-consul-service2",
            "Μέθοδοι": [
                "ΠΑΡΩ"
            ],
            "http_if_terminated": ψευδής,
            "https_only": ψευδής,
            "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004",
            "uris": [
                "/χρήστης"
            ],
            "preserve_host": ψευδής,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "επαναλήψεις": 5
        },
        {
            "created_at": 1514995615974,
            "strip_uri": αλήθεια,
            "ID": "B8431831-6A77-434E-AC4A-7E379550714F",
            "name": "spring-boot-consul-service",
            "Μέθοδοι": [
                "ΠΑΡΩ"
            ],
            "http_if_terminated": ψευδής,
            "https_only": ψευδής,
            "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003",
            "uris": [
                "/υπηρεσία"
            ],
            "preserve_host": ψευδής,
            "upstream_connect_timeout": 60000,
            "upstream_read_timeout": 60000,
            "upstream_send_timeout": 60000,
            "επαναλήψεις": 5
        }
    ]
}


Οι διεπαφές πρόσβασης επιστρέφουν τα εξής:

{
    "msg": "εντάξει",
    "ημερομηνία": {
        "σκορ": 42,
        "name": "δέντρο",
        "id": 1,
        "ηλικία": 12,
        "nowTime": 1515060166929,
        "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004"
    },
    "Κωδικός": 200
}
{
    "msg": "εντάξει",
    "ημερομηνία": {
        "σκορ": 505,
        "name": "δέντρο",
        "id": 1,
        "ηλικία": 12,
        "nowTime": 1515060402392,
        "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003"
    },
    "Κωδικός": 200
}

Προσθέστε την προσθήκη Key-Auth

Ανοίξτε το πρόσθετο key-auth


{
        "created_at": 1515066239000,
        "config": {
                "key_in_body": ψευδής,
                "run_on_preflight": αλήθεια,
                "ανώνυμος": "",
                "hide_credentials": ψευδής,
                "key_names": [
                        "Apikey"
                ]
        },
        "id": "78c519d3-11f7-4cdf-b038-9f17f1a83427",
        "enabled": αληθές,
        "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
        "name": "key-auth"
}

Στη συνέχεια, αποκτήστε πρόσβαση στη διεπαφή με ένα σφάλμα όπως αυτό:

ΑΠΟΚΤΏΗ σύνδεση με υπερσύνδεσμο είναι ορατή.
#输出
{
    "message": "Δεν βρέθηκε κλειδί API στο αίτημα"
}

Καταργήστε την προσθήκη key-auth



Ρίξτε μια ματιά στην προσθήκη δέσμευσης API

ΑΠΟΚΤΏΗ σύνδεση με υπερσύνδεσμο είναι ορατή.
# Παραγωγή:
{
    "σύνολο": 0,
    "δεδομένα": []
}

Προσθήκη του περιορισμού ρυθμού πρόσθετου περιορισμού ρυθμού


Παραγωγή

{
    "created_at": 1515068825000,
    "config": {
        "λεπτό": 10,
        "policy": "cluster",
        "redis_timeout": 2000,
        "hide_client_headers": ψευδής,
        "δεύτερο": 2,
        "limit_by": "καταναλωτής",
        "redis_port": 6379,
        "redis_database": 0,
        "fault_tolerant": αληθινό
    },
    "id": "482c627f-4041-4320-9b2f-0cc7722b92ea",
    "name": "περιορισμός συντελεστή",
    "api_id": "a99919d1-0770-40a1-81a9-e3c31fd9d282",
    "ενεργοποιημένο": αληθές
}

Όταν η διεπαφή πρόσβασης υπερβεί το όριο, θα ληφθούν οι ακόλουθες επιστροφές:


Επιστροφή

{
    "message": "Υπέρβαση ορίου ρυθμού API"
}

Ωστόσο, εξακολουθούν να υπάρχουν ορισμένα προβλήματα, επειδή η μορφή μηνύματος έχει διορθωθεί, η μορφή εξόδου δεν είναι συνεπής με την υπηρεσία υποστήριξης και πρέπει να υποστηρίζονται προσαρμοσμένες μορφές μηνυμάτων.

Ο Kong τροποποιεί την τιμή επιστροφής εξαίρεσης
Για παράδειγμα, η ενοποιημένη μορφή μηνύματος υπηρεσίας έχει ως εξής:

{
    "κωδικός": 200,
    "msg": "εντάξει",
        "δεδομένα": {xxx}
}

Θέλουμε επίσης η επιστροφή εξαίρεσης του kong να παραμείνει στην ίδια μορφή όπως παραπάνω. Στη συνέχεια, μπορούμε να τροποποιήσουμε απευθείας τον πηγαίο κώδικα του Kong, ο οποίος είναι στην πραγματικότητα πολύ απλός.

Ξεκινήστε κάνοντας λήψη του πηγαίου κώδικα

#下载kong插件源码

κλώνος gitgit@github.com:Kong/kong.git

Εντοπίστε τον κώδικα εξόδου που θέλετε να τροποποιήσετε

Ο κώδικας εξόδου βρίσκεται στο kong/kong/tools/responses.lua, ανοίξτε τον για επεξεργασία.



Αποθήκευση και, στη συνέχεια, μεταγλώττιση

[root@tree81 Kong]# Τα Luarocks κάνουν
Το kong 0.11.2-0 είναι τώρα εγκατεστημένο στο /usr/local (άδεια: MIT)

Εκκίνηση, δοκιμάστε ξανά

Ανανεώστε γρήγορα τη διεύθυνση πολλές φορές στη σειρά:Η σύνδεση με υπερσύνδεσμο είναι ορατή.Λάβετε ένα μήνυμα σφάλματος:

{
    "Κωδικός": 429,
    "msg": "Υπέρβαση ορίου ρυθμού API"
}

Έγινε, τέλεια :)




Προηγούμενος:Το jQuery φορτώνει ένα κομμάτι κειμένου μέσω AJAX
Επόμενος:init: function () jquery对象的构造函数
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com