huge rework, RAFT WORKING
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user