Vert.x WriteStream setWriteQueueMaxSize - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в Vert.x. Когда я читаю текст записи в статье из https://vertx.io/docs/vertx-core/java/ следующим образом:

setWriteQueueMaxSize: set the number of object at which the write queue is
 considered full, and the method writeQueueFull returns true. Note that, 
when the write queue is considered full, if write is called the data will 
still be accepted and queued. The actual number depends on the stream 
implementation, for Buffer the size represents the actual number of bytes 
written and not the number of buffers.

, особенно этот оператор - «Обратите внимание, что когда очередь записи считается заполненной, если запись называется данные по-прежнему будут приниматься и помещаться в очередь. ", из этого утверждения у меня есть несколько вопросов:

(1) Есть ли какие-либо ограничения на размер записи в поток? Я имею в виду, например, как шина событий, сколько сообщений можно записать в шину событий? Это от памяти зависит? Предположим, я продолжаю писать сообщения в шину событий, и сообщение не используется, вызывает ли это недостаток памяти в Java?

(2) Если есть некоторые ограничения для записи, где и как я могу проверить размер очереди по умолчанию? Например, я хочу узнать размер очереди Vert.x KafkaProducer по умолчанию, где я могу его проверить?

Любые идеи приветствуются.

1 Ответ

0 голосов
/ 30 мая 2020

Там на самом деле есть три отдельных вопроса, но я все равно попробую:

Есть ли какие-либо ограничения на размер записи в поток?

Это зависит от реализации потока. Но я еще не видел ни одной реализации, которая фактически использует WriteQueueMaxSize

, сколько сообщений может быть записано в шину событий? Это зависит от памяти?

EventBus - это особый случай. Если никто не использует EventBus, он просто отбрасывает сообщения, поэтому в таком тривиальном случае может быть записано бесконечное число. Но если есть потребители, и они медленные, да, со временем у вас закончится память. Реализация EventBus в настоящее время ничего не делает с WriteQueueMaxSize

Если есть какие-то ограничения на запись, где и как я могу проверить размер очереди по умолчанию? Например, я хочу узнать размер очереди Vert.x KafkaProducer по умолчанию, где я могу его проверить?

Все проекты Vert.x имеют открытый исходный код, поэтому вы обычно найдете их на GitHub (или другого репозитория с открытым исходным кодом, но на самом деле я не помню ни одного, которого нет на GitHub).

В частности, для Vert.x KafkaProducer вы можете увидеть здесь код:

https://github.com/vert-x3/vertx-kafka-client/blob/1720d5a6792f70509fd7249a47ab50b930cee7a7/src/main/java/io/vertx/kafka/client/producer/impl/KafkaProducerImpl.java#L217

...