提交 bd01258d 编写于 作者: W wenduo

feature:can bind to specific network-interface now

上级 2a57a90a
......@@ -13,7 +13,7 @@
class PikaBinlogReceiverThread : public pink::HolyThread<PikaMasterConn>
{
public:
PikaBinlogReceiverThread(int port, int cron_interval = 0);
PikaBinlogReceiverThread(std::string &ip, int port, int cron_interval = 0);
virtual ~PikaBinlogReceiverThread();
virtual void CronHandle();
virtual bool AccessHandle(std::string& ip);
......
......@@ -9,6 +9,7 @@ class PikaDispatchThread : public pink::DispatchThread<PikaClientConn>
{
public:
PikaDispatchThread(int port, int work_num, PikaWorkerThread** pika_worker_thread, int cron_interval);
PikaDispatchThread(std::string &ip, int port, int work_num, PikaWorkerThread** pika_worker_thread, int cron_interval);
virtual ~PikaDispatchThread();
virtual void CronHandle();
virtual bool AccessHandle(std::string& ip);
......
......@@ -7,7 +7,7 @@
class PikaHeartbeatThread : public pink::HolyThread<PikaHeartbeatConn>
{
public:
PikaHeartbeatThread(int port, int cron_interval = 0);
PikaHeartbeatThread(std::string &ip, int port, int cron_interval = 0);
virtual ~PikaHeartbeatThread();
virtual void CronHandle();
virtual bool AccessHandle(std::string& ip_port);
......
......@@ -6,8 +6,8 @@
extern PikaServer* g_pika_server;
PikaBinlogReceiverThread::PikaBinlogReceiverThread(int port, int cron_interval) :
HolyThread::HolyThread(port, cron_interval),
PikaBinlogReceiverThread::PikaBinlogReceiverThread(std::string &ip, int port, int cron_interval) :
HolyThread::HolyThread(ip, port, cron_interval),
thread_querynum_(0),
last_thread_querynum_(0),
last_time_us_(slash::NowMicros()),
......
......@@ -11,6 +11,10 @@ PikaDispatchThread::PikaDispatchThread(int port, int work_num, PikaWorkerThread*
DispatchThread::DispatchThread(port, work_num, reinterpret_cast<pink::WorkerThread<PikaClientConn>**>(pika_worker_thread), cron_interval) {
}
PikaDispatchThread::PikaDispatchThread(std::string &ip, int port, int work_num, PikaWorkerThread** pika_worker_thread, int cron_interval) :
DispatchThread::DispatchThread(ip, port, work_num, reinterpret_cast<pink::WorkerThread<PikaClientConn>**>(pika_worker_thread), cron_interval) {
}
PikaDispatchThread::~PikaDispatchThread() {
LOG(INFO) << "dispatch thread " << thread_id() << " exit!!!";
}
......
......@@ -6,8 +6,8 @@
extern PikaServer* g_pika_server;
PikaHeartbeatThread::PikaHeartbeatThread(int port, int cron_interval) :
HolyThread::HolyThread(port, cron_interval) {
PikaHeartbeatThread::PikaHeartbeatThread(std::string& ip, int port, int cron_interval) :
HolyThread::HolyThread(ip, port, cron_interval) {
}
PikaHeartbeatThread::~PikaHeartbeatThread() {
......
......@@ -66,9 +66,9 @@ PikaServer::PikaServer() :
pika_worker_thread_[i] = new PikaWorkerThread(1000);
}
pika_dispatch_thread_ = new PikaDispatchThread(port_, worker_num_, pika_worker_thread_, 3000);
pika_binlog_receiver_thread_ = new PikaBinlogReceiverThread(port_ + 1000, 1000);
pika_heartbeat_thread_ = new PikaHeartbeatThread(port_ + 2000, 1000);
pika_dispatch_thread_ = new PikaDispatchThread(host_, port_, worker_num_, pika_worker_thread_, 3000);
pika_binlog_receiver_thread_ = new PikaBinlogReceiverThread(host_, port_ + 1000, 1000);
pika_heartbeat_thread_ = new PikaHeartbeatThread(host_, port_ + 2000, 1000);
pika_trysync_thread_ = new PikaTrysyncThread();
monitor_thread_ = new PikaMonitorThread();
......
......@@ -208,7 +208,7 @@ void* PikaTrysyncThread::ThreadMain() {
std::string ip_port = slash::IpPortString(master_ip, master_port);
// We append the master ip port after module name
// To make sure only data from current master is received
int ret = slash::StartRsync(dbsync_path, kDBSyncModule + "_" + ip_port, g_pika_conf->port() + 3000);
int ret = slash::StartRsync(dbsync_path, kDBSyncModule + "_" + ip_port, g_pika_server->host(), g_pika_conf->port() + 3000);
if (0 != ret) {
LOG(WARNING) << "Failed to start rsync, path:" << dbsync_path << " error : " << ret;
}
......
Subproject commit 59c89f037dfdbd252e5f5f46fa6fcddc6f5716ba
Subproject commit 14e45570276ca1663b7913a8c11c4ad065db2b2f
Subproject commit b75f13dae2bbba609f948db4c83b16a8bf40f20b
Subproject commit f9c93459fb035c852907ea64605fd3fb3624e5b9
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册