В этом документе описывается простейший Rpc-поток в системе zero. Пожалуйста, обратитесь к следующим рисункам:
В вашем originator вы можете написать код следующим образом:
import io.vertx.core.json.JsonObject;
import io.vertx.up.annotations.EndPoint;
import io.vertx.up.annotations.Ipc;
import jakarta.ws.rs.BodyParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
@EndPoint
@Path("/cronus")
public class SpeakApi {
@Path("/forward")
@POST
@Ipc(to = "IPC://EVENT/ADDR", name = "ipc-coeus")
public JsonObject ipc(@BodyParam final JsonObject data) {
System.out.println(data);
return data;
}
}
Вы должны убедиться, что текущее имя терминатора — «ipc-coeus» в vertx-server.yml
, как показано ниже:
- name: ipc-coeus
type: ipc
config:
port: 6884
host: 0.0.0.0
Затем вы можете написать следующий код:
import io.vertx.up.annotations.Ipc;
import io.vertx.up.commune.Envelop;
public class SpeakWorker {
@Ipc(value = "IPC://EVENT/ADDR")
public String send(final Envelop envelop) {
final JsonObject data = envelop.data(JsonObject.class);
data.put("role", "Terminator");
return data.encode();
}
}
*: Убедитесь, что атрибут «to» в Originator совпадает со значением «value» в Terminator.
На консоли coeus вы должны увидеть следующее:
[ Up Rpc ] <Application Name> = "zero-istio",
[ Up Rpc ] Configuration Rpc Point = /zero/zero-istio/ipc/routes/ipc-coeus:10.0.0.7:6884,
[ Up Rpc ] Service Name = ipc-coeus,
[ Up Rpc ] Ipc Channel = grpc://10.0.0.7:6884
[ Up Rpc ] Ipc Address =
[ Up Rpc √ ] IPC://EVENT/ADDR
[ Up Rpc ] √ Successfully to registered IPCs, wait for community......SUCCESS √
Тогда на консоли cronus вы должны увидеть следующее:
[ Up Micro ] <Application Name> = "zero-istio",
[ Up Micro ] Configuration Path = /zero/zero-istio/endpoint/routes/up-cronus:10.0.0.7:6083,
[ Up Micro ] Service Name = up-cronus,
[ Up Micro ] EndPoint = http://10.0.0.7:6083
[ Up Micro ] Route Uris =
[ Up Micro ] /cronus/direct
[ Up Micro ] /cronus/forward
[ Up Micro ] √ Successfully to registered Routes, wait for discovery......SUCCESS √
Отправьте запрос на http://10.0.0.7:6083/cronus/forward, вы должны увидеть следующий вывод:
Тело запроса:
{
"username":"lang.yu",
"password":"173AFAD5992A3F73A472FC09B05B1FB7"
}
Ответное тело:
{
"data": {
"username": "lang.yu",
"password": "173AFAD5992A3F73A472FC09B05B1FB7",
"role": "Terminator"
}
}
Таким образом, эти две службы взаимодействуют, и вторая служба помещает значение «Terminator» в ключ «role». Поток запросов в zero должен быть следующим (up-coeus / up-cronus — это две разные микрослужбы):
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )