- 博客(65)
- 资源 (1)
- 收藏
- 关注
原创 k8s篇之Pod 安全策略
默认情况下,Kubernetes 允许创建一个有特权容器的 Pod,这些容器很可能会危机系统安全,而 Pod 安全策略(PSP)则通过确保请求者有权限按配置来创建 Pod,从而来保护集群免受特权 Pod 的影响。为了更精细地控制Pod对资源的使用方式,Kubernetes从1.4版本开始引入了PodSecurityPolicy资源对象对Pod的安全策略进行管理。
2023-03-04 23:14:43
2085
原创 k8s篇之init与pause容器
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。
2023-03-03 00:04:55
1255
原创 K8S篇之pod及生命周期
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。
2023-02-25 17:40:03
1031
原创 K8S篇之架构节点简介
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。
2023-02-21 23:09:37
2385
原创 k8s篇之概念介绍
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。
2023-02-19 15:21:56
2467
原创 程序化广告(二)
文章目录考核指标广告效果分析广告效果的层次广告效果的评估基础指标效果指标广告投放基础设置频次控制的价值媒体设置定向设置创意设置其他设置数据分析及优化调整维度指标分析数据分析方法对比细分归因考核指标程序化广告技术的法阵以及流量渠道的延伸,评估网络广告效果的难度也随之提升。下面针对广告投放中的基础指标,效果指标,品牌指标进行拆解和分析,以便在实际业务中灵活地进行多维度,多指标的数据分析。广告效果分析广告效果指广告传播对受众的影响程度,有狭义和广义之分。狭义的广告效果是指通过广告传播带来的直接经济效益,
2021-11-20 21:21:55
1946
原创 程序化广告
概述程序化广告(programmatic Advertising)是指领用技术手段进行广告交易和管理的一种广告形态、广告主可以通过程序化采购媒体资源,并利用算法和技术自动实现精确的目标受众定向,只把广告投放给对的人。...
2021-11-16 23:51:54
3326
原创 高性能索引策略
这里写自定义目录标题索引的优点延展高性能索引独立的列前缀索引多列索引选择合适的索引列顺序聚簇索引使用索引扫描来做排序索引的优点索引可以让服务器快速定位到表的位置。但这不是索引的唯一作用,根据创建索引的数据结构不同,索引也有一些其他的作用最常见的B-Tree索引,可以按照顺序存储数据,所以MySQL可以用来做ORDER BY 和GROUP BY操作。因为数据时有序的,所以B-Tree也就会将相关的列值都存储在一起,最后,因为索引中存储了实际的列值,所以某些查询只是用索引就能够完成全部查询。据此特性,
2021-08-22 22:21:13
414
原创 基于HTTP功能追加的协议
随着Web用途的多样性,HTTP协议上的限制以及自身性能问题逐渐显露出来,HTTP功能上的不足可以通过创建一套全新的协议来弥补。可是目前基于HTTP的Web浏览器使用环境遍布全球,因此无法抛弃HTTP。一些新的协议在HTTP的基础上添加了新的功能。消除HTTP瓶颈的SPDY为了尽可能实时显示这些更新的内容,服务器上一有内容更新,就需要直接把那些内容反馈到客户端的界面上。虽然看起来很简单,但是HTTP却无法做到妥善处理好这些任务上。使用HTTP协议探知服务器上是否有内容更新,就必须频繁从客户端到服务器进
2020-12-08 23:10:19
214
原创 保证安全性的HTTPS
在HTTP协议中可能存在信息窃听或身份伪装等安全问题,使用HTTPS通信机制可以有效防止这些问题。HTTP缺点通信使用明文(不加密),内容可能会被窃听不验证通信方的身份,因此可能遭遇伪装无法证明报文完整性,所以有可能被篡改加密传输由于HTTP本身不具备加密的功能,所以也无法做到对通信整体进行加密,即,HTTP报文使用明文方式进行传输。加密通常分为两类,通信的加密,内容的加密通信的加密HTTP协议中没有加密机制,但是可以通过SSL(Secure Socket Layer,安全套接层)或T
2020-12-07 23:02:50
204
原创 与HTTP协作的Web服务器
通信数据转发程序:代理,网关,隧道HTTP通信时,除了客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如,代理,网关,隧道。他们可以配合服务器工作这些应用程序和服务器恶意将请求转发给通信线路上的下一个服务器,并且能接受服务器发送的响应再转发给客户端。代理:代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端“中间人的角色,接受由客户端发送的请求并转发给服务器,同时也接受服务器返回的响应并转发给客户端网关:网关是转发其他服务器通信数据的服务器,接受从客户端发送的请求时,它就像自己拥有
2020-12-06 13:46:03
115
原创 揭开HTTP面纱之HTTP报文信息
揭开HTTP的面纱,HTTP前言篇HTTP通信过程包括从客户端发往服务端的请求及从服务端返回客户端的响应。HTTP报文用于HTTP协议交互的信息被称为HTTP报文。客户端的HTTP报文叫做请求报文,服务端的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。HTTP报文大致可以分为报文首部和报文主题两部分,两者由最初出现的空行(CR+LF)来划分。通常,并非要有报文主体。大体结构如图所示:报文首部:服务器或者客户端需处理的请求或响应的内容及属性CR+LF:CR是回车符,LF为换行符
2020-12-01 23:34:12
176
原创 揭开HTTP面纱之引言篇
揭开HTTP的面纱,HTTP前言篇HTTP协议前言协议计算机与网络设备之间要相互通信,双方必须基于相同的方法。比如,如何如何探测到通信目标,由哪一方先发起通信,使用哪种语言进行通信,怎样结束通信规则等等这些要事先明确。所有的一切都需要一种规则,而我们把这种规则称为协议(protocol)。在介绍HTTP之前,先简单介绍一下TCP/IP协议。通常使用的网络是在TCP/P体系的基础上运作的。TCP/IPTCP/IP体系最重要的一点就是分层。TCP/IP体系按照层次划分为4层:应用层,传输层,网络层
2020-11-28 18:12:36
164
原创 Redis之事务篇
欢迎阅读大魔王的睡前私语系列,这是Redis第十篇文章事务Redis通过MULTI,EXEC,WATCH命令来实现事务(Transaction)功能。事务提供了一种将多个命令请求打包,然后一次性,按照顺序执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而改去执行其他客户端命令请求,它会将事务中的所有命令都执行完毕,然后才去处理客户端的命令请求。事务首先以一个MULTI命令开始,接着将多个命令放入事务中,最后由EXEC命令将这个事务提交给服务器执行:redis>MULTIokre
2020-11-22 18:09:16
1051
15
原创 Redis之发布与订阅
欢迎阅读大魔王的睡前私语系列,这是Redis第九篇文章发布与订阅Redis的发布订阅功能由PUBISH,SUBSCRIBE,PSUBSCRIBE命令组成。通过执行SUBSCRIBE命令,客户端可以订阅一个或者多个频道,从而成为这些频道的订阅者(subscriber):每当有其他客户端向被订的频道发送消息时,频道的所有订阅者都会收到这条消息。除了订阅频道之外,客户端还可以通过执行PSUBSCRIBE命令订阅一个或者多个模式,从而成为这些模式的订阅者:每当有其他客户端向莫格频道发送消息时,消息不仅会发
2020-11-22 13:50:20
367
原创 redis的复制实现
复制在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如下图所示:假设现在有两个Redis服务器,地址分别为127.0.0.1:6379和127.0.0.1:12345,如果我们向服务器127.0.0.1:12345发送以下命令:127.0.0.1:12345 > SLAVEOF 127.0.0.1 63
2020-11-15 16:53:34
324
原创 带你了解Redis的事件机制
欢迎阅读大魔王的睡前私语系列,这是Redis第七篇文章Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件(file event):Redis服务器通过套接字与客户端(或者其他Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象,服务器与客户端(或者是其他服务器)通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作时间事件(time event):Redis服务器中的一些操作需要在给定的时间点执行,而时间事件就是服务器对这类定时操作
2020-11-14 15:32:45
554
原创 redis持久化的秘密
欢迎阅读大魔王的睡前私语系列,这是Redis第六篇文章Redis是内存数据库,为了将自己的数据保存在磁盘中,Redis提供了两种持久化方式,RDB持久化和AOF持久化,两种方式各有特点的使用场景,下面将分别介绍两种持久化的特点RDB持久化Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对。Redis的RDB持久化既可以手动执行,也可以根据服务器配置选项定期执行,该功能可以将某个时间点上的数据库数据保存到RDB文件中,如下图所示这里有个图
2020-11-10 23:43:00
240
原创 redis之单机数据库杂谈
服务器中的数据库Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,db数组的每个想都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库:struct redisServer {//一个数组,保存着服务器中的所有数据库redisDb *db;};在初始化服务器时,程序会根据服务器状态的dbNum属性来决定应该创建多少数据库:struct redisServer{ //服务器的数据库数量 int dbnum;}
2020-10-31 23:13:17
325
原创 redis之数据结构与对象篇(终章)
压缩列表压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么是小整数值,要么是长度比较短的字符串,那么Redis就会是使用压缩列表那作为列表键的底层实现。另外,当一个哈希键只包含少量键值对,并且键值对的键和值要么是比较小的整数值或者比较短的字符串,那么Redis使用压缩列表来实现哈希键。压缩列表构成压缩列表是Redis为了节省内存而开发的,由一系列特殊编码的连续内存块组成的顺序性数据结构。下图展示压缩列表的各个组成部分,记录了各个组成部分的类型,长度以及用途。
2020-10-13 23:41:47
382
原创 redis之数据结构与对象篇(三)
跳跃表跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN),最坏O(N)复杂度的节点查找,还可以通过顺序性操作批量处理节点。Redis使用跳跃表来作为有序集合键的底层实现之一,如果一个有序集合博阿寒的元素数量比较多,或者有序集合中元素的成员是比较长的字符串,Redis就会使用跳跃表来作为有序集合键的底层实现。和链表,字典等数据结构不一样,Redis只在两个地方用到了跳跃表,一个是实现有序集合键,另外一个是集群节点中用于内部数据
2020-10-02 19:56:52
179
原创 redis之数据结构与对象篇(二)
链表链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。链表在Redis中的应用比较广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素。又或者列表中包含的元素都是很长的字符串时,Redis就会使用链表作为列表键的底层实现。除了链表键之外,发布订阅,慢查询,监视器等功能也用到了链表,Redis服务器本身还是用链表来保存多个客户端的状态信息,以及使用链表来构建客户端输出缓冲区(output buffer)。链表和链表节点的实现每个
2020-09-26 13:44:29
201
原创 redis之数据结构与对象篇(一)
简单动态字符串Redis没有直接使用C语言传统的字符串表示(以空字符串结尾的字符数组,简称C字符串),而是自己构建一种名为简单动态字符串(SDS)的抽象类型,并将SDS用作Redis的默认字符串表示在Redis中,C字符串只会做为字符串字面量(string literal)用在一些无须对字符串值进行修改的地方,比如打印日志。当Redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值时,Redis就会使用SDS来表示字符串值,比如在Redis的数据库里面,包含字符串值得键值对在底层都是由SD
2020-09-23 23:20:33
198
原创 一篇文章带你了解如何创建高性能索引
目录概述索引基础索引的类型B-Tree索引哈希索引全文索引索引的优点高性能索引独立的列前缀索引和索引选择性多列索引选择合适的索引列顺序聚簇索引聚簇索引的优点聚簇索引的缺点覆盖索引压缩(前缀压缩)索引总结概述索引(在MySQL中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键。尤其是当表中的数据量越来越大,索引对性能的影响越发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能还没有那么明显,但当数据量增大时性能会极具下降。索引基础MySQL中的索引
2020-09-19 16:19:09
509
原创 Schema与数据类型优化
目录概述选择优化的数据类型更小的通常更好简单尽量避免NULL整数类型实数类型字符串VARCHAR概述良好的逻辑设计与物理设计时是高性能的基石,应该根据系统将要执行的查询语句来设计schea,这往往需要权衡各种因素。例如,反范式的设计可以加快某类的查询,但是也有可能会使另外的查询变慢。MySQL独有的特性和实现细节对性能的影响也很大选择优化的数据类型MySQL支持的护具类型非常多,选择正确的数据类型对于获得高性能至关重要。更小的通常更好一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的
2020-09-13 15:13:19
341
原创 MySQL之架构简述
目录概述MySQL逻辑架构连接管理和安全性优化与执行并发控制读写锁锁粒度表锁(table lock)行锁事务事务日志MySQL中的事务多版本并发控制MySQL存储引擎InoDB存储引擎MyISAM存储引擎总结概述MySQL最与众不同的特性是其存储引擎架构,这种架构的设计将查询处理(Query Processing)及其他系统任务(Server Task)和数据的存储/提取相分离。这种处理和存储分离的设计可以在使用时根据性能,特性,以及需求来选择数据存储的方式MySQL逻辑架构MySQL的逻辑架构图如
2020-09-05 18:24:45
518
原创 etcd之日志和快照管理
系列文章目录浅谈分布式系统与一致性协议(一)浅谈分布式系统与一致性协议(二)浅谈分布式系统与一致性协议(三)深入浅出之etcd深入浅出之etcd(二)etcd版本之v3etcd之安全性阐述etcd的多版本并发控制目录系列文章目录概述数据的持久化和复制etcd的日志管理WAL文件物理格式WAL文件的初始化WAL追加日志项etcd v2的快照管理创建快照概述etcd对数据的持久化采用的是binlog(日志,也称为WAL,即Write-Ahead-Log)加Snapshot(快照)的方式
2020-08-30 16:05:18
6934
原创 etcd的多版本并发控制
系列文章目录浅谈分布式系统与一致性协议(一)浅谈分布式系统与一致性协议(二)浅谈分布式系统与一致性协议(三)深入浅出之etcd深入浅出之etcd(二)etcd版本之v3etcd之安全性阐述在数据库领域,并发控制是一个具有挑战性的领驭。常见的并发控制方式包括悲观并发控制,乐观并发控制和多版本并发控制悲观并发控制在关系型数据库中,并发控制(又名悲观锁,Pessimistic Concurrency Control ,PCC)是一种并发控制的方法。它可以阻止一个事物以影响其他用户的方式来修
2020-08-29 00:03:56
1848
原创 etcd之安全性阐述
etcd安全是指安全模式下etcd的运行状态,接下来从访问安全和传输安全两方面来阐述etcd的安全性访问安全包括用户的认证和授权,传输安全指使用SSL/TLS来加密数据通道访问安全用户权限功能在etcd 2.1之后增加的,在2.1版本之前,etcd是一个完全开放的系统,任何用户都可以通过REST API修改etcd存储的数据。etcd在2.1中增加了用户(User)和角色(Role)的概念,引入了用户认证的功能。为了保证向后兼容和可升级性,etcd的用户权限功能默认关闭。无论数据信道是否经过加密(SS
2020-08-26 23:02:44
1447
原创 etcd版本之v3
概述etcd v3存储的数据通过KV API对外暴露,并在API的层级支持mini事务。并且为了保证向后兼容,保留了etcd v2的协议与API。也就是说etcd v2和etcd v3本质上是共享一套Raft协议代码的,区别是API不同,存储不同,数据互相隔离。v2的数据只能通过v2的API访问,v3的数据只能通过v3的API访问。etcd v2 到 etcd v3etcd广泛应用到分布式网络,服务发现,配置中心,分布式系统调度和负载均衡领域。etcd专注于key-value存储而不是完整的数据库,
2020-08-22 16:10:58
2399
1
原创 深入浅出之etcd(二)
etcd典型应用场景etcd的定位是通用的一致性key/value存储,但也有服务发现和共享配置的功能。。因此,典型的etcd应用场景包括但不限于分布式数据库,服务注册与发现,分布式锁,分布式消息队列,分布式系统选主等。服务注册与发现服务发现(Service Discovery)要解决的是分布式系统中最常见的问题之一,即在同一个分布式集群中的进程或者服务如何才能找到对方并且建立链接。从本质上将,服务发现就是了集群中是否有进程在监听UDP或者TCP端口,并且通过名字就可以进性查找和链接。实现服务发现功能
2020-08-01 18:49:42
1361
原创 KCP-快速的可靠网络传输协议
KCP简介KCP是一个快速可靠的协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,以 callback的方式提供给 KCP。 连时钟都需要外部传递进来,内部不会有任何一次系统调用。整个协议只有 ikcp.h, ikcp.c两个源文件,可以方便的集成到用户自己的协议栈中。也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的ARQ可靠协议实
2020-08-01 16:35:03
2113
原创 深入浅出之etcd
分布式系统的难点在于“部分失败”。部分失败指信息在网络的两个节点之间传送出现了故障,发送者不知道接收者是否收到了这个信息,并且导致这种故障的原因很多,接收者也可能在发生网络错误之前收到了信息,也可能没收到。现在的键值数据库基本都是分布式的,Zookeeper是其中久负盛名的一个,它有很成熟,丰富的特性,但它有自己的缺点,具体如下:复杂:ZooKeeper部署维护比较复杂,管理员必须掌握一系列知识,Zookeeper使用的Pzxos强一致性算法不易于理解Zookeeper仅提供Java和C两种接口,另
2020-07-30 22:56:58
1061
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人