InfraPub 为您找到相关结果 224

Golang Context 探究

) (Context, CancelFunc) { return WithDeadline(parent, time.Now().Add(timeout)) } func WithDeadline(parent Context, d time.Time) (Context, CancelFunc) { // 如果父节点 context 的 deadline 早于指定时间。直接构建一个可取消的 context。 // 原因是一旦父节点超时,自动调用 cancel 函数,子节点也会随之取消。 // 所以不用单处理子节点的计时器时间到了之后,自动调用 cancel 函数 if cur, ok := parent.Deadline(); ok && cur.Before(d) { // The current...阅读全文

博文 2021-02-25 09:27:27 lxkaka

在TKE上使用Kubecost进行成本管理

,即为计算 Pod 资源请求(Request)或者使用量(Usage)消耗的成本。根据不同类型的资源,按照 Pod 所在 Node 的 IaaS 计价方式作为基本参考,来计算 Pod 所使用的成本费用。 目前云厂商的 Node 计费模式一般是**包年包月(Month)**、**按量计费(Hour)**和**竞价实例**。当 Kubecost 计算 Pod 成本时,即使是相同请求量的 Container,在不同类型的 Node 上成本消耗也不一致。 上述三种计费模式中,由于用户购买的是一个整体实例,因此按照实例计费,不针对单一个资源计费。而通过使用 Kubecost,可以参照模型分析资源类型分摊成本、每种资源分摊成本。 例如,一个云厂商提供的某种 Node(虚拟机、物理机),CPU 为1核(C...阅读全文

成为Debian社区维护人需要做好的准备

出很多时间和努力。 1. 尽可能多地使用 Debian 完成日常工作。也就是说,成为开发者前,先做一个用户。 2. 阅读 Debian New Maintainer’s Guide 学习 Debian 打包的基本知识(英文版,中文版)。 这些知识能帮助你让不太复杂的软件包工作起来,但是与满足 Debian 标准之间还有相当大的距离。这个过程中可以立地重新打包一个已经在仓库中的包,完成后和别人现有的工作进行对比,找出自己的不足。这个包一般不需要很复 杂,初学时直接弄复杂的包很可能只会浪费很多精力。做包的过程中遇到任何问题都可以找有经验的人询问清楚,这对提高水平非常有益。 3. 寻找一个感兴趣的软件进行打包,WNPP (Work-needing and Prospective Packages...阅读全文

WebAssembly:无需容器的 Docker (上)

探讨了这个概念,这就是标题所说的 “没有容器的 Docker”。Wasm 如何结合 Docker 运行?Docker Desktop 现在加入了对 WebAssembly 的支持。 它是通过 containerd shim 实现的,该 shim 可以使用名为 WasmEdge 的 Wasm 运行时来运行 Wasm 应用程序。 这意味着,现在可以在 WasmEdge 运行时(模拟容器)中运行 Wasm 应用程序,而不是用典型的 Windows 或 Linux 容器运行容器镜像中二进制文件的单进程。因此,容器镜像不需要包含正在运行的应用程序的操作系统或运行时上下文 —— 单个 Wasm 二进制文件就足够了。这在 Docker 的 Wasm 技术预览文章中有详细解释。WasmEdge 是什么...阅读全文

博文 2023-01-03 06:35:56 spider

技术部门的 SEO 规范

面上线时确保已加流量统计代码。所有网站开通百度资源平台、Google Search Console账号。禁止使用session ID、Frame(框架结构)、Flash。已上线网站,除非SEO或运营部门另行要求,robots文件开放所有URL及文件(包括图片、CSS、JS)的抓取。后台实时或定期生成并更新XML版Sitemap,包括首页、栏目及翻页、产品/文章页面。是否包括过滤条件页面与SEO部门协调后再确定。新站一律使用响应式设计,不要使用立移动站或移动版子域名。已使用移动子域名优化的旧站,暂时保持现状,与SEO部门沟通后转为响应式设计。英文网站HTML代码不要出现中文字符,包括注释中。由于各种原因需要改动URL时,旧URL做301转向至新URL。不要使用其它转向方式。由于各种原因改动...阅读全文

博文 2019-03-28 13:58:51 debian.cn

Kubernetes源码探疑:Pod IP泄露排查及解决方法

间间隔短暂,可能被归并到同一次PLEG事件(kubelet每隔1s进行一次PLEG事件更新)。 然而,在我们观察到的所有VPC IP泄露的情况中,过程6之后“意外地”创建了Pod的第二个Sandbox容器,如下图右下所示。在我们对Kubernetes的认知中,这不应该发生。 对kubelet源码(1.13.1)抽丝剥茧 前文提到,syncLoop循环会监听PLEG事件变化并处理之。而PLEG事件,则来源kubelet内部的一个pleg relist定时任务。kubelet每隔一秒钟执行一次relist操作,及时获取容器的创建,启动,容器,删除事件。 relist的主要责任是通过CRI来获取Pod中所有容器的实时状态,这里的容器被区分成两大类:Sandbox容器和非Sandbox容器...阅读全文

HTTP状态码详解

含所有本应该返回200响应中应当返回的所有实体头部域。 假如 ETag 或 Last-Modified 头部不能精确匹配的话,则客户端缓存应禁止将206响应返回的内容与之前任何缓存过的内容组合在一起。 任何不支持 Range 以及 Content-Range 头的缓存都禁止缓存206响应返回的内容。 207 由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列立的响应代码。 3xx 重定向 这类状态码代表需要客户端采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。 当且仅当后续的请求所使用的方法是 GET 或者 HEAD 时,用户浏览器才...阅读全文

博文 2021-01-28 17:50:11 debian.cn

Sam Altman的成功学|OneFlow

且总是设法规避这些批评。但现在我开始尝试听取这些意见,我会先设想这些批评是正确的,然后在这个基础上调整我的计划。做决定的过程充满了艰辛和痛苦,但也只有经历了这个过程才能将自信和自欺欺人区分开来。 保持自信与自我认知之间的平衡可以让人免于傲气、避免与他人脱节。 3 学会立思考 创业很难,因为培养原创性思维很难。这种思维在学校里面是学不到的,实际上学校培养的是一种相反的思维方式,所以只能靠我们自己来培养原创性思维。 我们可以从第一性原理(first principles)出发,从中想出新的点子,然后与人交流沟通,对这些想法进行改良,之后我们再用轻松快捷的方式进行实际测试。 对创业者来说,失败是家常便饭,但我们一定要抱有必胜的信念,要不断尝试、不断试错,只有这样才能得到幸运之神的眷顾。 在这个过...阅读全文

王垠:如何掌握所有的程序语言

法完成 你别跟我讲 for 循环,函数什么的了…… 可不可以等几个月,等我背熟了 printf 的用法再学那些啊? 所以你就发现一旦被差劲的老师教过,这个程序员基本就毁了。就算遇到好的老师,他们也很难纠正过来。 当然这是一个夸张的例子,因为 printf 根本不算是语言特性,但这个例子从同样的度说明了次要肤浅的语言特性带来的问题。 这里举一些次要语言特性的例子: C 语言的语句块,如果里面只有一条语句,可以不打花括号。 Go 语言的函数参数类型如果一样可以合并在一起写,比如 func foo(s string, x, y, z int, c bool) { ... } Perl 把正则表达式作为语言的一种特殊语法 JavaScript 语句可以在某些时候省略句尾的分号 Haskell 和...阅读全文

博文 2017-07-10 10:13:17 debian.cn

使用 MongoDB 之前应该知道的 14 件事

索容易许多。 创建大文档集合 MongoDB 乐于把最大 16MB 的文档置于集合中,而 GridFS 设计用于超过 16MB 的大文档。但是,可以容纳大文档并不意味着那是一个好主意。MongoDB 在单个文档的大小为几 KB 时表现最好,处理它们的方式更像宽 SQL 表的行。大文档会导致 多种性能问题 。 使用大数组创建文档 文档可以包含数组。最好是把数组元素的数量保持在四位数以下。如果数组频繁添加,会使得包含它的文档过大,那样, 它在磁盘上的位置就需要移动 ,反过来,这意味着 每个索引都必须更新 。当一个包含大数组的文档重新索引时,由于 每个数组元素都有一个单的索引条目 ,所以会发生大量的索引重写。此外,这种重新索引在这类文档插入或删除时也会发生。 为了最小化这个问题,MongoDB...阅读全文

RabbitMQ 高可用实现镜像队列

queuerabbitmqctl cancel_sync_queue name #取消某个queue的同步功能以上针对消息同步的命令,均可以通过监控界面来进行操作,最终也是通过这些操作命令执行。 说明:镜像队列不是负载均衡,镜像队列无法提升消息的传输效率,或者更进一步说,由于镜像队列会在不同节点之间进行同步,会消耗消息的传输效率。 对exclusive队列设置镜像并不会有任何作用,因为exclusive队列是连接占的,当连接断开,队列自动删除。所以实际上这两个参数对exclusive队列没有意义。那么有哪些队列是exclusive呢?一般来说,发布订阅队列及设置了该参数的队列都是exclusive 排他性队列。 如何确定一个队列是不是排他性队列呢? 如果队列的features包含Excl,就代表它是排他性队列。 镜像队...阅读全文

博文 2018-12-30 19:21:59 debian.cn

Debian 9 使用kubeadm创建 k8s 集群(下)

且需要单的网络组件,该组件可以透明地将来自一个节点上的pod的流量路由到另一个节点上的pod。 此功能由pod网络插件提供。 对于这个群集,您将使用Flannel ,一个稳定且高性能的选项。 在本地计算机上创建一个名为master.yml的Ansible playbook: nano ~/kube-cluster/master.yml 将以下播放添加到文件以初始化集群并安装Flannel:〜/ KUBE群集/ master.yml - hosts: master become: yes tasks: - name: initialize the cluster shell: kubeadm init --pod-network-cidr=10.244.0.0/16...阅读全文

博文 2019-05-13 22:57:41 debian.cn

Docker 核心原理

子系统(即资源控制器) 1 2 3 4 5 6 7 8 root@lxkaka-server:~# lssubsys cpuset # 分配单的 cpu 节点或者内存节点 cpu,cpuacct # 限制进程的 cpu 使用率;cpu 使用统计 blkio # 限制进程的块设备 io memory # 限制进程的 memory 使用量 devices # 控制进程能够访问某些设备 freezer # 挂起或者恢复 cgroups 中的进程。 net_cls,net_prio # 可以标记 cgroups 中进程的网络数据包,对数据包进行控制 hierarch 层级关系 由一系列控制组以一个树状结构排列而成,hierarch 通过绑定对应的子系统进行资源调度。hierarch 中的...阅读全文

博文 2021-02-25 09:14:23 lxkaka

WebAssembly:无需容器的 Docker (下)

。WebAssembly 带来了真正的可移植性。 构建一次二进制文件,就能在任何地方运行它。 作为这种可移植性的证明,我们准备了几个通过我们为 WebAssembly 构建的 PHP 解释器运行 WordPress 的示例。当 PHP 作为立的 Wasm 应用程序运行时,它会为 WordPress 提供服务。 它也可以在 Docker+Wasm 容器中运行。 此外,它还能在嵌入 Wasm 运行时的任何应用程序中运行。 在我们的示例中,这是 apache httpd,它可以通过 mod_wasm 使用 Wasm 应用程序作为内容处理程序。 最后,PHP.wasm 也可以在浏览器中运行。通过 WasmEdge 服务 WordPress我们为本次演示准备了一个紧凑的 WordPress+Sqlite 示例。 由于它是...阅读全文

博文 2023-01-03 06:39:46 spider

一位五年工作经验架构师的感悟

写给五年陈的自己 写周报,写的兴起,编写周报,还边用虎跑泉,泡铁观音喝。自己写周报的**惯还是要改一改,自己是个性情中人,写个周报也透露了太多情感在周报里。有很多人肯定觉得不好,也许以后我也会改,改的越来越干练,掏心的话少说。 兴奋了,喝了茶,睡不着了。灵感闪动,本周是个值得纪念的日子,写个文章纪念下过去。 回想这一路路走来,还是很感恩收获的一切,我渐渐从一名菜鸟,成长为一位架构师,记得毕业的时候我给自己定的目标是:五年要成为一方面的专家。虽然,实际的成长比这个慢了两年,但是我还是庆幸自己当初果断的裸辞,然后进入支付宝。 每个架构师都是立无二的,每个架构师都应该有自己的情怀,这些情怀是你的世界观。 我是如何成长为一个架构师的,我姑且给自己定的 title 就是架构师,不要认为有架构师的...阅读全文

博文 2021-01-28 17:50:31 debian.cn

协议介绍之深入了解 gRPC

,或者只想给特定的 stream 分配资源,receiver 端就可能不想处理这些数据。譬如,如果 client 给 server 请求了一个视频,但这时候用户暂停观看了,client 就可能告诉 server 别在发送数据了。 虽然 TCP 也有 flow control,但它仅仅只对一个连接有效果。HTTP/2 在一条连接上面会有多个 streams,有时候,我们仅仅只想对一些 stream 进行控制,所以 HTTP/2 单提供了流控机制。Flow control 有如下特性: Flow control 是单向的。Receiver 可以选择给 stream 或者整个连接设置 window size。 Flow control 是基于信任的。Receiver 只是会给 sender 建议它...阅读全文

博文 2017-06-22 11:08:48 debian.cn

Golang 操作 Kafka 样例

,可能是先从RSS数据源中抓取文章的内 容,然后将其丢入一个叫做“文章”的topic中;后续操作可能是需要对这个内容进行清理,比如回复正常数据或者删除重复数据,最后再将内容匹配的结果返 还给用户。这就在一个立的topic之外,产生了一系列的实时数据处理的流程。 日志聚合:使用Kafka代替日志聚合(log aggregation)。日志聚合一般来说是从服务器上收集日志文件,然后放到一个集中的位置(文件服务器或HDFS)进行处理。然而Kafka忽略掉 文件的细节,将其更清晰地抽象成一个个日志或事件的消息流。这就让Kafka处理过程延迟更低,更容易支持多数据源和分布式数据处理。比起以日志为中心的 系统比如Scribe或者Flume来说,Kafka提供同样高效的性能和因为复制导致的更高的耐用性保证...阅读全文

博文 2023-01-10 13:46:09 掘金

如何使用 journalctl 清理 journal 日志

/dev/kmsg 中读取内核产生的日志消息。 TTYPath= 指定 ForwardToConsole=yes 时所使用的控制台TTY, 默认值是 /dev/console LineMax= 在将日志流转化为日志记录时,每条日志记录最大允许的长度(字节)。 如果将单元的标准输出(STDOUT)/标准错误(STDERR)通过流套接字连接到日志中, 那么将会以换行符("\n", ASCII 10)与NUL字符("\0", ASCII 0)作为分割符, 把日志流切分成一条条立的日志记录。 如果超过此处设置的长度之后仍然没有遇到分割符, 那么将会自动插入一个分割符,以强制将单行超长日志截断为多行。 此选项的值越大,每个日志流客户端日志守护进程占用的内存也越大(最大值等于此选项的值)。 另外,此选项的值...阅读全文

博文 2021-02-05 15:43:28 博客园

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

Debian 在他离开之后还能持续发展非常欣慰。 我总是说,我离开 Debian 这个项目之后才发现这个项目肯定会成功。因为我的离开意味着 Debian 将会自生自灭自力更生,它将在没有我的情势下立发展。事实证明它做到了,而且不仅仅是生存下来了,还做到了大范围的推广普及。对此我非常自豪。 2016 年的今天,我们终于发现 Murdock 是多么有先见之明。最近的 GNU/Linux 发展史家谱明确地告诉了我们 Debian 在免费软件领域究竟有多大的影响力,开发 Debian 的那位伟人对此做出了多大的贡献。 本文转载自: http://tech2ipo.com/10027118,英文原文参考这里。...阅读全文

博文 2021-01-28 17:50:13 debian.cn

Gitlab CI 配置文件 .gitlab

。 environment名称可以包含: 英文字母(letters) 数字(digits) 空格(spaces) - _ / $ { } 常用的名称有qa,staging,和production,当然你可以在你的工作流中使用任意名字。 除了在environment关键字右边紧跟name定义方法外,也是可以为环境名称单设定一个值。例如,用name关键字在environment下面设置: deploy to production: stage: deploy script: git push production HEAD:master environment: name: production environment:url 注意: GitLab 8.11 开始引用。 在GitLab 8.11之前,URL只能在...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)

2017 年会是 Serverless 爆发之年吗

、API 应用相同的上下文中运行程序或脚本。可以上传并运行可执行文件,例如 cmd、bat、exe、psl 等等。WebJobs 提供 SDK 用于简化针对 Web 作业可以执行的常见任务,例如图像处理、队列处理、RSS 聚合、文件维护,以及发送电子邮件等等。 Serverless 架构原则 按需使用计算服务执行代码 Serverless 架构是 SOA 概念的自然延伸。在 Serverless 架构中,所有自定义代码作为孤立的、立的、细粒度的函数来编写和执行,这些函数在 AWS Lambda 之类的无状态计算服务中运行。开发人员可以编写函数,执行常见的任务。在比较复杂的情况下,开发人员可以构建更复杂的管道,编排多个函数调用。 编写单一用途的无状态函数单单负责处理某一项任务的函数很容易测试,并稳...阅读全文

博文 2021-01-28 17:50:27 debian.cn

Git 介绍与使用详解

出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。 1.1.1集中化的版本控制系统,代表Svn 缺点: 1、依赖中央服务器。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 2、如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单快照。 3、整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险 4、必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,效率就很低了。 1.1.2分布式版本控制系统,代表Git...阅读全文

博文 2017-02-25 09:00:27 程序员

Web前端知识体系精简

创建一个新对象时,JS底层将新对象的原型链指向了构造函数的原型对象,于是就在新对象和函数对象之间建立了一条原型链,通过新对象可以访问到函数对象原型prototype中的方法和属性。new的详细介绍请参考博客:理解JS中的new运算符 5、闭包 闭包其实是一个主动执行的代码块,这个代码块的特殊之处是可以永久保存局部变量,但又不污染全局变量,可以形成一个立的执行过程,因此我们经常用闭包来定义组件。关于闭包的介绍请参考:干货分享:让你分分钟学会JS闭包 6、单线程和异步队列 setTimeout和setInterval是JS内置的两个定时器,使用很简单,但这两个方法背后的原理却不简单。 我们知道,JS是单线程语言,在浏览器中,当JS代码被加载时,浏览器会为其分配一个主线程来执行任务(函数),主线...阅读全文

博文 2021-01-28 17:50:33 debian.cn

提问的智慧 – 全文

复制并提供刚好够用的外围支撑代码以构成一个完整的样本(够用是指源码刚好能被编译器、解释器或任何处理它的程序所接受)。如果你不能将问题缩小到特定的段落,复制源代码并去除那些与问题无关的代码段。你能提供的最小测试样例本越小越好(参见《浓缩精华》这一章节 )。 用最小测试样本去测试bug也并不是万能的,但这毕竟是一个很好的尝试,这有助于帮助你立去解决问题,即使你找不到,黑客们也喜欢看到曾经你努力过,这将使他们跟你合作去解决这个问题。 如果你只是想让别人帮忙审核一下代码,在最开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。 不要提问「家庭作业式」的问题 黑客们擅长发现「家庭作业式」[16]的问题。家庭作业要求立完成,因为这是你该做的,这样你才能从中学到东西,遇到困惑的时候可以...阅读全文

博文 2009-10-01 13:18:00 debian.cn