View Source API Reference lib_oss v0.1.0

Modules

RocketMQ Broker Client

his module provides an implementation of the ExRocketmq.Compressor behaviour using the zlib library.

This module provides compression and decompression functionality for messages sent to and received from RocketMQ.

RocketMQ consumer

The balance strategy behaviour of consumer

This module implements the balance strategy for RocketMQ consumers.

BuffManager is responsible for managing buffers for RocketMQ consumers.

The processor is called when messages are received from the broker.

General exception with an optional string, map, or Keyword list stored in exception details

The broker cluster info model of rocketmq %{ "brokerAddrTable" => %{

The broker data model of rocketmq

The check transaction state header model

consumer send message back model

The end transaction header model

get max offset model

heartbeat data send to broker

The model of message sent by producer or consumed by consumer

extended message model

The mq info model of producer

consumer message selector

request/response header model for pull message

query consumer offset model

The queue data model of rocketmq %{ "brokerName" => "broker-0", "perm" => 6, "readQueueNums" => 2, "topicSynFlag" => 0, "writeQueueNums" => 2 }

search offset model

request/response header model for send message

subscription data model

The topic route info model of rocketmq

trace data model

trace item data model

update consumer offset model

The namesrvs layer of the rocketmq: how client communicates with the namesrvs. Most time, you should start nameserver under the supervision tree of your application.

Rocketmq offset store, manage offset for consumer

This module provides functions for concurrent message processing.

This module provides a GenServer implementation of a RocketMQ producer.

Provides a behaviour for selecting MessageQueues in the ExRocketmq Producer.

Implements random MessageQueue selection for the ExRocketmq Producer.

Implements hash-based MessageQueue selection for the ExRocketmq Producer.

Implements round-robin MessageQueue selection for the ExRocketmq Producer.

The implementation of transactional messages in RocketMQ is based on a three-step process

sysflag constants

RocketMQ properties

The pull status constants

The request code constants

The response code constants

The send status constants

Similar to the normal puller, but it will first try to acquire a lock on the queue

This module contains the implementation of the normal puller for RocketMQ. It handles pulling messages from the broker and processing them.

The remote layer of the rocketmq: how client communicates with the nameserver or broker. Remote support 3 functions

behavior of ext_fields

The communication package of RocketMQ is divided into four parts

encode/decode the packet to be sent or received

encode/decode the packet to be sent or received

The future-wait store of the remote, opaque => request pid This module is a wrapper of ets and genserver, ets is responsible for storing the request, and GenServer is responsible for cleaning up the expired request

{mq, :pull} => {locked, last_lock_timestamp, last_pull_timestamp} {mq, :consume} => last_consumed_timestamp

Trace data emiter

The transport layer of the rocketmq protocol, default implementation is ExRocketmq.Transport.TCP

Implement the transport layer of the rocketmq protocol via tcp

all kinds of typespecs

bit tool for bit operation

A simple buffer queue implementation using ETS tables.

generate client id

a module to define constants

Debug tools

Hashes terms using the FNV-1a 32-bit algorithm.

network tools

a simple wrapper of fifo-queue with agent, so you don't have to keep queue in Genserver state, just a agent pid

Utility module for generating unique IDs for RocketMQ messages or requests.