ceph_osd.cc
// 创建AsyncMessager对象
|---Messenger *ms_public = Messenger::create(g_ceph_context, public_msgr_type, entity_name_t::OSD(whoami), "client",
getpid(), Messenger::HAS_HEAVY_TRAFFIC | Messenger::HAS_MANY_CONNECTIONS);
|---starting osd.0 at 空(ms_public->get_myaddr()) osd_data /var/lib/ceph/osd/ceph-0 (g_conf->osd_data) $1/journal(g_conf->osd_journal)
// 设置通信协议
|---ms_public->set_default_policy(Messenger::Policy::stateless_server(0)); // Policy(true, true, false, false, req);
|---SimplePolicyMessenger::void set_default_policy(Policy p) override
|---default_policy = p;
|---boost::scoped_ptr<Throttle> client_byte_throttler(new Throttle(g_ceph_context, "osd_client_bytes", g_conf->osd_client_message_size_cap));
|---ms_public->set_policy_throttlers(entity_name_t::TYPE_CLIENT, client_byte_throttler.get(), nullptr);
|---default_policy.throttler_bytes = byte_throttle
|---default_policy.throttler_messages = msg_throttle // null
// Policy(true, false, false, false, req)
|---ms_public->set_policy(entity_name_t::TYPE_MON, Messenger::Policy::lossy_client(CEPH_FEATURE_UID | CEPH_FEATURE_PGID64 | CEPH_FEATURE_OSDENC));
|---policy_map[type] = p;
|---ms_public->set_policy(entity_name_t::TYPE_MGR, Messenger::Policy::lossy_client(CEPH_FEATURE_UID | CEPH_FEATURE_PGID64 | CEPH_FEATURE_OSDENC));
|---policy_map[type] = p;
|---ms_public->set_policy(entity_name_t::TYPE_OSD, Messenger::Policy::stateless_server(0)); // Policy(true, true, false, false, 0)
|---policy_map[type] = p;
// 绑定端口
|---ms_public->bind(g_conf->public_addr); // AsyncMessenger::bind(const entity_addr_t &bind_addr) 172.17.22.25:0/0
|---for (auto &&p : processors)
|--- p->bind(bind_addr, avoid_ports, &bound_addr); // int Processor::bind(const entity_addr_t &bind_addr, const set<int>& avoid_ports, entity_addr_t* bound_addr)
|---bound on random port 172.17.22.25:6801/0
|---bound to 172.17.22.25:6801/25921
|---_finish_bind(bind_addr, bound_addr);
|---bind my_inst.addr is 172.17.22.25:6801/25921
// 启动
ms_public->start() // AsyncMessenger::start
|---if (!did_bind) // did_bind 0
|---
|---
|---
|---
|---
AsyncMessager初步
最新推荐文章于 2021-01-19 19:16:04 发布