В этой главе мы сосредоточимся на режиме потока RPC, в этом режиме мы встретим различные роли (методы), такие как Originator
, Coordinator
, Terminator
и т. д.
Http-порт | Ipc-порт | Имя службы Ipc | Проект | Роль |
---|---|---|---|---|
6100 | — | — | up-athena | Шлюз API |
6301 | 6311 | ipc-epimetheus | up-epimetheus | Originator |
6501 | 6511 | ipc-hecate | up-hecate | Терминатор |
Мы представили стиль интерфейса, чтобы игнорировать Actor, он отключён в rpc-коммуникации, это означает, что если вы отправляете rpc-запрос от Отправителя (Агента), вы не можете отправить сообщение внутреннему Потребителю (Рабочему), стиль интерфейса используется в коммуникации между Отправителем и Потребителем.
package up.god.micro.agent;
import io.vertx.core.json.JsonObject;
import io.vertx.up.annotations.EndPoint;
import io.vertx.up.annotations.Ipc;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@EndPoint
@Path("/api")
public interface SimpleApi {
@Path("ipc/stream/agent1/{name}")
@GET
@Ipc(to = "RPC://IPC/NODE/AGENT1", name = "ipc-hecate")
JsonObject saySimple(@PathParam("name") String name);
}
package up.god.micro.agent;
import io.vertx.core.json.JsonObject;
public class SimpleActor implements SimpleApi {
@Override
public JsonObject saySimple(final String name) {
return new JsonObject()
.put("name", name)
.put("originator", "ipc-epimetheus");
}
}
package up.god.ipc;
import io.vertx.core.json.JsonObject;
import io.vertx.up.annotations.Ipc;
import io.vertx.up.commune.Envelop;
public class SimpleInsider {
@Ipc("RPC://IPC/NODE/AGENT1")
public JsonObject saySimple(final Envelop envelop) {
final JsonObject data = envelop.data();
return data.put("terminator", "ipc-hecate");
}
}
После запуска трёх вышеуказанных сервисов вы можете протестировать этот сервис следующим образом:
URL: http://localhost:6100/api/ipc/stream/agent1/huan
Метод: GET
Ответ:
{
"data": {
"name": "huan",
"originator": "ipc-epimetheus",
"terminator": "ipc-hecate"
}
}
Из вышеприведённого тестирования вы могли видеть, что RPC между Originator
и Terminator
успешно осуществлён, это очень простой пример, демонстрирующий коммуникацию между двумя ролями.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )