【速存】长期更新,2022公务员国考省考笔试课程合辑
欢迎留言补充、指正!
多要求自己,你会更加独立,少要求别人,你会减少失望。宁愿花时间去修炼不完美的自己,也不要浪费时间去期待完美的别人。
2022/03更新资源目录
【公考面试】公务员事业编面试-结构化面试通用(有字幕)【公务员面试】面试热点合集(持续更新)全国通用上岸村适用:2022国考,2022省考,2022公安联考,2022事业单位2022年最新版国考国家公务员考试笔试课程 【高端精品系统班】(完整版含讲义)2022国考笔试考试课程公务员-行测申论2022国家公务员考试课程
资源地址:https://www.aliyundrive.com/s/YeKPfCRwSoz
国考(持续更新):
平台
链接
提取码
中g
https://pan.baidu.com/share/init?surl=ChrOGMcyhcZCRNugVhjz1A
8527
zhan长
https://pan.baidu.com/share/init?surl=TnnYdFbZ-vKS7E_7bW1gtQ
8527
某粉
https://pan.baidu.com/share ...
【转载】[BetterExplained]书写是为了更好的思考
转自:[BetterExplained]书写是为了更好的思考
我经常在走路和睡前总结所学过的内容,思考遗留的问题,一段时间的阅读和思考之后,一个总体的知识框架就会逐渐浮现在脑海中。然后我会将它书写下来,然而,我往往非常惊讶地发现,当我书写的时候,新的内容仍然源源不断的冒出来,就像我的键盘自己也会思考一样。
大半年前的时候,我曾在一篇文章《跟波利亚学解题》中写到将问题求解的思维过程记录下来的好处,现在再次回忆起来,当时列出的几点其实不仅对于问题求解是大有好处,对于平时的思考也是同样的道理。
书写的好处有以下几点:
书写是对思维的备忘: 人在思考一个问题的时候,就像是在黑暗中打着电筒往前走(事实上,我们的工作记忆资源是有限的,有研究证明我们只能在工作记忆里面持有7加减2个项目;此外认知负荷也是有极限的),每一步推导都将我们往前挪一小步,然而电筒的光亮能照到的范围是有限的,我们走了几步发现后面又黑了,想到后面就忘了前面的,想到某个分支上去就忘了另一个分支,我们常常想着想着就想岔了,想岔了也就罢了,问题是一旦想岔了太远,就很难回到当初岔开的地方了。有时候,我们是如此努力地试图一下就走出很远, ...
设计模式之建造者模式
建造者模式是什么?
建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。
建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。
建造者模式所完成的内容就是通过将多个简单对象通过一步步的组装构建出一个复杂对象的过程。
那么,哪有这样的场景呢?如你玩王者荣耀的时的初始化界面;有三条路、有树、有怪、有守卫塔等等,甚至依赖于你的网络情况会控制清晰度。当你换一个场景进行其他不同模式的选择时,同样会建设道路、树、怪等等,但是他们的摆放和大小都有不同。这里就可以用到建造者模式来初始化游戏元素。而这样的根据相同的 物料 ,不同的组装所产生出的具体的内容,就是建造者模式的最终意图,也就是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
场景模拟这里我们模拟装修公司对于设计出一些套餐装修服务的场景。
物料123456789101112public interface ...
网络管理
网络模式容器的网络通信可以分为两大方面:单主机上的容器之间相互通信和跨主机的容器相互通信。
docker 的单主机通信基于 Network Namespace 实现,它可以为容器创建隔离的网络环境。docker 官方本身提供了 5 种网络模式,可以基本满足日常开发中的需求:
网络模式
说明
bridge
默认,为每个容器分配一个 IP,该 IP 会连接到 docker 宿主机的 docker0 虚拟网卡
host
容器不会拥有自己的虚拟网卡和 IP,而是直接使用宿主机的 IP 和端口
none
为容器创建独立网络名称空间,但不做任何网络配置,容器中只有 lo,用户可以就此对容器网络做任意定制
container
类似 host,容器不会拥有自己的网卡和 IP,而是和一个指定的容器共享 IP,端口等
用户自定义
在 docker 1.9 以后新增的特性,允许容器使用第三方的网络实现或者创建单独的 bridge 网络,提供网络隔离能力
在安装完成 docker 之后,会默认创建三种网络:
1docker network ls
在运行容器时,可以使用 -- ...
资源限制
资源限制cgroup(control group,控制组) 是 Linux 内核的一个功能,可以用来限制、控制与分离一个进程组。Docker 就是通过 cgroup 来控制容器的 CPU、内存、磁盘输入输出等资源。
在默认情况下,Docker 容器是没有资源限制的,它会尽可能地使用宿主机能够分配给它的资源。如果不对容器资源进行限制,容器之间就会相互影响,一些占用硬件资源较高的容器会吞噬掉所有的硬件资源,从而导致其它容器无硬件资源可用,发生停服。
Docker 提供了限制内存,CPU 或磁盘 IO 的方法, 在 docker create 或者 docker run 的时候可以对容器所占用的硬件资源大小以及多少进行限制。
CPU 限制默认情况下,所有容器可以平等地使用宿主机的 CPU 资源,如果想要限制 CPU 资源,可以使用以下参数进行限制。
相对限制
-c 或 --cpu-shares:用于多个容器运行时设置容器对于 CPU 的使用权重比例(共享权值)。
Docker 默认每个容器的权值为1024。如果不指定或将其设置为 0,都将使用默认值。
当系统上运行了两容器,第一个权重是 ...
数据持久化
数据卷默认情况下,容器被删除,容器中数据也会随着一起删除。这对于某些重要的数据是绝对不允许的。此时就需要对数据进行持久化。数据卷是一个可以提供给一个或者多个容器使用的特殊目录,它绕过 UFS,能提供以下特性:
多个容器可以共享和重用。
对数据卷的修改会马上生效。
对数据卷的更新不会影响镜像。
数据卷会一直存在,即使删除容器。
常用的数据卷操作命令:
1234567891011121314# 创建一个数据卷docker volume create demo_volume# 查看数据卷docker volume ls# 查看数据卷详情docker volume inspect demo_volume# 删除数据卷docker volume rm demo_volume# 删除没用的数据卷docker volume prune
如图所示:
启动一个挂载了数据卷的容器:
1docker container run -d --mount source=demo02_volume,target=/usr/share/nginx/html --name demo02 nginx
如图所示 ...
镜像制作
利用 Commit 制作镜像在容器管理章节有提到使用现有的容器制作镜像,但是这在真正的工作中明显是不合适的。使用docker commit意味着所有对镜像的操作都是黑箱操作,生成的镜像被称为黑箱镜像。
换句话说,除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知。即使是制作人,过段时间后也无法记清具体的操作。这种镜像维护起来非常痛苦。
而且,由于镜像分层存储的特点,除当前层外,之前的每一层都是不会发生改变的,这意味着任何修改的结果仅仅是在当前层进行标记、添加、修改,而不会改动上一层。即使是删除,上一层的东西也并不会丢失。镜像会越来越臃肿。
同时还有另外一个问题,容器中某些进程可能是动态的,过段时间会退出。如果使用 commit 制作镜像,这些进程可能不会保存到镜像中。
利用 Dockerfile 制作镜像镜像的定制实际上就是定制每一层所添加的配置、文件。如果能把每一层的修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那之前 Commit 的无法重复、镜像构建透明性、体积的问题就都会解决。这个脚本就是Dockerfile。
Dockerfile ...
容器管理
查看容器(ps)在运行容器之前,我们需要知道如何查看运行中的容器:
1234567# Management Commands(推荐)docker container ps# 或者docker container ls# Commandsdocker ps
使用此方法只能看到运行中的容器,对于以及停止的容器,还需要使用-a参数,比如:
1docker container ps -a
容器运行(run, 无参数)前面有说过,容器是镜像的实例。学习 docker 最终目的就是就是运行它。
1docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]
运行第一个测试容器:
12345# Management Commands(推荐)docker container run hello-world# Commandsdocker run hello-world
如图所示:
hello-world 容器是一个测试容器,在输出一些文字之后就会退出,通过这个过程,我们可以发现:
对于运行容器,如果镜像不存在,则会去 registry 中自 ...
镜像管理
Docker Hubdocker hub作为默认的注册点,不管是官方还是第三方都上传了很多人们可以直接拿来使用的镜像。
https://hub.docker.com/
通过搜索功能可以直接搜索到相关的镜像:
这里以 Nginx 为例:
通过在 registry 上面搜索可以发现:
仓库前面没有用户名,一般都是官方镜像仓库。后面会有 DOCKER OFFICIAL IMAGE 的标识。这意味着我们大概率可以放心大胆的直接拿来使用。
仓库前面有用户名,一般都第三方的镜像仓库。后面会有 VERIFIED PUBLISHER 的标识(已经验证的开发者)或 OPEN SOURCE PROGRAM 标识(开源项目)。这两者的安全优先级相对于较低,使用需要谨慎。
右边 Downloads 标识该仓库被下载了多少次,下载次数越多表示用户越多,有问题被发现的概率越大。可以作为镜像是否靠谱的参考依据。
右边 Stars 也和 Downloads 有着类似的功能。
通过左边的筛选栏可以对仓库进行筛选。
点击进入一个仓库可以看到相关详细信息:
常见的功能包括:
怎么下载镜像。
关于这个仓库的说 ...
安装Docker
系统初始化本次作为测试安装,我这里使用的是一台虚拟机,具体配置如下:
主机名
IP 地址
系统版本
内存(G)
CPU(核)
硬盘(G)
node-01
192.168.200.101
CentOS Linux release 7.9.2009
4
4
20
关闭防火墙和 Selinux
123456789101112# 关闭防火墙systemctl stop firewalldsystemctl disable firewalld# 关闭 Selinuxsed -i "s#^SELINUX=.*#SELINUX=disabled#g" /etc/selinux/configsetenforce 0# 关闭 swap 分区swapoff -a && sysctl -w vm.swappiness=0sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
配置 yum 源(云服务器不需要)
1234567# 备份旧的 yum 源cd /etc/yum.repos.d/mkdir ba ...