@Log4j2\n@Getter\npublic class GatewayConfig {\n\n //网关ID\n private short id;\n\n //端口\n private int recvPort;\n\n //排队机通信Provider端口\n private int fetchServPort;\n\n\n //TODO 柜台列表 数据库连接\n\n @Setter\n private IBodyCodec bodyCodec;\n\n @Setter\n private ICheckSum cs;\n\n private Vertx vertx = Vertx.vertx();\n\n\n public void initConfig(InputStream in) throws Exception {\n // 创建dom4j 解析器\n SAXReader reader = new SAXReader();\n Document document = reader.read(in);\n Element root = document.getRootElement();\n\n //1.端口\n id = Short.parseShort(root.element("id").getText());\n recvPort = Integer.parseInt(root.element("recvport").getText());\n\n fetchServPort = Integer.parseInt(root.element("fetchservport").getText());\n log.info("GateWay ID:{},Port:{},FetchServPort:{}", id, recvPort, fetchServPort);\n\n\n //TODO 数据库连接 连接柜台列表\n\n }\n\n public void startup() throws Exception {\n //1.启动TCP服务监听\n initRecv();\n\n //2.排队机交互\n initFetchServ();\n\n }\n\n\n private void initFetchServ() {\n ServerConfig rpcConfig = new ServerConfig()\n .setPort(fetchServPort)\n .setProtocol("bolt");\n\n //implement IFetchService\n ProviderConfig providerConfig = new ProviderConfig()\n .setInterfaceId(IFetchService.class.getName())\n .setRef(() -> OrderCmdContainer.getInstance().getAll())\n .setServer(rpcConfig);\n providerConfig.export();\n\n log.info("gateway startup fetchServ success at port : {}", fetchServPort);\n\n }\n\n private void initRecv() {\n NetServer server = vertx.createNetServer();\n server.connectHandler(new ConnHandler(this));\n server.listen(recvPort, res -> {\n if (res.succeeded()) {\n log.info("gateway startup success at port : {}", recvPort);\n } else {\n log.error("gateway startup fail");\n }\n });\n }\n}

网关配置类 - GatewayConfig - 初始化和启动网关服务

原文地址: https://www.cveoy.top/t/topic/pumU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录