java


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.)

Related Links

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

Categories

HOME
twitter
arduino-uno
urbancode
tizen
heroku
stock
onelogin
mouse
amazon-cloudformation
dacpac
here-api
nstableview
messages
quickfix
decomposition
django-admin
angular-ui
pugjs
ab-testing
code-review
firefox-webextensions
nodatime
jtextfield
zapier
mmap
tibco-mdm
captiveportal
sqlcipher
numerical-methods
dynamic-featured-image
intel-pin
virtualdub
buck
log4js-node
compatibility
preg-match
nameservers
twilio-api
noraui
pim
form-data
android-nestedscrollview
google-api-nodejs-client
wixsharp
hot-module-replacement
service-discovery
android-fingerprint-api
ensembles
executenonquery
python-c-api
powercli
directory-structure
composite-key
boost-preprocessor
orthogonal
url-pattern
angular-cache
sts-springsourcetoolsuite
ctest
gstreamer-0.10
contact-list
react-native-listview
rvest
pagerank
asp.net5
jfugue
tcpserver
endeca-workbench
citrus-pay
jqgrid-formatter
muse
cisco-ios
fscommand
winddk
phalanger
applescript-objc
castle
imdbpy
ivyde
runtime.exec
type-equivalence
typoscript2
pvrtc
sublist
newtonscript
file-comparison
celltable
infrastructure
getresponsestream
preference
asp.net-profiles
bespin
javap
temporal-database
sector

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App