message: Listen on single port

This commit is contained in:
Asias He
2015-04-20 16:04:57 +08:00
parent b38dae4a2b
commit 8ea0d94ece
3 changed files with 9 additions and 14 deletions

View File

@@ -223,7 +223,7 @@ public:
handler(std::function<Func>&& rpc_handler_) : rpc_handler(std::move(rpc_handler_)) {}
};
private:
static constexpr const uint16_t _port_base = 7000;
static constexpr const uint16_t _default_port = 7000;
gms::inet_address _listen_address;
uint16_t _port;
rpc::protocol<serializer, messaging_verb> _rpc;
@@ -233,16 +233,13 @@ private:
public:
messaging_service(gms::inet_address ip = gms::inet_address("0.0.0.0"))
: _listen_address(ip)
, _port(_port_base + engine().cpu_id())
, _port(_default_port)
, _rpc(serializer{})
, _server(_rpc, ipv4_addr{_listen_address.raw_addr(), _port}) {
}
public:
uint16_t port_min() {
return _port_base;
}
uint16_t port_max() {
return _port_base + smp::count - 1;
uint16_t port() {
return _port;
}
auto listen_address() {
return _listen_address;
@@ -325,7 +322,7 @@ private:
rpc::protocol<serializer, messaging_verb>::client& get_rpc_client(shard_id id) {
auto it = _clients.find(id);
if (it == _clients.end()) {
auto remote_addr = ipv4_addr(id.addr.raw_addr(), _port_base + id.cpu_id);
auto remote_addr = ipv4_addr(id.addr.raw_addr(), _port);
auto client = std::make_unique<rpc::protocol<serializer, messaging_verb>::client>(_rpc, remote_addr);
it = _clients.emplace(id, shard_info(std::move(client))).first;
return *it->second.rpc_client;

View File

@@ -151,9 +151,8 @@ int main(int ac, char ** av) {
auto testers = new distributed<tester>;
testers->start().then([testers]{
auto& server = net::get_local_messaging_service();
auto min = server.port_min();
auto max = server.port_max();
std::cout << "Messaging server listening on ports " << min << " to " << max << " ...\n";
auto port = server.port();
std::cout << "Messaging server listening on port " << port << " ...\n";
return testers->invoke_on_all(&tester::init_handler);
}).then([testers, config] {
auto t = &testers->local();

View File

@@ -17,10 +17,9 @@ int main(int ac, char ** av) {
auto listen = gms::inet_address(config["listen-address"].as<std::string>());
net::get_messaging_service().start(std::ref(listen)).then([&] {
auto& server = net::get_local_messaging_service();
auto min = server.port_min();
auto max = server.port_max();
auto port = server.port();
auto listen = server.listen_address();
print("Messaging server listening on ip %s ports %d to %d ...\n", listen, min, max);
print("Messaging server listening on ip %s port %d ...\n", listen, port);
gms::get_failure_detector().start_single().then([&] {
gms::get_gossiper().start_single().then([&] {
auto&& config = app.configuration();