Стажировка

JmxTrans

Симптомы проблемы

JmxTrans

C*1

C*2

C*3

Graphite

Процесс решения

Quartz

ThreadPoolExecutor.submit

server x query

Server.execute(query)

JmxConnectionPool: borrow/return

Threads count: 10
 - java.net.PlainSocketImpl.socketConnect(java.net.InetAddress, int, int) @bci=0 (Compiled frame; information may be imprecise)
 - java.net.AbstractPlainSocketImpl.doConnect(java.net.InetAddress, int, int) @bci=64, line=350 (Compiled frame)
 - java.net.AbstractPlainSocketImpl.connectToAddress(java.net.InetAddress, int, int) @bci=23, line=206 (Compiled frame)
 - java.net.AbstractPlainSocketImpl.connect(java.net.SocketAddress, int) @bci=78, line=188 (Compiled frame)
 - java.net.SocksSocketImpl.connect(java.net.SocketAddress, int) @bci=381, line=392 (Compiled frame)
 - java.net.Socket.connect(java.net.SocketAddress, int) @bci=179, line=589 (Compiled frame)
 - java.net.Socket.connect(java.net.SocketAddress) @bci=3, line=538 (Compiled frame)
 - java.net.Socket.<init>(java.net.SocketAddress, java.net.SocketAddress, boolean) @bci=82, line=434 (Compiled frame)
 - java.net.Socket.<init>(java.lang.String, int) @bci=34, line=211 (Compiled frame)

sun.rmi.transport.tcp.responseTimeout (1.4 and later)
The value of this property represents the length of time (in milliseconds) that the client-side Java RMI runtime will use as a socket read timeout...

 

...The default value is zero (no timeout).

Quartz

ThreadPoolExecutor.submit

server x query

Server.execute(query)

JmxConnectionPool: borrow/return

Quartz

Executor1.submit

server1

ExecutorN.submit

serverN

Ощущения от проекта

Плюсы

  • Адекватный owner
  • Быстрый фидбек от owner'a
  • Код в принципе написан понятно

Минусы

  • Тесты на моках, которые нихера не тестят
  • Java 1.6 (без лямбд и прочего сахара)
  • Архитектура с экономией объектов

В целом

  • Код немного разнородный
  • Есть аналог JMX под .NET называется WMI
  • Система сборки Maven
  • Для разработки хватает бесплатной IDEA Community Edition
  • Программировать на Java — это как программировать на C#, обмазав руки говном
  • Очень много boilerplate

jmxtrans

By koteek

jmxtrans

  • 470