从经典三层架构到容器云
从单体架构到微服务架构
随着业务的增加,从单体架构到微服务架构似乎是一种必然的趋势。容器带来了新的服务发布方式——以容器镜像作为服务从开发到运维的交付产物——但是并不能解决服务拆分带来的庞大服务数量问题。此外,对于一个大型系统来说,无论是服务之间存在的依赖关系,还是服务与外部系统的依赖关系都是非常复杂的,依靠人工来记录和配置这些依赖显然费力不讨好,而且容易出错。因此,我们的容器云平台迫切需要对容器进行编排与部署的工具。
阅读全文
pid是进程ID,pgid是进程组ID,sid是会话ID。默认情况下,新创建的进程会继承父进程的进程组ID和会话ID。
编译的过程:
预处理:替换宏
编译:将源代码编译成汇编
汇编:将汇编代码编译成二进制
链接:地址,so
ThreadGroup是个隐含的概念,通常情况下不用管。
uncaughtExceptionHandler可以用来处理线程的异常退出状态,比如实现线程退出重启。uncaughtExceptionHandler实例选择的优先级:本线程设置的handler > 线程池handler > 默认的handler。
scheduler的逻辑:
对LeetCode上遇到的股票问题做一个总结,涉及到6道题:121, 122, 123, 188, 309, 714
题目地址:Best Time to Buy and Sell Stock
k8s中的scheduler负责资源调度,具体来说,是将某个pod绑定到某个node上。scheduler的输入是待调度的pod和可调度的node,输出是pod和node的bind对象。
网上很多架构图中都有Docker Engine和Job,但是1.7版本其实不再用这种方式。
Jinja渲染在Airflow用于参数跟字段的渲染,这里做一个简单的实现分析。
模板渲染的流程是在TaskInstance()._run_raw_task()中进行的。
XComs(cross-communication)使得任务之间可以交换信息,允许更细粒度的控制和状态共享。XComs包含key, value, timestamp, 同时也包含创建xcom的任务实例的task_id, dag_id, execution_date等。