Исходный код вики Конвейер и Запрос-Ответ

Версия 2.6 от Alexandr Fokin на 2024/06/12 15:38

Скрыть последних авторов
Alexandr Fokin 2.5 1 |(% style="width:267px" %)Запрос-Ответ.
Alexandr Fokin 2.6 2 Также синхронное взаимодействие.|(% style="width:1228px" %)
Alexandr Fokin 2.5 3 |(% style="width:267px" %)Двухсторонний конвейер.
4 Также асинхронное взаимодействие.|(% style="width:1228px" %)(((
Alexandr Fokin 2.3 5 (% style="width:469px" %)
6 |(% style="width:128px" %) |(% style="width:338px" %)(((
7 1. поток заявок
8 1. поток ответов
9 )))
10 |(% style="width:128px" %)Клиент|(% style="width:338px" %)(((
11 * Пишет в поток заявок
12 * Читает поток ответов
13 )))
14 |(% style="width:128px" %)Сервер|(% style="width:338px" %)(((
15 * Читает поток заявок
16 * Пишет в поток ответов
17 )))
Alexandr Fokin 2.1 18
Alexandr Fokin 2.3 19 1. Клиент кладет заявку в поток заявок.
20 1. Сервер забирает заявку из потока заявок.
21 1. Сервер выполняет обработку.
22 1. Сервер кладет результат обработки в поток ответов.
23 1. Клиент забирает результаты из потока ответов.
Alexandr Fokin 2.1 24
Alexandr Fokin 2.3 25 В качестве промежуточного узла между клиентом и сервером может выступать [[Брокеры сообщений>>doc:Разработка.Брокеры сообщений.WebHome]].
Alexandr Fokin 2.1 26
Alexandr Fokin 2.3 27 ----
Alexandr Fokin 2.1 28
29 Вопросы
Alexandr Fokin 2.5 30 1) Если несколько клиентов работают через одну очередь, то способные ли они:
31 1.1) Получать ответы только на свои заявки, не пересекаясь с другими.
32 1.2) Получать весь поток ответов и фильтровать его, отбирая только свои ответы.
Alexandr Fokin 2.1 33 2) Вопрос скорости обработки. Успевает ли сервер обрабатывать весь поток заявок или же очередь заявок нарастает.
Alexandr Fokin 2.3 34 3) Вопрос размеров очереди сообщений.
35 )))
Alexandr Fokin 2.5 36 |(% style="width:267px" %) |(% style="width:1228px" %)
Alexandr Fokin 2.6 37
38
39 |(% style="width:269px" %)Синхронное взаимодействие|(% style="width:1216px" %)(((
40 |(% style="width:125px" %)Запрос - ответ|(% style="width:1073px" %)(((
41 1. Клиент посылает запрос на сервер.
42 1. Сервер выполняет некоторые действия.
43 1. Сервер возвращает ответ.
44 Обычно предполагается, что промежуток времени между началом и окончанием выполнения запроса не велик и превышение некоторого промежутка времени рассматривается как ошибка (timeout).
45 )))
46 |(% style="width:125px" %) |(% style="width:1073px" %)
47 )))
48 |(% style="width:269px" %)Асинхронное взаимодействие|(% style="width:1216px" %)(((
49 |(% style="width:130px" %)Запрос - ответ|(% style="width:1068px" %)(((
50 |(% style="width:128px" %) |(% style="width:338px" %)(((
51 1. очередь команд
52 1. очередь ответов
53 )))
54 |(% style="width:128px" %)Клиент|(% style="width:338px" %)(((
55 * Пишет в очередь команд
56 * Читает очередь ответов
57 )))
58 |(% style="width:128px" %)Сервер|(% style="width:338px" %)(((
59 * Читает очередь команд
60 * Пишет в очередь ответов
61 )))
62 | |
63 )))
64 |(% style="width:130px" %)Оповещение (событие)|(% style="width:1068px" %)
65 |(% style="width:130px" %) |(% style="width:1068px" %)
66
67
68 )))
69 |(% style="width:269px" %) |(% style="width:1216px" %)
70
71