Package zipkin2.reporter.amqp
Class RabbitMQSender
- java.lang.Object
-
- zipkin2.reporter.Component
-
- zipkin2.reporter.Sender
-
- zipkin2.reporter.amqp.RabbitMQSender
-
- All Implemented Interfaces:
Closeable,BytesMessageSender
public final class RabbitMQSender extends Sender
This sends (usually json v2) encoded spans to a RabbitMQ queue.Usage
This type is designed for
the async reporter.Here's a simple configuration, configured for json:
sender = RabbitMQSender.create("localhost:5672");Here's an example with an explicit SSL connection factory and protocol buffers encoding:
connectionFactory = new ConnectionFactory(); connectionFactory.setHost("localhost"); connectionFactory.setPort(5671); connectionFactory.useSslProtocol(); sender = RabbitMQSender.newBuilder() .connectionFactory(connectionFactory) .encoding(Encoding.PROTO3) .build();Compatibility with Zipkin Server
Zipkin server should be v2.1 or higher.Implementation Notes
The sender does not use RabbitMQ Publisher Confirms, so messages considered sent may not necessarily be received by consumers in case of RabbitMQ failure.
This sender is thread-safe: a channel is created for each thread that calls
send(List).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRabbitMQSender.BuilderConfiguration including defaults needed to send spans to a RabbitMQ queue.-
Nested classes/interfaces inherited from interface zipkin2.reporter.BytesMessageSender
BytesMessageSender.Base
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description CheckResultcheck()Deprecated.voidclose()static RabbitMQSendercreate(String addresses)Creates a sender that sendsEncoding.JSONmessages.Encodingencoding()intmessageMaxBytes()intmessageSizeInBytes(int encodedSizeInBytes)intmessageSizeInBytes(List<byte[]> encodedSpans)static RabbitMQSender.BuildernewBuilder()voidsend(List<byte[]> encodedSpans)Call<Void>sendSpans(List<byte[]> encodedSpans)Deprecated.RabbitMQSender.BuildertoBuilder()StringtoString()
-
-
-
Method Detail
-
create
public static RabbitMQSender create(String addresses)
Creates a sender that sendsEncoding.JSONmessages.
-
newBuilder
public static RabbitMQSender.Builder newBuilder()
-
toBuilder
public RabbitMQSender.Builder toBuilder()
-
encoding
public Encoding encoding()
-
messageMaxBytes
public int messageMaxBytes()
-
messageSizeInBytes
public int messageSizeInBytes(List<byte[]> encodedSpans)
-
messageSizeInBytes
public int messageSizeInBytes(int encodedSizeInBytes)
- Specified by:
messageSizeInBytesin interfaceBytesMessageSender- Overrides:
messageSizeInBytesin classSender
-
sendSpans
@Deprecated public Call<Void> sendSpans(List<byte[]> encodedSpans)
Deprecated.
-
send
public void send(List<byte[]> encodedSpans) throws IOException
- Specified by:
sendin interfaceBytesMessageSender- Overrides:
sendin classSender- Throws:
IOException
-
check
@Deprecated public CheckResult check()
Deprecated.
-
close
public void close() throws IOException- Specified by:
closein interfaceCloseable- Overrides:
closein classComponent- Throws:
IOException
-
-