이 구성 요소는 Apache Avro의 바이너리 데이터 형식을 사용하여 메시지를 직렬화하고 역직렬화할 수 있도록 하는 avro의 dataformat을 제공합니다. 또한 netty 또는 http를 통해 avro 및 consumers 끝점을 사용하도록 생산자 및 소비자 끝점을 제공하여 Apache Avro의 rpc를 지원합니다.
Maven 사용자는 이 구성 요소를 위해 다음 종속성을 pom.xml 에 추가해야 합니다.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-avro</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-avro</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Copy to ClipboardCopied!Toggle word wrapToggle overflow
maven, ant 등을 사용하여 스키마에서 클래스를 쉽게 생성할 수 있습니다. 자세한 내용은 Apache Avro 설명서에서 확인할 수 있습니다.
그러나 스키마를 첫 번째 접근 방식은 적용하지 않으며 기존 클래스에 대한 스키마를 만들 수 있습니다.However, it doesn't enforce a schema first approach and you can create schema for your existing classes. 2.12부터 기존 프로토콜 인터페이스를 사용하여 RCP 호출을 수행할 수 있습니다. 프로토콜 자체에 인터페이스를 사용하고 매개 변수 및 결과 유형에 대해 POJO 빈 또는 기본/문자열 클래스를 사용해야 합니다. 위의 스키마에 해당하는 클래스의 예는 다음과 같습니다.Here is an example of the class that corresponds to schema above:
package org.apache.camel.avro.reflection;
public interface KeyValueProtocol {
void put(String key, Value value);
Value get(String key);
}
class Value {
private String value;
public String getValue() { return value; }
public void setValue(String value) { this.value = value; }
}
package org.apache.camel.avro.reflection;
public interface KeyValueProtocol {
void put(String key, Value value);
Value get(String key);
}
class Value {
private String value;
public String getValue() { return value; }
public void setValue(String value) { this.value = value; }
}
Copy to ClipboardCopied!Toggle word wrapToggle overflow