Uzak Makinedeki Docker’ların On/Off Durumlarını Sorgulayabilme

Bizim Docker’larımızda Tomcat uygulamalarımız çalışmaktaydı. Yapmamız gereken ilgili ip:port’tun aktif olup olmadığını kontrol etmek. Bu işlemi’de belli aralıklar ile yaparsak

Uzak Makinedeki Port’ların On/Off Durumlarının Sorgulanması

Java’da bu işlemi oldukça basit bir şekilde gerçekleştirebiliriz. Net paketini kullanarak ilgili Socketlere bağlantı oluşturmaya çalışıp belli bir hata oluşması durumunda Docker’ın çalışmadığını belirtebilirsiniz.

import java.net.*;
public class PortScanner{

public static void main(String args[]){
int startPortRange=8880;
int stopPortRange=8892;
         for(int i=startPortRange; i <=stopPortRange; i++){
try{
Socket ServerSok = new Socket("52.18.72.170",i);
System.out.println("Port in use: " + i );
ServerSok.close();
}catch (Exception e){
e.printStackTrace();
}
System.out.println("Port not in use: " + i );
}
}
}

Bu işlemin Belli Aralıklar ile Tekrar Ettirilmesi

Spring’de ApplicationContext.xml’de bir scheduler tanımlayın. 10 saniye aralıklara Docker’ların durumunu dinleyen bir scheduler.

<task:scheduler id=”taskScheduler”/>
<task:executor id=”taskExecutor” pool-size=”1"/>
<task:annotation-driven executor=”taskExecutor” scheduler=”taskScheduler”/>

<task:scheduled-tasks scheduler=”icsScheduler”>
<task:scheduled ref=”ScheduledTask” method=”listenServers” fixed-delay=”10000" />
</task:scheduled-tasks>
<task:scheduler id=”icsScheduler” pool-size=”10" />

Bunun karşılığında Java kısmına ilgili kodunuzu yazın. listenServers() kısmında yukarıdaki PortScanner’a benzer bir kod yazarak Docker’ların durumunu sorgulayabilirsiniz.

@Component(“ScheduledTask”)
public class ScheduledTask {
@Autowired
IPersonIOService personIOService;
public void listenServers() throws Exception {
Logger.getLogger(ScheduledTask.class.getName()).log(Level.SEVERE, “Sunucuların çalışma durumları kontrol başlandı”);
personIOService.listenServers();
Logger.getLogger(ScheduledTask.class.getName()).log(Level.SEVERE, “Sunucuların çalışma durumları kontrol bitti”);
}
}