Size: a a a

2020 July 16

В

Влад in Rust Async
diabolo
норм, решение
вот только непонятно определение "средненькая машина"
Допустим  i7-4790K 4 ядра 8 потоков 4гц. На какую 10^x степень клиентов ориентироваться
источник

С

Сергей in Rust Async
Зависит от логики обработки запросов. Больше ~65к одновременных соединений всё равно не установить - порты закончатся
источник

В

Влад in Rust Async
Спасибо за ответы, начинаю развлекаться с акторами)
источник

A

Adv0cat in Rust Async
Сергей
Зависит от логики обработки запросов. Больше ~65к одновременных соединений всё равно не установить - порты закончатся
в одну машнку можно не одну сетевую карту вставить и ограничение спадет 😄
источник

AV

A V in Rust Async
Влад
Добрый день, только начал изучать актикс и асинхроншину в расте и есть небольшие вопросы. Для каждого пользователя у меня должнать быть очередь запросов и ssl соединение с третьей стороной с использованием сертификата пользователя, планирую сделать это с помощью акторов, под каждого пользователя при запросе создавать актора(если не существует), который будет держать ссл и обрабатывать очередь(~3 запросов в секунду), как только очередь кончилась убивать актора. Интересует насколько это адекватное решение и сколько примерно экземпляров акторов можно создать на средненькой машине(100, 1000, 10000)?
Зачем акторы когда есть tokio::spawn....
источник

В

Влад in Rust Async
A V
Зачем акторы когда есть tokio::spawn....
Пишу на актикс_веб сервис и акторы первое что пришло в голову, с токио еще толком не разбирался
источник

AV

A V in Rust Async
Лучше пиши сразу на токио
источник

AV

A V in Rust Async
Как минимум будет меньше проблем с интеграцией асинхронных библиотек
источник

AV

A V in Rust Async
+ возможно что акторы не нужны когда есть структурированная конкурентность
источник

В

Влад in Rust Async
A V
Лучше пиши сразу на токио
Хорошо, попробую разобраться с токио. Довольно сложно мне дается асинхронщина и тд в расте. Начну пожалуй с статьи Hirrolot, только сейчас заметил, что он ее уже выпустил)
источник

PL

Paul Loyd in Rust Async
A V
Зачем акторы когда есть tokio::spawn....
Ну тогда уж spawn+очереди. Потому как актор это всегда mailbox + логика для обработки сообщений. Просто в случае с actix это "пассивные" акторы (пишешь только функции-обработчики, сложно интегрировать таймеры/io, зато выглядит аккуратнее), а в случае с явным spawn+очереди это "активные" акторы (нужно самому написать loop, зато проще интегрировать сюда таймеры/io).
источник

PL

Paul Loyd in Rust Async
Мне вот не хватает actix, но поверх threaded scheduler. Всё же чаще всего руками раскидывать акторы по арбитрам — оверхед на разбраотчике
источник

AV

A V in Rust Async
Paul Loyd
Ну тогда уж spawn+очереди. Потому как актор это всегда mailbox + логика для обработки сообщений. Просто в случае с actix это "пассивные" акторы (пишешь только функции-обработчики, сложно интегрировать таймеры/io, зато выглядит аккуратнее), а в случае с явным spawn+очереди это "активные" акторы (нужно самому написать loop, зато проще интегрировать сюда таймеры/io).
Чем mailbox лучше ограниченной очереди?
источник

PL

Paul Loyd in Rust Async
A V
Чем mailbox лучше ограниченной очереди?
Не понял? mailbox и есть (не)ограниченная очередь
источник

AV

A V in Rust Async
Я про tokio::sync::mpsc
источник

PL

Paul Loyd in Rust Async
mailbox может быть поверх этой очереди реализован
источник

PL

Paul Loyd in Rust Async
Мы же про архитектурный подход.
Либо ты пишешь
struct Kek { .. }
impl Actor for Kek
impl Handler<..> for Kek { /* LOGIC */ }

Либо ты пишешь
struct Kek { .. }
impl Kek {
   pub async fn run(self, input: Receiver<..>) {
       loop {
            let msg = input.recv().await;
            /* LOGIC */
       }
   }
}
источник

PL

Paul Loyd in Rust Async
Ещё есть подход с описанием актора как redux-like стора и редьюсера. Но в расте не видел реализаций. В целом, это разновидность первого варианта
источник
2020 July 21

AT

Alexey Trifonov in Rust Async
Carl Lerche at 9:54 PM:

We released a new website w/ new guides! https://tokio.rs/ I would love feedback. Feel free to open issues on the repo: https://github.com/tokio-rs/website
источник

YJ

Yo Jla in Rust Async
👍🏻
источник