2017-12-11 23 views
0

나는 카프카를 배우기 시작했습니다. 그래서 소셜 미디어 웹 응용 프로그램을 만들려고합니다. 백엔드 (데이터베이스 및 기타 서비스에 대한 백엔드 통신)에 카프카 (Kafka)를 사용하는 방법은 상당히 명확합니다.카프카 중개인에게 직접 생산하는 웹 프론트 엔드는 실행 가능한 아이디어입니까?

그러나 프론트 엔드가 백엔드와 어떻게 통신해야하는지 잘 모르겠습니다. 나는 건축을 다음과 같이 생각하고 있었다 : 프론트 엔드 -> 카프카 -> 백엔.


프론트 엔드는 소비자로서 프로듀서 및 백엔드의 역할을합니다. 이 경우 프론트 엔드는 Kafka 브로커에 게시하는 데 필요한 모든 리소스를 가지고 있다고 가정합니다 (카프카에서 보안을 구현하더라도). 이제이 시나리오가 가능합니까?

내가 프론트 엔드를 가장하고 부조리/유효하지 않은 메시지를 내 카프카 중개인에게 보냅니다. 이제 백엔드에 도달하면 이러한 메시지를 처리하고 필터링 할 수 있습니다. 그러나 나는 카프카가이 메시지를 일시적으로 저장한다는 것을 알고 있습니다. 그런 "가짜"메시지가 대량으로 게시되면 내 카프카 서버가 DDOS 문제에 직면하지 않을 것입니다. 어쨌든 백엔드에 의해 실제로 소비 될 때까지 걸러 내지 않기 때문에 어쨌든 저장하기 때문입니다.

그렇다면 어떻게 방지 할 수 있습니까?

아니면이 방법이 좋지 않습니까? 프론트 엔드/백엔드 통신에 REST를 사용해 볼 수도 있으며, Kafka는 백엔드에서 데이터베이스 (들) 및 다른 것들과 통신하기 위해 사용될 것입니다.

또는 이러한 메시지를 감지하고 필터링하는 미들웨어 (다시, REST)가있을 수 있습니다.

+0

주의 downvote에 대한 이유를 설명 하시겠습니까? 이것은 많은 질문에 답을 찾을 수없는 진정한 질문입니다. 이 질문을 개선하기 위해 내가 할 수있는 다른 방법은 무엇입니까? – user3271166

+0

도움말 센터에서 요구되고 설명 된대로 특정 프로그래밍 문제에 대해 특정 질문을하지 않기 때문에 아마도 투표가 중단되고 투표 결과가 투표 결과로 표시됩니다. 이것은 매우 광범위하며 현재 사실을 기반으로하는 플랫폼에서는 허용되지 않는 작업에 대한 명확한 개요가없는 의견을 요구합니다. 이것이 늦은 저녁 주말이 아니었다면 지금까지 폐쇄되었을 것입니다. – Rob

+0

내가 물었던 것은 :'프론트 엔드가 카프카에게 메시지를 보낸다면, 어떻게하면 불필요한 DDoS 공격을 막을 수 있을까요? ' 나는 그것이 어떻게 광범위했는지 모르겠다. 그러나 나는 미래에 그것을 더 잘 시도 할 것이다. – user3271166

답변

3

가장 쉬운 방법은 (

여기 https://docs.confluent.io/1.0/kafka-rest/docs/intro.html

거기 프런트 엔드에서 필요하지 카프카 클라이언트 코드가없고 당신이 HTTP를 사용할 수있는 방법 세부 사항을 참조 카프카 REST에 대한 프론트 엔드 생산을 위해 S 프록시

입니다)와 선반로드 균형 조정 장치 및 API 관리 도구를 표준으로 제공합니다.

+0

답변 해 주셔서 감사합니다. 실제로 문제를 해결하는 것으로 보입니다. 그러나 나는 그것이 내 자신의 "미들웨어"를 구현하는 것과 어떻게 다른지 알지 못한다. 그래서 프론트 엔드 -> 나의 미들웨어 -> 카프카 -> 백엔드. 게다가 내가 선호하는 기술과 방법을 REST로 제한하는 대신 사용할 수 있습니다 (향후 REST가 아닌 다른 것으로 전환하기로 결정한 경우). 나는 위의 생각에서 바른 길을 가고 있습니까? – user3271166

+0

REST가 아닌 다른 것을 사용하려면 Kafka Connect를보십시오. MQTT, AMQP, 웹 소켓 및 기타 https://www.confluent.io/product/connectors/에 대한 커넥터가 있습니다. 자신 만의 미들웨어를 실제로 만들고 싶다면 카프카 커넥트의 아름다움은 이미 많이 쓰여 있으며 오픈 소스이기 때문에 이미 알고있는 것에서 시작할 수 있습니다. –