aegis 启动流程

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: aegis toplevel的进程图

aegis toplevel的进程图

使用dot画图可以使你一遍阅读代码一遍讨论一遍把关系图给画出来了,很赞。

3个子系统

image.png

第一个子系统 - rds_proxy_sup的启动顺序

ac183dee353b0ef0dfc95e33eb0aa7aca4acd49d.png

各个图对应的代码

toplevel的gv代码

digraph G
{
        //rankdir=LR;
    edge [arrowsize= .5]
    node [fontsize = 11, height = .02, style=filled, color=black, fillcolor=greenyellow]
    aegis_sup -> rds_proxy_sup;
    aegis_sup -> aegis_public_sup;
    aegis_sup -> rds_api_sup;
    aegis_sup [shape = doublecircle, color = red]
    {rank = same;
     rds_proxy_sup;
     aegis_public_sup;
     rds_api_sup; }
}

rds_proxy_sup 子进程启动顺序的gv代码

digraph G
{
        edge [arrowsize= .5]
    node [fontsize = 11, height = .02, style=filled, color=black, fillcolor=greenyellow]
    aegis_sup -> rds_proxy_sup;
    aegis_sup -> aegis_public_sup;
    aegis_sup -> rds_api_sup;
    rank = same;
     rds_proxy_sup;
     aegis_public_sup;
     rds_api_sup; }
    rds_proxy_sup -> rds_proxy_session_sup;
    rds_proxy_sup -> rds_proxy_acceptor_manager_sup;
    rds_proxy_sup -> rds_proxy_manager_sup;
    rds_proxy_sup -> rds_proxy_monitor_sup;
    rds_proxy_sup -> rds_proxy_partition_sup;
    rds_proxy_sup -> rds_proxy_mem_monitor;
    rds_proxy_sup -> rds_proxy_downgrade_task;
    {rank = same;
        rds_proxy_session_sup;
        rds_proxy_acceptor_manager_sup;
        rds_proxy_manager_sup;
        rds_proxy_monitor_sup;
        rds_proxy_partition_sup;
        rds_proxy_mem_monitor;
        rds_proxy_downgrade_task }
    // acceptor
    rds_proxy_acceptor_manager_sup -> rds_proxy_listen;
    rds_proxy_acceptor_manager_sup -> rds_proxy_heart_acceptor_sup;
    rds_proxy_acceptor_manager_sup -> rds_proxy_acceptors_sup;
    {rank = same;
        rds_proxy_listen;
        rds_proxy_heart_acceptor_sup;
        rds_proxy_acceptors_sup;
    }
    rds_proxy_acceptors_sup -> rds_proxy_acceptor_NbAcceptors;
    rds_proxy_acceptor_NbAcceptors -> rds_proxy_listen [label = get_listen, style=dashed, color=blue];
    rds_proxy_acceptor_NbAcceptors -> rds_proxy_session [label = start, style=dashed, color=blue];
    // session sup
    rds_proxy_session_sup -> rds_mysql_session_sup00_16;
    rds_proxy_session_sup -> rds_mysql_backend_sup00_16;
    rds_proxy_session_sup -> rds_mysql_simple_session_sup00_16;
    rds_proxy_session_sup -> rds_mssql_session_sup00_16;
    {rank = same;
        rds_mysql_session_sup00_16;
        rds_mysql_backend_sup00_16;
        rds_mysql_simple_session_sup00_16;
        rds_mssql_session_sup00_16;
    }
    rds_mysql_session_sup00_16 -> rds_mysql_session;
    rds_mssql_session_sup00_16 -> rds_mssql_session;
    rds_mysql_backend_sup00_16 -> rds_mysql_backend;
    rds_mysql_session -> rds_mysql_backend_sup00_16 [label = "call start_child", style=dashed, color=blue];
    rds_proxy_manager_sup -> rds_proxy_connections_pool;
    rds_proxy_manager_sup -> rds_proxy_metastore_cache;
    rds_proxy_manager_sup -> rds_proxy_ips_pool_checker;
    rds_proxy_manager_sup -> rds_proxy_switcher_checker;
    rds_proxy_manager_sup -> rds_proxy_switcher_server;
    rds_proxy_manager_sup -> rds_proxy_flow_reduce;
    rds_proxy_manager_sup -> rds_proxy_netflow;
    rds_proxy_manager_sup -> rds_proxy_crontab_sup;
    rds_proxy_mem_monitor [shape = box, fillcolor = yellow];
    rds_proxy_downgrade_task [shape = box, fillcolor = yellow];
    rds_proxy_listen [shape = box, fillcolor = yellow];
    rds_proxy_connections_pool [shape = box, fillcolor = yellow];
    rds_proxy_metastore_cache [shape = box, fillcolor = yellow];
    rds_proxy_ips_pool_checker [shape = box, fillcolor = yellow];
    rds_proxy_switcher_server [shape = box, fillcolor = yellow];
    rds_proxy_switcher_checker [shape = box, fillcolor = yellow];
    rds_proxy_flow_reduce [shape = box, fillcolor = yellow];
    rds_proxy_netflow [shape = box, fillcolor = yellow];
    rds_proxy_acceptor_NbAcceptors [shape = box, fillcolor = yellow];
    rds_mssql_session [shape = box, fillcolor = green];
    rds_mysql_backend [shape = box, fillcolor = green];
    rds_mysql_session [shape = box, fillcolor = green];
}
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
Java Android开发
Service的启动过程
Service的启动过程
12 2
|
Kubernetes 安全 容器
Kubernetes CKS【21】---Runtime Security -主机与容器行为安全分析(strace、/proc、env、falco)(1)
Kubernetes CKS【21】---Runtime Security -主机与容器行为安全分析(strace、/proc、env、falco)(1)
Kubernetes CKS【21】---Runtime Security -主机与容器行为安全分析(strace、/proc、env、falco)(1)
|
Kubernetes 安全 容器
Kubernetes CKS【21】---Runtime Security -主机与容器行为安全分析(strace、/proc、env、falco)(2)
Kubernetes CKS【21】---Runtime Security -主机与容器行为安全分析(strace、/proc、env、falco)(2)
Kubernetes CKS【21】---Runtime Security -主机与容器行为安全分析(strace、/proc、env、falco)(2)
|
Java
深入理解 NioEventLoop启动流程
深入理解 NioEventLoop启动流程
134 0
|
机器学习/深度学习 人工智能 资源调度
阿里巴巴集群追踪计划Alibaba Cluster Trace Program
在阿里巴巴集群追踪程序是由阿里巴巴集团出版。通过提供来自实际生产的集群跟踪,该计划帮助研究人员、学生和对该领域感兴趣的人更好地了解现代互联网数据中心 (IDC) 的特征和工作负载。
|
弹性计算 算法 Java
EDAS 配置 CoreDump 和 GC
EDAS 创建应用时 ,支持客户自己自定义生成 coredump 和 GC 的策略,由于 EDAS 使用 JVM 本身就是开源的 Java 容器,所以支持的参数和配置方法也都是一致,只布偶封装在 EDAS 控制台下发而已。
EDAS 配置 CoreDump 和 GC
|
Linux
Kbase #1: 在 Alibaba Cloud Linux 2 中配置 Kdump
Alibaba Cloud Linux 2提供了 [Kdump 服务](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sec-kdump_mechanism) 。
876 0
|
JSON Kubernetes API
Kubelet源码分析(一):启动流程分析
源码版本 kubernetes version: v1.3.0 简介 在Kubernetes急群众,在每个Node节点上都会启动一个kubelet服务进程。该进程用于处理Master节点下发到本节点的任务,管理Pod及Pod中的容器。
2611 0