JMX polling or TCP Pushing: What is better?
I have to implement a monitoring solution. For this reason a MetricsMicroService has to collect metric data from other microservices. Every minute and for each server, a metricsMicroService has to collect data from 4-6 other microservices and save it to the database. Now my question is: What is the most performant way to transfer metric data? From my point of view there is the choice between the following solutions: polling the data via JMX pushing to a WebSocket via TCP Does anybody have some advice? Thanks in advance!
I tend to prefer the push model since I can gather all the JMX stats locally, compress them into a payload and make one transmission to an external listener, rather than make several calls into the JVM from a remote. Having said that, a few non-standard JMX clients support request batching (e.g. Jolokia) and then it's 3 of one, a quarter dozen of another. (Not sure if Jolokia compresses, but one of it's deployments is as a WAR so it's probably not difficult to make it do so.)
Tomcat 8.0.x Websockets, SSL and Windows --> last frame delayed
Gradle build error in android studio with appcompact library
Java EE too big content size of response
Java color changing Graphics with Timer
Where to generate ressources into during Annotation processing in a maven workflow?
Specified stream length is wrong. Fall back to reading stream until endstream
Guava what methods are being called when insert and delete
Investment Calculator not outputing anything
Hadoop - set custom jdk path/version in job configuration
Find 2 equals objects in different heap dump using visualvm
Delete index document using solr java api
Jetty Server running separate process
Junit strange behaviour with setup method, elements that have been initialized in setup() method, are not updating in #test method
How to draw a line with arrow in SWT on Canvas
Performing large queries on Google App Engine Datastore
Window Listener and Action Listener in one class JAVA