Documentation
¶
Overview ¶
Package pb is a generated protocol buffer package.
It is generated from these files:
kafkapixy.proto
It has these top-level messages:
ProdRq ProdRs ConsNAckRq ConsRs AckRq AckRs PartitionOffset GetOffsetsRq GetOffsetsRs
Index ¶
- func RegisterKafkaPixyServer(s *grpc.Server, srv KafkaPixyServer)
- type AckRq
- func (*AckRq) Descriptor() ([]byte, []int)
- func (m *AckRq) GetCluster() string
- func (m *AckRq) GetGroup() string
- func (m *AckRq) GetOffset() int64
- func (m *AckRq) GetPartition() int32
- func (m *AckRq) GetTopic() string
- func (*AckRq) ProtoMessage()
- func (m *AckRq) Reset()
- func (m *AckRq) String() string
- type AckRs
- type ConsNAckRq
- func (*ConsNAckRq) Descriptor() ([]byte, []int)
- func (m *ConsNAckRq) GetAckOffset() int64
- func (m *ConsNAckRq) GetAckPartition() int32
- func (m *ConsNAckRq) GetAutoAck() bool
- func (m *ConsNAckRq) GetCluster() string
- func (m *ConsNAckRq) GetGroup() string
- func (m *ConsNAckRq) GetNoAck() bool
- func (m *ConsNAckRq) GetTopic() string
- func (*ConsNAckRq) ProtoMessage()
- func (m *ConsNAckRq) Reset()
- func (m *ConsNAckRq) String() string
- type ConsRs
- func (*ConsRs) Descriptor() ([]byte, []int)
- func (m *ConsRs) GetKeyUndefined() bool
- func (m *ConsRs) GetKeyValue() []byte
- func (m *ConsRs) GetMessage() []byte
- func (m *ConsRs) GetOffset() int64
- func (m *ConsRs) GetPartition() int32
- func (*ConsRs) ProtoMessage()
- func (m *ConsRs) Reset()
- func (m *ConsRs) String() string
- type GetOffsetsRq
- type GetOffsetsRs
- type KafkaPixyClient
- type KafkaPixyServer
- type PartitionOffset
- func (*PartitionOffset) Descriptor() ([]byte, []int)
- func (m *PartitionOffset) GetBegin() int64
- func (m *PartitionOffset) GetCount() int64
- func (m *PartitionOffset) GetEnd() int64
- func (m *PartitionOffset) GetLag() int64
- func (m *PartitionOffset) GetMetadata() string
- func (m *PartitionOffset) GetOffset() int64
- func (m *PartitionOffset) GetPartition() int32
- func (m *PartitionOffset) GetSparseAcks() string
- func (*PartitionOffset) ProtoMessage()
- func (m *PartitionOffset) Reset()
- func (m *PartitionOffset) String() string
- type ProdRq
- func (*ProdRq) Descriptor() ([]byte, []int)
- func (m *ProdRq) GetAsyncMode() bool
- func (m *ProdRq) GetCluster() string
- func (m *ProdRq) GetKeyUndefined() bool
- func (m *ProdRq) GetKeyValue() []byte
- func (m *ProdRq) GetMessage() []byte
- func (m *ProdRq) GetTopic() string
- func (*ProdRq) ProtoMessage()
- func (m *ProdRq) Reset()
- func (m *ProdRq) String() string
- type ProdRs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterKafkaPixyServer ¶
func RegisterKafkaPixyServer(s *grpc.Server, srv KafkaPixyServer)
Types ¶
type AckRq ¶ added in v0.13.0
type AckRq struct {
// Name of a Kafka cluster to operate on.
Cluster string `protobuf:"bytes,1,opt,name=cluster" json:"cluster,omitempty"`
// Name of a topic to produce to.
Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
// Name of a consumer group.
Group string `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"`
// Partition that the acknowledged message was consumed from.
Partition int32 `protobuf:"varint,4,opt,name=partition" json:"partition,omitempty"`
// Offset in the partition that the acknowledged message was consumed from.
Offset int64 `protobuf:"varint,5,opt,name=offset" json:"offset,omitempty"`
}
func (*AckRq) Descriptor ¶ added in v0.13.0
func (*AckRq) GetCluster ¶ added in v0.13.0
func (*AckRq) GetPartition ¶ added in v0.13.0
func (*AckRq) ProtoMessage ¶ added in v0.13.0
func (*AckRq) ProtoMessage()
type AckRs ¶ added in v0.13.0
type AckRs struct {
}
func (*AckRs) Descriptor ¶ added in v0.13.0
func (*AckRs) ProtoMessage ¶ added in v0.13.0
func (*AckRs) ProtoMessage()
type ConsNAckRq ¶ added in v0.13.0
type ConsNAckRq struct {
// Name of a Kafka cluster to operate on.
Cluster string `protobuf:"bytes,1,opt,name=cluster" json:"cluster,omitempty"`
// Name of a topic to produce to.
Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
// Name of a consumer group.
Group string `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"`
// If true then no message is acknowledged by the request.
NoAck bool `protobuf:"varint,4,opt,name=no_ack,json=noAck" json:"no_ack,omitempty"`
// If true and no_ack is false then the message returned by the requests is
// automatically acknowledged by Kafka-Pixy before the request completes.
AutoAck bool `protobuf:"varint,5,opt,name=auto_ack,json=autoAck" json:"auto_ack,omitempty"`
// If both no_ack and auto_ack are false (by default), then ack_partition
// and ack_offset along with cluster-group-topic determine the message that
// should be acknowledged by the request.
AckPartition int32 `protobuf:"varint,6,opt,name=ack_partition,json=ackPartition" json:"ack_partition,omitempty"`
AckOffset int64 `protobuf:"varint,7,opt,name=ack_offset,json=ackOffset" json:"ack_offset,omitempty"`
}
func (*ConsNAckRq) Descriptor ¶ added in v0.13.0
func (*ConsNAckRq) Descriptor() ([]byte, []int)
func (*ConsNAckRq) GetAckOffset ¶ added in v0.13.0
func (m *ConsNAckRq) GetAckOffset() int64
func (*ConsNAckRq) GetAckPartition ¶ added in v0.13.0
func (m *ConsNAckRq) GetAckPartition() int32
func (*ConsNAckRq) GetAutoAck ¶ added in v0.13.0
func (m *ConsNAckRq) GetAutoAck() bool
func (*ConsNAckRq) GetCluster ¶ added in v0.13.0
func (m *ConsNAckRq) GetCluster() string
func (*ConsNAckRq) GetGroup ¶ added in v0.13.0
func (m *ConsNAckRq) GetGroup() string
func (*ConsNAckRq) GetNoAck ¶ added in v0.13.0
func (m *ConsNAckRq) GetNoAck() bool
func (*ConsNAckRq) GetTopic ¶ added in v0.13.0
func (m *ConsNAckRq) GetTopic() string
func (*ConsNAckRq) ProtoMessage ¶ added in v0.13.0
func (*ConsNAckRq) ProtoMessage()
func (*ConsNAckRq) Reset ¶ added in v0.13.0
func (m *ConsNAckRq) Reset()
func (*ConsNAckRq) String ¶ added in v0.13.0
func (m *ConsNAckRq) String() string
type ConsRs ¶ added in v0.13.0
type ConsRs struct {
// Partition the message was read from.
Partition int32 `protobuf:"varint,1,opt,name=partition" json:"partition,omitempty"`
// Offset of the read message in the partition.
Offset int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
// Key that was used to produce the message, unless key_undefined is true,
// then it is undefined.
KeyValue []byte `protobuf:"bytes,3,opt,name=key_value,json=keyValue,proto3" json:"key_value,omitempty"`
// If true then the message was produced to a random partition.
KeyUndefined bool `protobuf:"varint,4,opt,name=key_undefined,json=keyUndefined" json:"key_undefined,omitempty"`
// Message body
Message []byte `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
}
func (*ConsRs) Descriptor ¶ added in v0.13.0
func (*ConsRs) GetKeyUndefined ¶ added in v0.13.0
func (*ConsRs) GetKeyValue ¶ added in v0.13.0
func (*ConsRs) GetMessage ¶ added in v0.13.0
func (*ConsRs) GetPartition ¶ added in v0.13.0
func (*ConsRs) ProtoMessage ¶ added in v0.13.0
func (*ConsRs) ProtoMessage()
type GetOffsetsRq ¶ added in v0.14.0
type GetOffsetsRq struct {
// Name of a Kafka cluster
Cluster string `protobuf:"bytes,1,opt,name=cluster" json:"cluster,omitempty"`
// Name of a topic
Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
// Name of a consumer group.
Group string `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"`
}
func (*GetOffsetsRq) Descriptor ¶ added in v0.14.0
func (*GetOffsetsRq) Descriptor() ([]byte, []int)
func (*GetOffsetsRq) GetCluster ¶ added in v0.14.0
func (m *GetOffsetsRq) GetCluster() string
func (*GetOffsetsRq) GetGroup ¶ added in v0.14.0
func (m *GetOffsetsRq) GetGroup() string
func (*GetOffsetsRq) GetTopic ¶ added in v0.14.0
func (m *GetOffsetsRq) GetTopic() string
func (*GetOffsetsRq) ProtoMessage ¶ added in v0.14.0
func (*GetOffsetsRq) ProtoMessage()
func (*GetOffsetsRq) Reset ¶ added in v0.14.0
func (m *GetOffsetsRq) Reset()
func (*GetOffsetsRq) String ¶ added in v0.14.0
func (m *GetOffsetsRq) String() string
type GetOffsetsRs ¶ added in v0.14.0
type GetOffsetsRs struct {
Offsets []*PartitionOffset `protobuf:"bytes,1,rep,name=offsets" json:"offsets,omitempty"`
}
func (*GetOffsetsRs) Descriptor ¶ added in v0.14.0
func (*GetOffsetsRs) Descriptor() ([]byte, []int)
func (*GetOffsetsRs) GetOffsets ¶ added in v0.14.0
func (m *GetOffsetsRs) GetOffsets() []*PartitionOffset
func (*GetOffsetsRs) ProtoMessage ¶ added in v0.14.0
func (*GetOffsetsRs) ProtoMessage()
func (*GetOffsetsRs) Reset ¶ added in v0.14.0
func (m *GetOffsetsRs) Reset()
func (*GetOffsetsRs) String ¶ added in v0.14.0
func (m *GetOffsetsRs) String() string
type KafkaPixyClient ¶
type KafkaPixyClient interface {
// Produce writes a message to a Kafka topic.
//
// If ProdReq.async_mode is false (default value) then the request will
// block until the message is written to all ISR. In this case the respose
// will contain the partition and offset of the message. This has to be
// used to achive at-least-once deliverability guarantee.
// If ProdReq.async_mode is true, then Kafka-Pixy returns immediately after
// it gets the request and performs write on the backgroud. This mode
// ensures highest throughput but messages can be lost, e.g. if the host
// crashes before Kafka-Pixy has a chance to complete write.
//
// Hash of ProdReq.key_value is used to determine a partition that the
// message should be written to. If you want a message to go to an random
// partition then set ProdReq.key_undefined to true. Note that if both
// ProdReq.key_undefined and ProdReq.key_value are left default, which is
// empty string and false respectively, then messages will be consitently
// written to a partiticular partition selected by the hash of an empty
// string.
//
// gRPC error codes:
// * Invalid Argument (3): see the status description for details;
// * Internal (13): see the status description and logs for details;
// * Unavailable (14): the service is shutting down.
Produce(ctx context.Context, in *ProdRq, opts ...grpc.CallOption) (*ProdRs, error)
// Consume reads a message from a topic and optionally acknowledges a
// message previously consumed from the same topic.
//
// Requests are performed in long polling fation, that is if all available
// messages have been consumed then the request will block for
// config.yaml:proxies.<cluster>.consumer.long_polling_timeout waiting for
// new messages. If no new messages is produced while waiting the request
// will return gRPC error with 408 status code.
//
// To consume the first message set ConsNAckReq.no_ack to true, since there
// is no message to acknowledge at this point. In the second and all
// subsequent calls of the method set ConsNAckReq.ack_partition and
// ConsNAckReq.ack_offset to the respective values of ConsRes returned by
// the previous method call. To acknowledge the last consumed message before
// teminating the application call Ack method.
//
// If a message is not acknowledged within
// config.yaml:proxies.<cluster>.consumer.ack_timeout the it will be returned
// by Kafka-Pixy in ConsRes again possibly to another application.
//
// If at-least-once delivery guarantee and retries are not desirable, then
// you can set ConsNAckReq.auto_ack to true and Kafka-Pixy will acknowledge
// messages automatically before returning them in ConsRes.
//
// gRPC error codes:
// * Not Found (5): It just means that all message has been consumed and
// the long polling timeout has elaspsed. Just keep calling this method
// in a loop;
// * Resource Exhausted (8): too many consume requests. Either reduce the
// number of consuming threads or increase
// config.yaml:proxies.<cluster>.consumer.channel_buffer_size;
// * Invalid Argument (3): see the status description for details;
// * Internal (13): see the status description and logs for details;
// * Unavailable (14): the service is shutting down.
ConsumeNAck(ctx context.Context, in *ConsNAckRq, opts ...grpc.CallOption) (*ConsRs, error)
// Ack acknowledges a message earlier consumed from a topic.
//
// This method is provided solely to acknowledge the last consumed message
// before the application terminates. In all other cases ConsumeNAck should
// be used.
//
// gRPC error codes:
// * Invalid Argument (3): see the status description for details;
// * Internal (13): see the status description and logs for details;
Ack(ctx context.Context, in *AckRq, opts ...grpc.CallOption) (*AckRs, error)
// Fetches partition offsets for the specified topic and group
//
// gRPC error codes:
// * Invalid Argument (3): If unable to find the cluster named in the request
// * Internal (13): If Kafka returns an error on offset request
// * NotFound (5): If the group and or topic does not exist
GetOffsets(ctx context.Context, in *GetOffsetsRq, opts ...grpc.CallOption) (*GetOffsetsRs, error)
}
func NewKafkaPixyClient ¶
func NewKafkaPixyClient(cc *grpc.ClientConn) KafkaPixyClient
type KafkaPixyServer ¶
type KafkaPixyServer interface {
// Produce writes a message to a Kafka topic.
//
// If ProdReq.async_mode is false (default value) then the request will
// block until the message is written to all ISR. In this case the respose
// will contain the partition and offset of the message. This has to be
// used to achive at-least-once deliverability guarantee.
// If ProdReq.async_mode is true, then Kafka-Pixy returns immediately after
// it gets the request and performs write on the backgroud. This mode
// ensures highest throughput but messages can be lost, e.g. if the host
// crashes before Kafka-Pixy has a chance to complete write.
//
// Hash of ProdReq.key_value is used to determine a partition that the
// message should be written to. If you want a message to go to an random
// partition then set ProdReq.key_undefined to true. Note that if both
// ProdReq.key_undefined and ProdReq.key_value are left default, which is
// empty string and false respectively, then messages will be consitently
// written to a partiticular partition selected by the hash of an empty
// string.
//
// gRPC error codes:
// * Invalid Argument (3): see the status description for details;
// * Internal (13): see the status description and logs for details;
// * Unavailable (14): the service is shutting down.
Produce(context.Context, *ProdRq) (*ProdRs, error)
// Consume reads a message from a topic and optionally acknowledges a
// message previously consumed from the same topic.
//
// Requests are performed in long polling fation, that is if all available
// messages have been consumed then the request will block for
// config.yaml:proxies.<cluster>.consumer.long_polling_timeout waiting for
// new messages. If no new messages is produced while waiting the request
// will return gRPC error with 408 status code.
//
// To consume the first message set ConsNAckReq.no_ack to true, since there
// is no message to acknowledge at this point. In the second and all
// subsequent calls of the method set ConsNAckReq.ack_partition and
// ConsNAckReq.ack_offset to the respective values of ConsRes returned by
// the previous method call. To acknowledge the last consumed message before
// teminating the application call Ack method.
//
// If a message is not acknowledged within
// config.yaml:proxies.<cluster>.consumer.ack_timeout the it will be returned
// by Kafka-Pixy in ConsRes again possibly to another application.
//
// If at-least-once delivery guarantee and retries are not desirable, then
// you can set ConsNAckReq.auto_ack to true and Kafka-Pixy will acknowledge
// messages automatically before returning them in ConsRes.
//
// gRPC error codes:
// * Not Found (5): It just means that all message has been consumed and
// the long polling timeout has elaspsed. Just keep calling this method
// in a loop;
// * Resource Exhausted (8): too many consume requests. Either reduce the
// number of consuming threads or increase
// config.yaml:proxies.<cluster>.consumer.channel_buffer_size;
// * Invalid Argument (3): see the status description for details;
// * Internal (13): see the status description and logs for details;
// * Unavailable (14): the service is shutting down.
ConsumeNAck(context.Context, *ConsNAckRq) (*ConsRs, error)
// Ack acknowledges a message earlier consumed from a topic.
//
// This method is provided solely to acknowledge the last consumed message
// before the application terminates. In all other cases ConsumeNAck should
// be used.
//
// gRPC error codes:
// * Invalid Argument (3): see the status description for details;
// * Internal (13): see the status description and logs for details;
Ack(context.Context, *AckRq) (*AckRs, error)
// Fetches partition offsets for the specified topic and group
//
// gRPC error codes:
// * Invalid Argument (3): If unable to find the cluster named in the request
// * Internal (13): If Kafka returns an error on offset request
// * NotFound (5): If the group and or topic does not exist
GetOffsets(context.Context, *GetOffsetsRq) (*GetOffsetsRs, error)
}
type PartitionOffset ¶ added in v0.14.0
type PartitionOffset struct {
// The Partition this structure describes
Partition int32 `protobuf:"varint,1,opt,name=partition" json:"partition,omitempty"`
// The beginning offset
Begin int64 `protobuf:"varint,2,opt,name=begin" json:"begin,omitempty"`
// The ending offset
End int64 `protobuf:"varint,3,opt,name=end" json:"end,omitempty"`
// The number of messages in the partition
Count int64 `protobuf:"varint,4,opt,name=count" json:"count,omitempty"`
// Offset in the partition
Offset int64 `protobuf:"varint,5,opt,name=offset" json:"offset,omitempty"`
// The number of un-consumed messages in the partition
Lag int64 `protobuf:"varint,6,opt,name=lag" json:"lag,omitempty"`
// Metatdata associated with the partition
Metadata string `protobuf:"bytes,7,opt,name=metadata" json:"metadata,omitempty"`
// human readable representation of sparsely committed ranges
SparseAcks string `protobuf:"bytes,8,opt,name=sparse_acks,json=sparseAcks" json:"sparse_acks,omitempty"`
}
func (*PartitionOffset) Descriptor ¶ added in v0.14.0
func (*PartitionOffset) Descriptor() ([]byte, []int)
func (*PartitionOffset) GetBegin ¶ added in v0.14.0
func (m *PartitionOffset) GetBegin() int64
func (*PartitionOffset) GetCount ¶ added in v0.14.0
func (m *PartitionOffset) GetCount() int64
func (*PartitionOffset) GetEnd ¶ added in v0.14.0
func (m *PartitionOffset) GetEnd() int64
func (*PartitionOffset) GetLag ¶ added in v0.14.0
func (m *PartitionOffset) GetLag() int64
func (*PartitionOffset) GetMetadata ¶ added in v0.14.0
func (m *PartitionOffset) GetMetadata() string
func (*PartitionOffset) GetOffset ¶ added in v0.14.0
func (m *PartitionOffset) GetOffset() int64
func (*PartitionOffset) GetPartition ¶ added in v0.14.0
func (m *PartitionOffset) GetPartition() int32
func (*PartitionOffset) GetSparseAcks ¶ added in v0.14.0
func (m *PartitionOffset) GetSparseAcks() string
func (*PartitionOffset) ProtoMessage ¶ added in v0.14.0
func (*PartitionOffset) ProtoMessage()
func (*PartitionOffset) Reset ¶ added in v0.14.0
func (m *PartitionOffset) Reset()
func (*PartitionOffset) String ¶ added in v0.14.0
func (m *PartitionOffset) String() string
type ProdRq ¶ added in v0.13.0
type ProdRq struct {
// Name of a Kafka cluster to operate on.
Cluster string `protobuf:"bytes,1,opt,name=cluster" json:"cluster,omitempty"`
// Name of a topic to produce to.
Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
// Hash of the key is used to determine the partition to produce to. By
// default it is an empty array which is a valid key, unless key_undefined
// is set to true and then a random partition is selected.
KeyValue []byte `protobuf:"bytes,3,opt,name=key_value,json=keyValue,proto3" json:"key_value,omitempty"`
// If true then the message is written to a random partition, otherwise
// hash of key_value is used to determine the partition.
KeyUndefined bool `protobuf:"varint,4,opt,name=key_undefined,json=keyUndefined" json:"key_undefined,omitempty"`
// Message body.
Message []byte `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
// If true then the method returns immediately after Kafka-Pixy gets the
// produce request, and the message is written to Kafka asynchronously.
// In that case partition and offset returned in response should be ignored.
// If false, then a response is returned in accordance with the
// producer.required_acks parameter, that can be one of:
// * no_response: the response is returned as soon as a produce request
// is delivered to a partition leader Kafka broker.
// * wait_for_local: the response is returned as soon as data is written
// to the disk by a partition leader Kafka broker.
// * wait_for_all: the response is returned after all in-sync replicas
// have data committed to disk.
AsyncMode bool `protobuf:"varint,6,opt,name=async_mode,json=asyncMode" json:"async_mode,omitempty"`
}
func (*ProdRq) Descriptor ¶ added in v0.13.0
func (*ProdRq) GetAsyncMode ¶ added in v0.13.0
func (*ProdRq) GetCluster ¶ added in v0.13.0
func (*ProdRq) GetKeyUndefined ¶ added in v0.13.0
func (*ProdRq) GetKeyValue ¶ added in v0.13.0
func (*ProdRq) GetMessage ¶ added in v0.13.0
func (*ProdRq) ProtoMessage ¶ added in v0.13.0
func (*ProdRq) ProtoMessage()
type ProdRs ¶ added in v0.13.0
type ProdRs struct {
// Partition the message was written to. The value only makes sense if
// ProdReq.async_mode was false.
Partition int32 `protobuf:"varint,1,opt,name=partition" json:"partition,omitempty"`
// Offset the message was written to. The value only makes sense if
// ProdReq.async_mode was false.
Offset int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
}
func (*ProdRs) Descriptor ¶ added in v0.13.0
func (*ProdRs) GetPartition ¶ added in v0.13.0
func (*ProdRs) ProtoMessage ¶ added in v0.13.0
func (*ProdRs) ProtoMessage()
Click to show internal directories.
Click to hide internal directories.