콩 플러그인
Kong의 플러그인은 4차원을 지원하며, 실행 순서는 위에서 아래로 정렬되어 있습니다. 동일한 플러그인이 다른 차원으로 설정되어 있을 경우 한 번만 실행된다는 점을 유의해야 합니다:
- API와 소비자 혼합 방식을 적용하고;
- 소비자에게 적용됨;
- API에 적용됨;
- 전 세계적으로 적용되면;
또한, 모든 플러그인이 소비자 정의를 지원하는 것은 아닙니다
테스트를 위한 또 다른 API 추가로 새로운 인터페이스 추가:
{ "created_at": 1515055457572, "strip_uri": 참, "ID": "A99919D1-0770-40A1-81A9-E3C31FD9D282", "이름": "spring-boot-consul-service2", "방법": [ "가" ], "http_if_terminated": 거짓, "preserve_host": 거짓, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "우리스": [ "/사용자" ], "upstream_send_timeout": 60000, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "재시도": 5, "https_only": 거짓
}
증기 추가
{ "created_at": 1515055993113, "주문 목록": [ 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
}
타겟 추가
타겟츠 정보
{ "총합": 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", "타겟": "192.168.0.184:17004", "무게": 15 } ]
}
현재 API 목록은 다음과 같습니다:
{ "총합": 2, "데이터": [ { "created_at": 1515055457572, "strip_uri": 참, "ID": "A99919D1-0770-40A1-81A9-E3C31FD9D282", "이름": "spring-boot-consul-service2", "방법": [ "가" ], "http_if_terminated": 거짓, "https_only": 거짓, "upstream_url": "http://spring-boot-consul-service2.service.dc1.consul:17004", "우리스": [ "/사용자" ], "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", "이름": "스프링 부트-영사-서비스", "방법": [ "가" ], "http_if_terminated": 거짓, "https_only": 거짓, "upstream_url": "http://spring-boot-consul-service.service.dc1.consul:17003", "우리스": [ "/서비스" ], "preserve_host": 거짓, "upstream_connect_timeout": 60000, "upstream_read_timeout": 60000, "upstream_send_timeout": 60000, "재시도": 5회 } ]
}
접근 인터페이스는 다음과 같은 결과를 반환합니다:
{ "MSG": "알겠습니다", "데이트": { "점수": 42, "이름": "나무", "id": 1, "나이": 12, "nowTime": 1515060166929, "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, "코드": 200
} { "MSG": "알겠습니다", "데이트": { "점수": 505, "이름": "나무", "id": 1, "나이": 12, "nowTime": 1515060402392, "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, "코드": 200
} Key-Auth 플러그인 추가하세요
키 인증 플러그인을 엽니다
{ "created_at": 1515066239000, "config": { "key_in_body": 거짓, "run_on_preflight": 참, "익명": "", "hide_credentials": 거짓, "key_names": [ "아피키" ] }, "ID": "78C519D3-11F7-4CDF-B038-9F17F1A83427", "활성화": 참, "api_id": "a99919d1-0770-40a1-81a9-e3c31FD9D282", "이름": "키-인증"
} 그 후 다음과 같은 오류가 발생하여 인터페이스에 접근합니다:
키 인증 플러그인을 제거하세요
API 바인딩 플러그인을 확인해 보세요
속도 제한 플러그인 속도 제한 추가로
출력
{ "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", "이름": "속도 제한", "api_id": "a99919d1-0770-40a1-81a9-e3c31FD9D282", "enabled": 참
} 접근 인터페이스가 한계를 초과하면 다음과 같은 반환이 수신됩니다:
귀환
{ "메시지": "API 속도 한도 초과"
} 하지만 메시지 형식이 고정되어 있고, 출력 형식이 백엔드 서비스와 일치하지 않으며, 맞춤형 메시지 형식이 지원되어야 하는 문제점도 여전히 존재합니다.
Kong은 예외 반환 값을 수정합니다 예를 들어, 서비스 통합 메시지 형식은 다음과 같습니다:
{ "코드": 200, "MSG": "알겠습니다", "데이터": {xxx}
} 또한 콩의 예외 반환도 위와 같은 형식으로 유지되길 원합니다. 그다음 콩의 소스 코드를 직접 수정할 수 있는데, 사실 매우 간단합니다.
먼저 소스 코드를 다운로드하세요
#下载kong插件源码
git 클론git@github.com:콩/콩.git
수정할 출력 코드를 찾아
출력 코드는 kong/kong/tools/responses.lua에 있으니 편집을 위해 열어보세요.
저장 후 컴파일
[root@tree81 콩]# 루아록스 메이크 Kong의 0.11.2-0은 현재 /USR/local에 설치되었습니다 (라이선스: MIT) 발사, 다시 시도해
주소를 연속으로 여러 번 빠르게 새로고침하세요:하이퍼링크 로그인이 보입니다.오류 메시지 뜬다:
{ "코드": 429, "msg": "API 요금 한도 초과"
} 끝났어요, 완벽한 :) |