IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> init_manager.initialize -> 正文阅读

[系统运维]init_manager.initialize

HttpConnectionManagerConfig::HttpConnectionManagerConfig(
    const envoy::extensions::filters::network::http_connection_manager::v3::HttpConnectionManager&
        config,
    Server::Configuration::FactoryContext& context, Http::DateProvider& date_provider,
    Router::RouteConfigProviderManager& route_config_provider_manager,
这里 
    Config::ConfigProviderManager& scoped_routes_config_provider_manager,


  switch (config.route_specifier_case()) {
  case envoy::extensions::filters::network::http_connection_manager::v3::HttpConnectionManager::
      RouteSpecifierCase::kRds:
  case envoy::extensions::filters::network::http_connection_manager::v3::HttpConnectionManager::
      RouteSpecifierCase::kRouteConfig:
    route_config_provider_ = Router::RouteConfigProviderUtil::create(
        config, context_.getServerFactoryContext(), context_.messageValidationVisitor(),
        context_.initManager(), stats_prefix_, route_config_provider_manager_);
    break;


}
重点: 
Server::Configuration::FactoryContext& context

context_.initManager() 


std::shared_ptr<HttpConnectionManagerConfig> Utility::createConfig(
    const envoy::extensions::filters::network::http_connection_manager::v3::HttpConnectionManager&
        proto_config,
    Server::Configuration::FactoryContext& context, Http::DateProvider& date_provider,
    Router::RouteConfigProviderManager& route_config_provider_manager,
    Config::ConfigProviderManager& scoped_routes_config_provider_manager,
    Tracing::HttpTracerManager& http_tracer_manager,
    Filter::Http::FilterConfigProviderManager& filter_config_provider_manager) {
  return std::make_shared<HttpConnectionManagerConfig>(
      proto_config, context, date_provider, route_config_provider_manager,
      scoped_routes_config_provider_manager, http_tracer_manager, filter_config_provider_manager);
}


Network::FilterFactoryCb
HttpConnectionManagerFilterConfigFactory::createFilterFactoryFromProtoTyped(
    const envoy::extensions::filters::network::http_connection_manager::v3::HttpConnectionManager&
        proto_config,
    Server::Configuration::FactoryContext& context) {
  Utility::Singletons singletons = Utility::createSingletons(context);

  auto filter_config = Utility::createConfig(
      proto_config, context, *singletons.date_provider_, *singletons.route_config_provider_manager_,
      *singletons.scoped_routes_config_provider_manager_, *singletons.http_tracer_manager_,
      *singletons.filter_config_provider_manager_);

  // This lambda captures the shared_ptrs created above, thus preserving the
  // reference count.
  // Keep in mind the lambda capture list **doesn't** determine the destruction order, but it's fine
  // as these captured objects are also global singletons.
  return [singletons, filter_config, &context](Network::FilterManager& filter_manager) -> void {
    filter_manager.addReadFilter(Network::ReadFilterSharedPtr{new Http::ConnectionManagerImpl(
        *filter_config, context.drainDecision(), context.api().randomGenerator(),
        context.httpContext(), context.runtime(), context.localInfo(), context.clusterManager(),
        context.overloadManager(), context.dispatcher().timeSource())});
  };
}


RunHelper::RunHelper(Instance& instance, const Options& options, Event::Dispatcher& dispatcher,
? ? ? ? ? ? ? ? ? ? ?Upstream::ClusterManager& cm, AccessLog::AccessLogManager& access_log_manager,
? ? ? ? ? ? ? ? ? ? ?Init::Manager& init_manager, OverloadManager& overload_manager,
? ? ? ? ? ? ? ? ? ? ?std::function<void()> post_init_cb)
? ? : init_watcher_("RunHelper", [&instance, post_init_cb]() {
? ? ? ? if (!instance.isShutdown()) {
? ? ? ? ? post_init_cb();
? ? ? ? }
? ? ? }) {
? // Setup signals.
? // Since signals are not supported on Windows we have an internal definition for `SIGTERM`
? // On POSIX it resolves as expected to SIGTERM
? // On Windows we use it internally for all the console events that indicate that we should
? // terminate the process.
? if (options.signalHandlingEnabled()) {
? ? sigterm_ = dispatcher.listenForSignal(ENVOY_SIGTERM, [&instance]() {
? ? ? ENVOY_LOG(warn, "caught ENVOY_SIGTERM");
? ? ? instance.shutdown();
? ? });
#ifndef WIN32
? ? sigint_ = dispatcher.listenForSignal(SIGINT, [&instance]() {
? ? ? ENVOY_LOG(warn, "caught SIGINT");
? ? ? instance.shutdown();
? ? });

? ? sig_usr_1_ = dispatcher.listenForSignal(SIGUSR1, [&access_log_manager]() {
? ? ? ENVOY_LOG(info, "caught SIGUSR1. Reopening access logs.");
? ? ? access_log_manager.reopen();
? ? });

? ? sig_hup_ = dispatcher.listenForSignal(SIGHUP, []() {
? ? ? ENVOY_LOG(warn, "caught and eating SIGHUP. See documentation for how to hot restart.");
? ? });
#endif
? }
?

HttpConnectionManagerConfig::HttpConnectionManagerConfig(
? ? const envoy::extensions::filters::network::http_connection_manager::v3::HttpConnectionManager&
? ? ? ? config,

{

}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:53:40  更:2021-10-12 23:55:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:54:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码