I'm currently using vertx with the service proxy to communicate between microservices. requests come in through a gateway via vertx REST frontend that calls various microservices using the vertx service proxy. I added some logging to print out the time it took to execute the call to the other microservce because I was noticing some slow performance and what I found was that the calls to the microservices were backing up. Here's a snippet of the log when it was nearing the end of the 10k requests I sent in:
2016-12-09 16:05:13,846 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29650ms
2016-12-09 16:05:13,846 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29648ms
2016-12-09 16:05:13,852 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29654ms
2016-12-09 16:05:13,857 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29653ms
2016-12-09 16:05:13,867 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29660ms
2016-12-09 16:05:13,873 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29663ms
2016-12-09 16:05:13,873 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29656ms
2016-12-09 16:05:13,874 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29660ms
2016-12-09 16:05:13,884 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29664ms
2016-12-09 16:05:13,900 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29678ms
2016-12-09 16:05:13,905 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29680ms
2016-12-09 16:05:13,917 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29690ms
2016-12-09 16:05:13,924 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29695ms
2016-12-09 16:05:13,939 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29710ms
2016-12-09 16:05:13,939 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29708ms
2016-12-09 16:05:13,950 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29714ms
2016-12-09 16:05:13,951 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29717ms
2016-12-09 16:05:13,958 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29718ms
2016-12-09 16:05:13,964 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29721ms
2016-12-09 16:05:13,972 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29727ms
2016-12-09 16:05:13,978 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29731ms
2016-12-09 16:05:13,993 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29745ms
2016-12-09 16:05:14,001 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29749ms
2016-12-09 16:05:14,011 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29757ms
2016-12-09 16:05:14,012 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29754ms
2016-12-09 16:05:14,012 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29756ms
2016-12-09 16:05:14,021 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29759ms
2016-12-09 16:05:14,021 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29761ms
2016-12-09 16:05:14,038 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29773ms
2016-12-09 16:05:14,050 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29783ms
2016-12-09 16:05:14,050 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29783ms
2016-12-09 16:05:14,056 INFO (vert.x-eventloop-thread-1) Log4j2LogDelegate.log: STORED : 29787ms
As you can see it went all the way up to 30 seconds. I must be doing something wrong or not have something configured properly. Can anyone shed some light on why it's backing up so severely or what I might try to improve the performance? This is all running locally on my desktop:
I register the service using the ProxyHelper and get the service using the EventBusService.<T> getProxy. I release the service after every call.
Any help would be appreciated.