不愧是阿里大佬,mysql存储过程写法案例

容器化时代来了

虚拟化技术已经走过了三个时代,没有容器化技术的演进就不会有 Docker 技术的诞生。

虚拟化技术演进

(1)物理机时代:多个应用程序可能会跑在一台机器上。

物理机时代

(2)虚拟机时代:一台物理机器安装多个虚拟机(VM),一个虚拟机跑多个程序。

虚拟机时代

(3)容器化时代:一台物理机安装多个容器实例(container),一个容器跑多个程序。

容器化时代

容器化解决了软件开发过程中一个令人非常头疼的问题,用一段对话描述:

测试人员:你这个功能有问题。

开发人员:我本地是好的啊。

开发人员编写代码,在自己本地环境测试完成后,将代码部署到测试或生产环境中,经常会遇到各种各样的问题。明明本地完美运行的代码为什么部署后出现很多 bug,原因有很多:不同的操作系统、不同的依赖库等,总结一句话就是因为本地环境和远程环境不一致。

容器化技术正好解决了这一关键问题,它将软件程序和运行的基础环境分开。开发人员编码完成后将程序打包到一个容器镜像中,镜像中详细列出了所依赖的环境,在不同的容器中运行标准化的镜像,从根本上解决了环境不一致的问题。

容器化技术的尖刀武器

容器化技术的特点:

  • 可移植性:不依赖具体的操作系统或云平台,比如在阿里云或腾讯云直接随意迁移。
  • 占地小:容器只需要其应用程序以及它需要运行的所有容器和库的依赖清单,不需要将所有的依赖库都打包在一起。
  • 共享 bin 和 lib:不同的容器可以共享 bin 和 lib,进一步节省了空间。

Docker 横空出世

2010年一位年轻小伙子在美国旧金山成立了一家名叫【dotCloud】的公司, 开发了 Docker的核心技术,从此开启了容器技术的时代。

Docker原公司名

后面 dotCloud 公司将自己的容器技术进行了简化和标准化,取名为 Docker,就是大家熟悉的鲸鱼 logo。

Docker新logo

2013年dotCloud 公司宣布将 Docker 开源,随着越来越多的工程师发现了它的优点, Docker 的人气迅速攀升,成为当时最火爆的开源技术之一。

当前有30%以上的企业在其AWS环境中使用Docker,并且这个数字还在继续增长。

Docker使用率越来越高

Docker怎么用?

其实大多数人谈论 Docker 时说的是 Docker Engine,这只是一个构建和运行的容器。

在运行容器前需要编写Docker File,通过 dockerFile 生成镜像,然后才能运行 Docker 容器。

Docker File 定义了运行镜像(image)所需的所有内容,包括操作系统和软件安装位置。一般情况下都不需要从头开始编写 Docker File,在 Docker Hub 中有来自世界各地的工程师编写好的镜像,你可以基于此修改。

编排系统的需求催生 k8s

尽管Docker为容器化的应用程序提供了开放标准,但随着容器越来越多出现了一系列新问题:

  • 如何协调和调度这些容器?
  • 如何在升级应用程序时不会中断服务?
  • 如何监视应用程序的运行状况?
  • 如何批量重新启动容器里的程序?

解决这些问题需要容器编排技术,可以将众多机器抽象,对外呈现出一台超大机器。现在业界比较流行的有:k8s、Mesos、Docker Swarm。

在业务发展初期只有几个微服务,这时用 Docker 就足够了,但随着业务规模逐渐扩大,容器越来越多,运维人员的工作越来越复杂,这个时候就需要编排系统解救opers。

应用程序的声明周期

一个成熟的容器编排系统需要具备以下能力:

  • 处理大量的容器和用户
  • 负载均衡
  • 鉴权和安全性
  • 管理服务通信
  • 多平台部署

k8s与Docker Swarm江湖恩怨

k8s VS Docker Swarm

如果你非要拿 Docker 和 k8s 进行比较,其实你更应该拿 Docker Swarm 和 k8s 比较。

Docker Swarm 是 Docker 自家针对集群化部署管理的解决方案,优点很明显,可以更紧密集成到 Docker 生态系统中。

虽说 Swarm 是 Docker 亲儿子,但依旧没有 k8s 流行,不流行很大程度是因为商业、生态的原因,不多解释。

