huge rework, RAFT WORKING

This commit is contained in:
Daniel
2024-12-12 23:26:47 +02:00
parent 1ddec6a353
commit 8b5f755152
25 changed files with 375 additions and 625 deletions

View File

@@ -0,0 +1,45 @@
package io.github.lumijiez;
import java.util.Timer;
import java.util.TimerTask;
public class AddressHolder {
private String host;
private int port;
private static AddressHolder INSTANCE;
private AddressHolder() {
// Timer timer = new Timer(true);
// timer.scheduleAtFixedRate(new TimerTask() {
// @Override
// public void run() {
// Main.logger.info("Host: {}, Port: {}", host, port);
// }
// }, 0, 1000);
}
public static AddressHolder getInstance() {
if (INSTANCE == null) {
INSTANCE = new AddressHolder();
}
return INSTANCE;
}
public int getPort() {
return port;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public void setPort(int port) {
this.port = port;
}
}

View File

@@ -0,0 +1,20 @@
package io.github.lumijiez;
import io.github.lumijiez.requests.UpdateLeaderRequest;
import io.javalin.Javalin;
import io.javalin.http.Context;
public class JavalinHttpConfig {
public static void setup(Javalin app) {
app.post("/update_leader", JavalinHttpConfig::handleUpdateLeader);
}
public static void handleUpdateLeader(Context ctx) {
UpdateLeaderRequest request = ctx.bodyAsClass(UpdateLeaderRequest.class);
AddressHolder.getInstance().setHost(request.getLeaderHost());
AddressHolder.getInstance().setPort(request.getLeaderPort());
Main.logger.info("Changed host to leader: {}:{}", request.getLeaderHost(), request.getLeaderPort());
}
}

View File

@@ -1,8 +1,26 @@
package io.github.lumijiez;
public class Main {
import io.javalin.Javalin;
import io.javalin.json.JavalinGson;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.time.Duration;
public class Main {
public static Logger logger = LogManager.getLogger(Main.class);
public static void main(String[] args) {
BrokerConnector.connect();
new Thread(BrokerConnector::connect, "RabbitMQ-Connection").start();
Javalin app = Javalin.create(config -> {
config.jsonMapper(new JavalinGson());
config.jetty.modifyWebSocketServletFactory(wsFactoryConfig -> {
wsFactoryConfig.setIdleTimeout(Duration.ZERO);
});
}).start(8081);
JavalinHttpConfig.setup(app);
logger.info("Discovery service up and running");
}
}

View File

@@ -0,0 +1,22 @@
package io.github.lumijiez.requests;
public class UpdateLeaderRequest {
private String leaderHost;
private int leaderPort;
public void setLeaderHost(String leaderHost) {
this.leaderHost = leaderHost;
}
public void setLeaderPort(int leaderPort) {
this.leaderPort = leaderPort;
}
public int getLeaderPort() {
return leaderPort;
}
public String getLeaderHost() {
return leaderHost;
}
}