Browse Source

support for ELB health check

master
Sebastian Rieger 6 years ago
parent
commit
5c697ed25f
  1. BIN
      VerteilteSysteme-Examples/build/RMIEchoServer.jar
  2. BIN
      VerteilteSysteme-Examples/build/RMIMandelbrotCalculationsServer.jar
  3. BIN
      VerteilteSysteme-Examples/build/TCPPerfServer.jar
  4. BIN
      VerteilteSysteme-Examples/build/TCPServer.jar
  5. BIN
      VerteilteSysteme-Examples/build/TCPServerMulti.jar
  6. BIN
      VerteilteSysteme-Examples/build/TCPTimeCounterServer.jar
  7. BIN
      VerteilteSysteme-Examples/build/UDPServer.jar
  8. BIN
      VerteilteSysteme-Examples/build/UDPServerMulti.jar
  9. BIN
      VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar
  10. 4
      VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterClient.java
  11. 90
      VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterServer.java
  12. 9
      VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPServer.java

BIN
VerteilteSysteme-Examples/build/RMIEchoServer.jar

BIN
VerteilteSysteme-Examples/build/RMIMandelbrotCalculationsServer.jar

BIN
VerteilteSysteme-Examples/build/TCPPerfServer.jar

BIN
VerteilteSysteme-Examples/build/TCPServer.jar

BIN
VerteilteSysteme-Examples/build/TCPServerMulti.jar

BIN
VerteilteSysteme-Examples/build/TCPTimeCounterServer.jar

BIN
VerteilteSysteme-Examples/build/UDPServer.jar

BIN
VerteilteSysteme-Examples/build/UDPServerMulti.jar

BIN
VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar

4
VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterClient.java

@ -28,14 +28,14 @@ class TCPTimeCounterClient {
}
public static void main(String args[]) throws Exception {
String hostname = "35.156.87.228";
String hostname = "VertSys-ELB1-b88aad9416b2929b.elb.eu-central-1.amazonaws.com";
//String hostname = "";
int tcpPort = 36038;
//BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
long timestampStart, timestampSent, timestampEnd, delay;
// Hostname vom Benutzer anfragen auf dem der Server läuft
System.out.println("Bitte geben Sie die Server-Adresse ein: ");
//System.out.println("Bitte geben Sie die Server-Adresse ein: ");
//hostname = inFromUser.readLine();
// Socket erzeugen

90
VerteilteSysteme-Examples/src/verteiltesysteme/aws/TCPTimeCounterServer.java

@ -35,52 +35,62 @@ class TCPTimeCounterServer {
// Anfrage vom Client empfangen
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
String input = null;
// Vom Client gesendete Zahl einlesen und auf aktuellen Zählerstand addieren
long number = new Long(new String(inFromClient.readLine()));
long number;
try {
input = inFromClient.readLine();
} catch (IOException ie) {
// TODO Auto-generated catch block
ie.printStackTrace();
}
if (input != null) {
number = new Long(input);
// Verbindung zum Redis Cluster (Amazon ElastiCache)
//JedisPool pool = new JedisPool(new JedisPoolConfig(), redisClusterURL);
//Jedis jedis = pool.getResource();
//jedis.connect();
//JedisCluster jedisCluster = new JedisCluster(new HostAndPort(redisClusterURL, 6379));
//System.out.println("Connected to redis server");
// check whether server is running or not
//System.out.println("redis server is running: " + jedis.ping());
//System.out.println("redis server cluster info: " + jedis.clusterInfo());
// Variable für Zählerstand des Servers, dieser Zähler wird durch Anfragen der
// Clients erhöht
//jedisCluster.incrBy("vertsys-counter", number);
//long counter = new Long(jedisCluster.get("vertsys-counter"));
//jedisCluster.close();
//System.out.println("TTL:" + jedisCluster.ttl("vertsys-counter"));
//System.out.println("Anfrage von Client " + connectionSocket.getInetAddress() + ":" + connectionSocket.getPort() + " Zahl: " + number + " Zählerstand: " + counter);
//Verbindung zu S3
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
String region = s3Client.getRegionName();
if (!s3Client.doesObjectExist("vertsys-counter", region))
{
s3Client.putObject(bucketName, region, new Long(0).toString());
}
long counter = new Long(s3Client.getObjectAsString(bucketName, region));
counter = counter + number;
s3Client.putObject(bucketName, region, new Long(counter).toString());
// Verbindung zum Redis Cluster (Amazon ElastiCache)
//JedisPool pool = new JedisPool(new JedisPoolConfig(), redisClusterURL);
//Jedis jedis = pool.getResource();
//jedis.connect();
//JedisCluster jedisCluster = new JedisCluster(new HostAndPort(redisClusterURL, 6379));
//System.out.println("Connected to redis server");
// check whether server is running or not
//System.out.println("redis server is running: " + jedis.ping());
//System.out.println("redis server cluster info: " + jedis.clusterInfo());
// Variable für Zählerstand des Servers, dieser Zähler wird durch Anfragen der
// Clients erhöht
//jedisCluster.incrBy("vertsys-counter", number);
//long counter = new Long(jedisCluster.get("vertsys-counter"));
//jedisCluster.close();
//System.out.println("TTL:" + jedisCluster.ttl("vertsys-counter"));
//System.out.println("Anfrage von Client " + connectionSocket.getInetAddress() + ":" + connectionSocket.getPort() + " Zahl: " + number + " Zählerstand: " + counter);
// Try/Catch hinzugefügt, nachdem bei Einsatz Amazon AWS (Healthcheck des ELB) clientSentence null war
try {
// Antwort vom Server senden
String output = (Long.toString(counter) + " Zeit: " + System.currentTimeMillis() + " "
+ df.format(new Date(System.currentTimeMillis())));
System.out.println("Antwort des Servers: " + output);
// Zeilenumbruch anfügen, da Client mit readLine auf komplette Zeile wartet
outToClient.writeBytes(output + '\n');
} catch (IOException ioe) {
ioe.printStackTrace();
}
//Verbindung zu S3
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
String region = s3Client.getRegionName();
if (!s3Client.doesObjectExist("vertsys-counter", region))
{
s3Client.putObject(bucketName, region, new Long(0).toString());
}
long counter = new Long(s3Client.getObjectAsString(bucketName, region));
counter = counter + number;
s3Client.putObject(bucketName, region, new Long(counter).toString());
connectionSocket.close();
// Try/Catch hinzugefügt, nachdem bei Einsatz Amazon AWS (Healthcheck des ELB) clientSentence null war
try {
// Antwort vom Server senden
String output = (Long.toString(counter) + " Zeit: " + System.currentTimeMillis() + " "
+ df.format(new Date(System.currentTimeMillis())));
System.out.println("Antwort des Servers: " + output);
// Zeilenumbruch anfügen, da Client mit readLine auf komplette Zeile wartet
outToClient.writeBytes(output + '\n');
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (NullPointerException npe) {
npe.printStackTrace();
}
}
}
}

9
VerteilteSysteme-Examples/src/verteiltesysteme/socket/simple/TCPServer.java

@ -24,13 +24,14 @@ class TCPServer {
// Try/Catch hinzugefügt, nachdem bei Einsatz Amazon AWS (Healthcheck des ELB) clientSentence null war
try {
clientSentence = inFromClient.readLine();
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
if (clientSentence != null) {
capitalizedSentence = clientSentence.toUpperCase() + '\n';
outToClient.writeBytes(capitalizedSentence);
}
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (NullPointerException npe) {
npe.printStackTrace();
}
connectionSocket.close();
}
}
}
Loading…
Cancel
Save