k8s是做什么用的?

K8s是Google研发的容器协调器,已捐赠给CNCF,现已开源。

Google 利用在容器管理多年的经验和专业知识推出了 k8s,主要用于自动化部署应用程序容器,可以支持众多容器化工具包括现在非常流行的Docker。

目前k8s 是容器编排市场的领导者,开源并公布了一系列标准化方法,主流的公有云平台都宣布支持。

一流的厂商都在抢占标准的制高点,一堆小厂商跟着一起玩,这就叫生态了。国内的大厂商都在干嘛呢?抢社区团购市场,玩资本游戏,哎?!

K8s 架构和组件

k8s 由众多组件组成,组件间通过 API 互相通信,归纳起来主要分为三个部分:

  • controller manager
  • nodes
  • pods

K8s集群架构图

Controller Manager,即控制平面,用于调度程序以及节点状态检测。

  • Nodes,构成了Kubernetes集群的集体计算能力,实际部署容器运行的地方。
  • Pods,Kubernetes集群中资源的最小单位。

Docker与k8s 难舍难分

Docker 和 k8s 在业界非常流行,都已经是事实上的标准。

Docker 是用于构建、分发、运行容器的平台和工具。

而 k8s 实际上是一个使用 Docker 容器进行编排的系统,主要围绕 pods 进行工作。Pods 是 k8s 生态中最小的调度单位,可以包含一个或多个容器。

Docker 和 k8s 是根本上不同的技术,两者可以很好的协同工作。

写在最后

学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。

领取方式:戳这里即可免费领取

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

Mybatis面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

MySQL面试专题

蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌

片转存中…(img-QN0TQ2Jk-1626932374340)]

Mybatis面试专题

[外链图片转存中…(img-pxASiqY5-1626932374341)]

MySQL面试专题

[外链图片转存中…(img-24Qnpi9X-1626932374342)]

并发编程面试专题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不看绝对血亏!java字符串转json

一、对Kafka的认识 1.Kafka的基本概念 2.安装与配置 3.生产与消费 4.服务端参数配置 二、生产者 1.客户端开发 必要的参数配置消息的发送序列化分区器生产者拦截器 2.原理分析 整体架构元数据的更新 3.重要的生产者参数 三、消费者 1.消费者与消费组 2.客户端开发 必要的…

【线程】屏障

一、主要函数应用 1. 函数原型:初始化和回收 int pthread_barrier_init(pthread *barrier, const pthread_barrier_t *attr, unsigned int count); int pthread_barrier_destroy(pthread_barrier_t *barrier);分析: 初始化屏障时,可以使用c…

中高级工程师Java开发!java生成随机数代码包

微服务是什么 微服务起源于2005年Peter Rodgers博士在云端运算博览会提出的微Web服务(Micro-Web-Service),根本思想类似于Unix的管道设计理念。2014年,由Martin Fowler 与 James Lewis共同提出了微服务的概念,定义了微服务架构风格是一种通过…

Java软件开发面试题!hr和技术经理一起面

springspring5最全知识梳理大纲(总) spring最全知识梳理大纲(总) spring5最全知识梳理大纲(总) spring最全知识梳理大纲(分) 为什么要使用Spring? Bean spring事务 面向…

Java进阶之光!javaunicode码转字符

01 如何理解高并发? 高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。 我们常见的高并发场景有:淘宝的双11、春运时的抢票、…

Java进阶之光!java字符串类型转换为int

阿里巴巴篇 1.扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等2.具有扎实的Java编程基础,理解IO、多线程等基础框架3.熟练使用Linux系统的常用命令及shell有一定了…

Java进阶之光!mysql创建用户并授权建表

正文 MyBatis 的整体架构分为三层, 分别是基础支持层、核心处理层和接口层,如下图所示。 基础支持层 反射模块 该模块对 Java 原生的反射进行了良好的封装,提供了更加简洁易用的 API ,方便上层使调用,并且对反射操作…

Java进阶之光!mysql安装包安装教程

我听到的一些发声 你们赚的钱已经可以了: 我一个发小是做土木工程的,上海大学博士,参与很多著名建筑的工程,但是从薪资上看,还不如一些稍微像样的公司的6年多的高级开发。为什么?这就是行业的红利&#xf…

Java进阶学习资料!dockerjar内存

准备好套路 **①自我介绍:**千万不能筐瓢,一定要牢记,自然流畅地介绍自己的学习经历、工作经历、项目经历、个人优势等等; **②抽象概念:**当面试官问你是如何理解多线程的时候,你要知道从定义、来源、实…

管道(二)

无名管道 测试代码&#xff1a; #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <string.h>#define ERR_EXIT(m) do { perror(m); exit(EXIT_FAILURE); }while(0) #define TEST_SIZE 68*1024int mai…

Java进阶:java字符串定位语句

正文 模块&#xff08;Module&#xff09;、组件&#xff08;Component&#xff09;、包&#xff08;Package&#xff09;&#xff0c;这些概念对于我们技术同学并不陌生&#xff0c;但并不是所有人都能理解其要义。 深入理解之后&#xff0c;我才发现&#xff0c;其背后的深…

有名管道

一、有名管道 1. 为何提出有名管道的说法&#xff0c;目的是为了克服无名管道的不足之处&#xff1a; 无名管道只能是用于具有亲缘关系的进程之间&#xff0c;这就限制了无名管道的使用范围。有名管道可以使互不相关的两个进程互相通信&#xff0c;有名管道可以通过路径名来指…

Java进阶:mysql的事务隔离级别面试题

一面&#xff1a; 阿里巴巴面试答案文末可以领取&#xff01; 1. 触发新生代GC&#xff0c;如果存活对象总量大于survivor区容量&#xff0c;咋办 2. 如果任务很多&#xff0c;线程池的阻塞队列会撑爆内存的哪个区域 3. 栈在堆上吗 4. GC root有哪些 5. 实例变量可以是GC…

Java面试2021,java数据可视化项目

AOP简介 AOP (Aspect Oriented Programing) 称为&#xff1a;面向切面编程&#xff0c;它是一种编程思想。AOP 是 OOP&#xff08;面向对象编程 Object Oriented Programming)的思想延续 AOP采取横向抽取机制&#xff0c;取代了传统纵向继承体系重复性代码的编写方式&#xff0…

gcc的使用

一、gcc编译过程示意图 分析&#xff1a; hello程序是一个高级&#xff23;语言程序&#xff0c;这种形式容易被人读懂。为了在系统上运行hello.c程序&#xff0c;每条&#xff23;语句都必须转化为低级机器指令。然后将这些指令打包成可执行目标文件格式&#xff0c;并以二进…

Java面试2021,java黑马百度云

线程是否要锁住同步资源 锁住 悲观锁不锁住 乐观锁 锁住同步资源失败 线程是否要阻塞 阻塞不阻塞自旋锁&#xff0c;适应性自旋锁 多个线程竞争同步资源的流程细节有没有区别 不锁住资源&#xff0c;多个线程只有一个能修改资源成功&#xff0c;其它线程会重试无锁同一个线…

oppoJava面试题,java声明全局变量的关键字

蚂蚁一面 ⼀⾯就做了⼀道算法题&#xff0c;要求两⼩时内完成&#xff0c;给了⻓度为N的有重复元素的数组&#xff0c;要求输出第10⼤的数。典型的TopK问题&#xff0c;快排算法搞定。算法题要注意的是合法性校验、边界条件以及异常的处理。另外&#xff0c;如果要写测试⽤例&…

System V 消息队列

一、System V 消息队列 有一个队列&#xff0c;队列存放各种消息。每个进程可以把数据封存在消息中&#xff0c;再放入队列。每个进程都可以拿到消息队列&#xff0c;再从中取出/放入消息。 消息队列也有管道一样的不足&#xff0c;就是每个消息的最大长度是有上限的&#xf…

oppoJava面试题,java连接数据库详细步骤

美团一面&#xff08;50分钟左右&#xff09; 进程和线程死锁的必要条件网络&#xff0c;七层协议TCP和UDP的区别hashmap 详细讲一下hashmap底层是如何解决hash冲突的hashmap和linkedhashmap数据库的索引&#xff0c;为什么推荐自增id&#xff0c;有什么优点MySQL的引擎&#…

基本TCP套接字编程

1. socket函数原型&#xff1a; #include <sys/socket.h> int socket(int domain, int type, int protocol);2. bind函数原型&#xff1a; #include <sys/socket.h> int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);参数&#xff1a; ​ st…