producer ordered/unordered send
Closed this issue · 3 comments
bitcapybara commented
- use a QUIC connection for each producer/consumer
- self-managed connection reconnect in producer/consumer
- self-managed connection pool in producer/consumer
bitcapybara commented
- BudClient
* hold the connection info: broker address, etc.
* has aget_connection
method(connection manager)
* clonable, hold by producer/consumer - producer/consumer
* get connection from client
* setup reader/writer
* reconnect
bitcapybara commented
- use one connection per client
- use
Arc<Connection>
from client in producer/consumer - use a SharedError in producer/consumer to notify connection broken
- client reader hold a
HashMap<consumer_id, unbounded_sender>
for all consumers, after reconnect, sendAddConsumer
message to reader - client sender hold
event_tx
to sendAddConsumer/DelConsumer
bitcapybara commented
- consumer engine background task, receive message and send to consumer
- consumer receive message, poll by user