You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
inside your verticles you deploy the rest api with the same instance, created in the verticle.
// create the service instance
ProductService productService = new ProductServiceImpl(vertx, config());
// register the service proxy on event bus
ProxyHelper.registerService(ProductService.class, vertx, productService, SERVICE_ADDRESS);
...
.compose(servicePublished -> deployRestService(productService))
...
As an example:
you could use a http client inside your ProductServiceImpl (and create this one time with the constructor)
inside ProductServiceImpl there is a method "test" wich one use this http client
and following changes in the ProductVerticle:
private Future<Void> bindEventBusListener(ProductService productService) {
Future<Void> future = Future.future();
vertx.eventBus().consumer("cqrs.channel", m -> {
productService.test(); // <--- this is important
}).completionHandler(future.completer());
return future.map(r -> null);
}
you will run in this:
[vert.x-eventloop-thread-1] WARN io.vertx.core.http.impl.ConnectionManager - Reusing a connection with a different context: an HttpClient is probably shared between different Verticles
as a solution, you should give a proxy instance inside the Rest API and inside the eventbus consumer.
Maybe you ask why a eventBus consumer inside you verticles is needed. In my project i use CQRS and communicate with events.
As an example:
i've a customer and a email messaging verticle in your style.
a customer calls register and we write the data into a database and return the customer maybe a access_token.
at the same time, we're using the eventbus to send a CUSTOMER_REGISTER event.
this CUSTOMER_REGISTER is subscribed inside the messaging verticle and will send a email with a confirmation code to this customer
after that, the messaging verticle send a CONFIRMATION_MAIL_SEND event (including the generated confirmation code)
this CONFIRMATION_MAIL_SEND is subscribed by the customer verticle and save this confirmation code inside the customer database (via this testMethod from above)
i hope, i could describe my topic
Thanks
Marcel
P.s: i forget one thing to mention. both verticles DON'T share any Java Classes or generated code (to keep them decoupled). They just send plain JsonObject's to a channel.
The text was updated successfully, but these errors were encountered:
Hi,
inside your verticles you deploy the rest api with the same instance, created in the verticle.
As an example:
you could use a http client inside your ProductServiceImpl (and create this one time with the constructor)
inside ProductServiceImpl there is a method "test" wich one use this http client
and following changes in the ProductVerticle:
you will run in this:
[vert.x-eventloop-thread-1] WARN io.vertx.core.http.impl.ConnectionManager - Reusing a connection with a different context: an HttpClient is probably shared between different Verticles
as a solution, you should give a proxy instance inside the Rest API and inside the eventbus consumer.
Maybe you ask why a eventBus consumer inside you verticles is needed. In my project i use CQRS and communicate with events.
As an example:
i've a customer and a email messaging verticle in your style.
a customer calls register and we write the data into a database and return the customer maybe a access_token.
at the same time, we're using the eventbus to send a CUSTOMER_REGISTER event.
this CUSTOMER_REGISTER is subscribed inside the messaging verticle and will send a email with a confirmation code to this customer
after that, the messaging verticle send a CONFIRMATION_MAIL_SEND event (including the generated confirmation code)
this CONFIRMATION_MAIL_SEND is subscribed by the customer verticle and save this confirmation code inside the customer database (via this testMethod from above)
i hope, i could describe my topic
Thanks
Marcel
P.s: i forget one thing to mention. both verticles DON'T share any Java Classes or generated code (to keep them decoupled). They just send plain JsonObject's to a channel.
The text was updated successfully, but these errors were encountered: