一篇文章带你吃透 Docker 原理】的更多相关文章

容器的实现原理 从本质上,容器其实就是一种沙盒技术.就好像把应用隔离在一个盒子内,使其运行.因为有了盒子边界的存在,应用于应用之间不会相互干扰.并且像集装箱一样,拿来就走,随处运行.其实这就是 PaaS 的理想状态. 实现容器的核心,就是要生成限制应用运行时的边界.我们知道,编译后的可执行代码加上数据,叫做程序.而把程序运行起来后,就变成了进程,也就是所谓的应用.如果能在应用启动时,给其加上一个边界,这样不就能实现期待的沙盒吗? 在 Linux 中,实现容器的边界,主要有两种技术 Cgroups…
ClassLoader 是 Java 届最为神秘的技术之一,无数人被它伤透了脑筋,摸不清门道究竟在哪里.网上的文章也是一篇又一篇,经过本人的亲自鉴定,绝大部分内容都是在误导别人.本文我带读者彻底吃透 ClassLoader,以后其它的相关文章你们可以不必再细看了. ClassLoader 做什么的? 顾名思义,它是用来加载 Class 的.它负责将 Class 的字节码形式转换成内存形式的 Class 对象.字节码可以来自于磁盘文件 *.class,也可以是 jar 包里的 *.class,也可…
MYSQL(进阶篇)--一篇文章带你深入掌握MYSQL 我们在上篇文章中已经学习了MYSQL的基本语法和概念 在这篇文章中我们将讲解底层结构和一些新的语法帮助你更好的运用MYSQL 温馨提醒:该文章大约20000字,建议关注收藏慢慢观看,希望能给你带来帮助~ 进阶篇内容目录 这篇文章我们主要分为七个部分: 存储引擎 索引 SQL优化 视图/存储过程/触发器 锁 InnoDB引擎 MYSQL管理 存储引擎 在讲解存储引擎前我们先来了解一下MYSQL的整体体系结构 MYSQL整体分为四个部分: 连接…
一篇文章带你掌握主流服务层框架--SpringMVC 在之前的文章中我们已经学习了Spring的基本内容,SpringMVC隶属于Spring的一部分内容 但由于SpringMVC完全针对于服务层使用,所以我们在介绍时常常把SpringMVC单独当作一个大章节来学习 温馨提醒:在学习SpringMVC前请确保已学习Spring内容 SpringMVC简介 首先我们先来简单了解一下SpringMVC: SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 SpringMVC致力于服…
MYSQL(基本篇)--一篇文章带你走进MYSQL的奇妙世界 MYSQL算是我们程序员必不可少的一份求职工具了 无论在什么岗位,我们都可以看到应聘要求上所书写的"精通MYSQL等数据库及优化" 那么我们今天就先来了解一下MYSQL的整体布局并且带你掌握MYSQL的基本内容,希望能为你带来帮助! MYSQL基本布局 基础篇 MYSQL概述 SQL语法 函数 约束 多表查询 事务 进阶篇 存储引擎 索引 SQL优化 视图/存储过程/触发器 锁 InnoDB核心 MYSQL管理 运维篇 日志…
一篇文章带你掌握主流数据库框架--MyBatis MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射. 在之前的文章中我们学习了MYSQL和JDBC,但是这些东西远远不足以支持我们书写JavaWeb相关的内容 在学习MyBatis前,请先学习Java,Mysql,JDBC,Maven内容 MyBatis学前须知 首先我们先简单介绍一下MyBatis: Mybats是一款优秀的持久层框架,用于简化JDBC开发 MyBatis本是Apache的一个开源项目iBatis…
一篇文章带你掌握主流基础框架--Spring 这篇文章中我们将会介绍Spring的框架以及本体内容,包括核心容器,注解开发,AOP以及事务等内容 那么简单说明一下Spring的必要性: Spring技术是JavaEE开发的必备技能,企业开发技术选型率高达90%! Spring可以帮助简化开发,降低企业级开发的复杂度 Spring可以进行框架整合,高效整合其他技术,提高企业级应用开发与运行效率 Spring的核心内容: Ioc技术 DI技术 AOP 事务处理 Spring可进行的框架整合: MaB…
一篇文章带你掌握主流办公框架--SpringBoot 在之前的文章中我们已经学习了SSM的全部内容以及相关整合 SSM是Spring的产品,主要用来简化开发,但我们现在所介绍的这款框架--SpringBoot,却是用来简化Spring开发的框架 SpringBoot是由Pivowtal团队提供的全新框架,其设计目的就是用来简化Spring应用的初始搭建以及开发过程,用来简化开发工具的工具,你是否已经满怀期待~ 温馨提醒:在学习前请学习SSM内容以及Maven的高阶内容(依赖传递)等内容 Spri…
一篇文章带你掌握MyBatis简化框架--MyBatisPlus 我们在前面的文章中已经学习了目前开发所需的主流框架 类似于我们所学习的SpringBoot框架用于简化Spring开发,我们的国人大大也开发了一款MyBatisPlus框架用来简化MyBatis开发 下面让我们来逐步掌握MyBatisPlus的内容吧~ MyBatisPlus简介 首先我们来简单介绍一下MyBatisPlus: MyBatisPlus(MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发,提高效率 M…
一篇文章带你了解网页框架--Vue简单入门 这篇文章将会介绍我们前端入门级别的框架--Vue的简单使用 如果你以后想从事后端程序员,又想要稍微了解前端框架知识,那么这篇文章或许可以给你带来帮助 温馨提醒:在学习该文章前,请先学习HTML,CSS,JavaScript,Ajax等前端知识 Vue基础 首先,我们从官方文档中可以得到下述描述: Vue是一套用于构建用户界面的渐进式框架. Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合. 另一方面,当与现代化的工具链以及各种支…
一篇文章带你了解热门版本控制系统--Git 这篇文章会介绍到关于版本控制的相关知识以及版本控制神器Git 我们可能在生活中经常会使用GitHub网页去查询一些开源的资源或者项目,GitHub就是基于Git而产生的平台 接下来让我们来细细道来~ Git是一门非常简单的技术,但在实际开发中占有很重要的地位,请务必了解掌握 版本控制 在介绍Git之前我们先来介绍一个名词:版本控制 版本控制概念 我们在标题已经提到了Git的最大作用:版本控制 那么我们先来了解一下版本控制: 版本控制是指对软件开发过程中…
一篇文章带你了解服务器操作系统--Linux简单入门 Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的 在本篇中我们会简单介绍Linux的特点,安装,相关指令使用以及内部程序的安装等 本篇内容属于<瑞吉外卖>的知识科普部分,有兴趣可以查看一下<瑞吉外卖>的相关文章内容 Linux简介 本节将会简单介绍Linux的前言以及相关历史 操作系统 首先我们需要了解操作系统是干什么的: 操作系统是是一组主管并控制计算机操作.运用和运行硬件.软件资源和提供公共服务来组织用户交…
一篇文章带你了解NoSql数据库--Redis简单入门 Redis是一个基于内存的key-value结构数据库 我们会利用其内存存储速度快,读写性能高的特点去完成企业中的一些热门数据的储存信息 在本篇文章中我们将会简单介绍Redis的入门,数据类型,常用命令以及如何在Java中操作Reids元素等内容 本篇内容属于<瑞吉外卖>的知识科普部分,有兴趣可以查看一下<瑞吉外卖>的相关文章内容 Redis入门 在下面我们将会介绍Redis的简介以及Redis的下载和相关配置 Redis简介…
一篇文章带你了解轻量级Web服务器--Nginx简单入门 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器 在本篇中我们会简单介绍Nginx的特点,安装,相关指令使用以及配置信息和具体应用等 本篇内容属于<瑞吉外卖>的知识科普部分,有兴趣可以查看一下<瑞吉外卖>的相关文章内容 Nginx概述 我们先来对Nginx做一个的简单的了解 Nginx介绍 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器 本身具有占用内存少,并发能力强等特点,…
这篇文章主要介绍 ElasticSearch 的基本概念,学习文档.索引.集群.节点.分片等概念,同时会将 ElasticSearch 和关系型数据库做简单的类比,还会简单介绍 REST API 的使用用法. ElasticSearch 术语 索引和文档是偏向于逻辑上的概念,节点和分片更偏向于物理上的概念. 首先来说下什么是文档: 文档(Document) ElasticSearch(简称 ES) 是面向文档的,文档是所有可搜索数据的最小单位. 给大家举几个例子,让大家更形象地理解什么是文档:…
框架的意义 对于程序员来说,我们通常知道很多概念,例如组件.模块.系统.框架.架构等,而本文我们重点说 框架. 框架,本质上是一些实用经验集合.即是前辈们在实际开发过程中积攒下来的实战经验,累积成一套实用工具,避免你在开发过程中重复去造轮子,特别是帮你把日常中能遇到的场景或问题都给屏蔽掉,框架的意义在于屏蔽掉开发的基础复杂度.屏蔽掉此类共性的东西,同时建立严格的编码规范,让框架使用者开箱即用,并且只需要关注差异面,即业务层面的实现.简而言之,框架只干一件事,那就是 简化开发.然后在此基础上,可能…
背景 Cloud Native表面看起来比较容易理解,但是细思好像又有些模糊不清:Cloud Native和Cloud关系是啥?它用来解决什么问题?它是一个新技术还是一个新的方法?什么样的APP符合“云原生”的呢?等等.下面将会一一解读. Cloud Native介绍 Cloud Native是Matt Stine提出的一个概念,它是一个思想的集合,包括DevOps.持续交付(Continuous Delivery).微服务(MicroServices).敏捷基础设施(Agile Infrast…
Swagger使用由于不喜欢csdn的markwoen编辑器,对代码样式支持不好,看着不舒服,对审美要求比较高的同学移步github:https://github.com/itguang/swagger/tree/master/springboot-swagger-demo1 不知道怎么调整csdn的代码样式,有高人知道,请私信我一下. Swagger有什么用?swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础, 对…
前言 近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布式实现方式为Redis,Zookeeper,其中基于Redis的分布式锁的使用更加广泛. 但是在工作和网络上看到过各个版本的Redis分布式锁实现,每种实现都有一些不严谨的地方,甚至有可能是错误的实现,包括在代码中,如果不能正确的使用分布式锁,可能造成严重的生产环境故障,本文主要对目前遇到的各种分布式锁以及其缺陷做了一…
作者 | Jeskson 来源 | 达达前端小酒馆 HTML5和CSS3开发基础与应用,详细说明HTML5的新特性和新增加元素,CSS3的新特性,新增加的选择器,新的布局,盒子模型,文本,边框,渐变,变形,动画效果等.HTML5的介绍,常用的元素和属性,表单相关元素和属性,CSS3新添加的选择器,CSS3新的属性. 了解HTML5,和现在主流的浏览器的,与基本语法. 在使用HTML5之前,w3c希望用XHTML来替代HTML,因为HTML与XHTML相比,XHTML是一种更加严格,更加规范的HT…
什么是SQL注入? 原理: Web应用程序对用户输入的数据校验处理不严或者根本没有校验,致使用户可以拼接执行SQL命令 危害: 注入可能导致数据丢失泄露或数据破坏.缺乏可审计性,有时甚至能导致完全接管主机. 类型: 主要有 数字型.字符型.搜索型 防范: 使用参数化查询,预处理语句,如mysqli,并且添加过滤机制 分类(根据技术) 布尔型盲注:根据返回页面判断条件真假 时间型盲注:用页面返回时间是否增加判断是否存在注入 基于错误的注入:页面会返回错误信息 联合查询注入:可以使用union的情况…
作者:涤生_Woo链接:http://www.jianshu.com/p/9f3e879a4c9c來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 同样的,本文篇幅也比较长,先来一张思维导图,带大家过一遍. 一图看完本文 一. 计算机网络体系结构分层 计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别.OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序…
作者:涤生_Woo链接:http://www.jianshu.com/p/6e9e4156ece3來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本篇文章篇幅比较长,先来个思维导图预览一下. 一张图带你看完本篇文章 一.概述 1.计算机网络体系结构分层 计算机网络体系结构分层 2.TCP/IP 通信传输流 利用 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信.发送端从应用层往下走,接收端则从链路层往上走.如下: TCP/IP 通信传输流 首先作为…
作者 | Jeskson 来源 | 达达前端小酒馆 1 JavaScript有多重要啊,才能让我说说一下,其中的语法,操作符,数据类型,内置功能等. 语法: 在JavaScript中的变量,函数名和操作符都是区分大小写的,所以变量名Da和变量名da分别为两个不同的变量. 标识符: 什么是标识符?它是指变量,函数,属性的名称,以及函数的参数. 标识符的规则: 一:第一个字符必须是,一个字母,下划线,或者是,一个美元符号 二:后面的字符,可以是字母,下划线,或是数字. 在JavaScript中标识符…
今天要分享的Java集合是Map,主要是针对它的常见实现类HashMap进行讲解(jdk1.8) 什么是Map核心方法源码剖析1.文档注释2.成员变量3.构造方法4.put()5.get() 什么是Map   Map是非线性数据结构的主要实现,用来存放一组键-值型数据,我们称之为散列表.在其他语言中,也被称为字典.  HashMap是一个非常重要的数据结构,在我们的项目中有大量的运用,或充当参数,或用于缓存.而在面试中,HashMap也几乎成为了一个“必考项”,所以今天我们就从源码的角度,对这种…
0,编程语言排行榜 计算机编程语言众多,世界上大概有600 多种编程语言,但是流行的也就几十种.我们来看下编程语言排行榜,下面介绍两种语言排行榜. Ⅰ TIOBE 指数 该指数每月更新一次,它监控了近300种语言的变化情况,其依据全球IT工程师,课程和第三方提供的信息进行评分,如Google,Bing,Yahoo!,Wikipedia,Amazon,YouTube和Baidu等流行的搜索引擎用于计算评分. Ⅱ PYPL 编程语言指数 该指数每月更新一次,其原始数据来源于Google,它通过分析在…
本文始发于个人公众号:TechFlow,原创不易,求个关注 最近有许多小伙伴后台联系我,说目前想要学习Python,但是没有一份很好的资料入门.一方面的确现在市面上Python的资料过多,导致新手会不知如何选择,另一个问题很多资料内容也很杂,从1+1到深度学习都包括,纯粹关注Python本身语法的优质教材并不太多. 刚好我最近看到一份不错的英文Python入门资料,我将它做了一些整理和翻译写下了本文.这份资料非常纯粹,只有Python的基础语法,专门针对想要学习Python的小白. 注释 Pyt…
注释 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!QQ群:101677771 Python中用#表示单行注释,#之后的同行的内容都会被注释掉. # Python中单行注释用#表示,#之后同行字符全部认为被注释. 使用三个连续的双引号表示多行注释,两个多行注释标识之间内容会被视作是注释.…
作者 唐聪,腾讯云资深工程师,极客时间专栏<etcd实战课>作者,etcd活跃贡献者,主要负责腾讯云大规模k8s/etcd平台.有状态服务容器化.在离线混部等产品研发设计工作. etcd 3.5发布 美东时间2021年6月15号18点,继 etcd 3.4 版本发布近两年之后,etcd 社区官宣发布了3.5 稳定版本,其主要贡献者来自 Google.AWS.Tencent.Red Hat.ByteDance.IBM 等公司的开发者.etcd 3.5 版本的发布,将极大提升开发者体验.更快.更稳…
最近看了很多关于缓存的文章, 每次看完,看似明白但是实际还是没明白,这次总算搞明白协商缓存是怎么回事了 首先,服务器缓存分强制缓存和协商缓存(也叫对比缓存) 强制缓存一般是服务端在请求头携带字段Expires 来指定过期时间,不过这个字段已经是HTTP1的字段了(也可以使用): 强制缓存还有一个字段是Cache-Control : 这个字段主要值有 no-store no-cache max-age等来设置强制缓存(max-age来设置资源的过期时间) 下面重点需要搞明白的是协商缓存,也就是对比…