2016-09-29 6 views
2

Kafka Reactive Streams 소비자의 Bytestring 파일을 수신하고 있습니다. 이 Bytestring과 함께 akka-http 요청을 HttpEntity.Default 엔터티로 생성하려고합니다. HttpEntity.Default는 Source [Bytestring, Any]를 매개 변수 중 하나로 요구합니다.Bytestring을 소스로 변환하는 방법 [Bytestring, Any]

둘을 연결하는 가장 좋은 방법은 무엇입니까?

답변

2

당신은 Source.single 사용할 수 있습니다

HttpEntity.Default(
    ContentTypes.`application/octet-stream`, 
    byteString.size, 
    Source.single(byteString) 
) 

말했다, 당신이 정확히 HttpEntity.Default 필요 정말 확신? 대신 HttpEntity.DefaultHttpEntity.Strict의 인스턴스를 반환

HttpEntity(ContentTypes.`application/octet-stream`, byteString) 

하지만 Strict는 잘 HTTP 요청을 보내는 데 사용할 수 있습니다 : 당신은 ByteString에서 직접 개체를 구성하는 HttpEntity.apply(ContentType, ByteString) 방법을 사용할 수 있습니다.

+0

감사합니다.이 기능은 확실히 작동합니다. Kafka 고객 클라이언트에서 Source [Bytestring]을 추출하여 Kafka에서 Akka-http로 스트림을 연결할 수 있습니다. 이제 Bytestring 전체를 메모리에로드 한 다음 akka-http 요청을 수행 할 수 있습니까? – Rabzu

+0

카프카를 사용한 적이 없기 때문에 미안하지만 잘 모르겠습니다. 그러나 나는 그것이 적어도 가능하다는 것을 의심한다. (반응성 - 카프카에서) (http://doc.akka.io/docs/akka-stream-kafka/current/consumer.html#connecting-producer 소비자). 아마도 다른 질문을해야 할 것입니다. –

+0

파일 크기가 알려져 있기 때문에 HttpEntity.Default를 사용하고 있습니다. – Rabzu

관련 문제