InfraPub 为您找到相关结果 321

基于thanos搭建分布式prometheus

sidecar和prometheus则走原生HTTP接口拿数据。 为了高可用,我们可以部署多个prometheus同时抓取。 为了打散采集/存储压力,我们可以部署多个prometheus各自抓取部分数据。 无论出于上述哪种目标或者混合目标,最终依靠Querier的正确配置都可以提供统一的Promql查询入口给Grafana,这一点是毋庸置疑的。 这里看到了图中有几个陌生的组件: Store Bucket Compactor Prometheus单机存储间有限,SideCar和Prometheus在同POD内共享数据volume,然后sidecar可以自动将prometheus磁盘数据上传到Bucket里归档存储;后续Querier可以通过Store组件从Bucket拉取到历史数据,这样就实现了历史数据...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

Kafka 3.0新特性全面曝光,真香!

epoch=2的日志给了S3。此时该日志复制给了多数节点,但还未提交。在时刻d,S1又崩溃,并且S5重新被选举为领导者,将epoch=3的日志复制给S0~S4。此时日志与新Leader S5的日志发生了冲突,如果按上图中d1的方式处理,消息2就会丢失。传统Raft协议的处理方式是:在Leader任期开始时,立刻提交一条的日志,所以上图中时刻c的情况不会发生,而是如同d2一样先提交epoch=4的日志,连带提交epoch=2的日志。与传统Raft不同,KRaft附加了一个较强的约束:当新的Leader被选举出来,但还没有成功提交属于它的epoch的日志时,不会向前推进HW。也就是说,即使上图中时刻c的情况发生了,消息2也被视为没有成功提交,所以按照d1方式处理是安全的。日志式说明:所有节点持久化保...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

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

打印“Hello World!”,进而要他们记忆 printf 的各种“式字符”的意义,要他们实现各种复杂式的打印输出,甚至要求打印到文本文件里,然后再读出来…… 可是殊不知,这种输出输入操作其实根本不算是语言的一部分,而且对于掌握编程的核心概念来说,都是次要的。有些人的 Java 课程进行了好几个星期,居然还在布置各种 printf 的作业。学生写出几百行的 printf,却不理解变量和函数是什么,甚至连算术语句和循环语句都不知道怎么用!这就是为什么很多初学者感觉编程很难,我连 %d,%f,%.2f 的含义都记不住,还怎么学编程! 然而这些野鸡大学的“教授”头衔是如此的洗脑,以至于被他们教过的学生(比如我女朋友)到我这里请教,居然骂我净教一些没用的东西,学了连 printf 的作业都没...阅读全文

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

架构师详解 Nginx 架构

引言:众所周知,Nginx 服务器是一个高性能的 Web 和反向代理服务器。Nginx 在激烈的 Web 服务器竞争中依旧保持良好的发展势头,一度成为 Web 服务器市场的后期之秀,这一切跟 Nginx 的架构设计是分不开的。 一. Nginx 模块化设计 高度模块化的设计是 Nginx 的架构基础。Nginx 服务器被分解为多个模块,每个模块就是一个功能模块,只负责自身的功能,模块之间严遵循“高内聚,低耦合”的原则。 核心模块 核心模块是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录、配置文件解析、事件驱动机制、进程管理等核心功能。 标准 HTTP 模块 标准 HTTP 模块提供 HTTP 协议解析相关的功能,如:端口配置、网页编码设置、HTTP 响应头设置等。 可选...阅读全文

博文 2018-05-01 23:10:47 debian.cn

隐私声明

加公共论坛讨论或直接联系本网站),在您的同意及确认下,我们可能会以线上或线下注册表的形式要求您提供如下个人资料和信息: • 具体信息,比如姓名,年龄,出生日期,电子邮箱,手机号码等; • 一般性信息,比如您的性别,年龄,职业,兴趣爱好等; • 仅在特定情况下(比如您需要付费才能享有的服务或产品,或参加本网站参与或组织的抽奖或竞赛活动),我们会要求您提供个人付款信息和身份证件信息,比如信用卡号码或身份证及护照号码。 我们自动收集的信息。 当您浏览本网站时(不管是否注册或登录),本网站可能自动收集与您相关的如下信息: 请注意,本隐私权声明不适用于任何向您提供服务的第三方主体,包括那些可能向本网站披露信息的第三方。 您的浏览器类型和浏览器语言、操作系统类型、宽...阅读全文

Jono Bacon: GPL 没落了吗?

的是它不是非黑即白的,更多的时候是两者混合的灰色,很少有公司有自由软件基金会(或者类似的组织,比如软件自由保护组织)的那种纯粹的理念,因此我想那些公司也不喜欢选择和那些理念相关的协议。 我需要说明,我不是在这是说自由软件基金会以及类似的组织(比如软件自由保护组织)的错。他们有着打造完全自由的软件的目标,对于他们来说,走它们选择的路十分合理。自由软件基金会以及软件自由保护组织做了了不起的工作,我将继续支持这些组织以及为他们工作的人们。我只是觉得这种对纯粹性的高要求的一个后果就是让那些公司认为自己难以达到要求,因此,他们使用了非 GPL 的其他协议。 我怀疑 GPL 的使用是随着开源软件增长而变化的。在以前,启动(开源)项目的根本原因之一是对开放性和软件自由的伦理因素的严关注。GPL 无疑是项...阅读全文

博文 2017-08-04 08:03:43 debian.cn

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

读取。用户态进程读取这些数据后,进一步关联 Kubernetes 元数据后推送到存储端。这是整体处理过程。eBPF 的超能力体现在能订阅各种内核事件,如文件读写、网络流量等,运行在 Kubernetes 中的容器或者 Pod 里的一切行为都是通过内核系统调用来实现的,内核知道机器上所有进程中发生的所有事情,所以内核几乎是可观测性的最佳观测点,这也是我们为什么选择 eBPF 的原因。另一个在内核上做监测的好处是应用不需要变更,也不需要重新编译内核,做到了真正意义上的无侵入。当集群里有几十上百个应用的时候,无侵入的解决方案会帮上大忙。但作为新技术,人们对 eBPF 也存在些许担忧,比如安全性与探针性能。为了充分保证内核运行时的安全性,eBPF 代码进行了诸多限制,如最大堆栈间当前为 512、最...阅读全文

博文 2022-03-21 09:11:51 joseph

理解 Linux 的虚拟内存

理内存的 C 地址。 我们知道系统里的基本单位都是 Byte 字节,如果将每一个虚拟内存的 Byte 都对应到物理内存的地址,每个条目最少需要 8字节(32位虚拟地址->32位物理地址),在 4G 内存的情况下,就需要 32GB 的间来存放对照表,那么这张表就大得真正的物理地址也放不下了,于是操作系统引入了 页(Page)的概念。 在系统启动时,操作系统将整个物理内存以 4K 为单位,划分为各个页。之后进行内存分配时,都以页为单位,那么虚拟内存页对应物理内存页的映射表就大大减小了,4G 内存,只需要 8M 的映射表即可,一些进程没有使用到的虚拟内存,也并不需要保存映射关系,而且Linux 还为大内存设计了多级页表,可以进一页减少了内存消耗。操作系统虚拟内存到物理内存的映射表,就被称为页表...阅读全文

博文 2018-11-25 11:03:49 debian.cn

DPDK Graph Pipeline 框架简介与实现原理

下一个 node 的 object 队列没有任何需要处理的报文 (node 的 object 队列为) /* Home run scenario */ /* Swap the pointers if dst don't have valid objs */ if (likely(dst->idx == 0)) { void **dobjs = dst->objs; uint16_t dsz = dst->size; dst->objs = src->objs; dst->size = src->size; src->objs = dobjs; src->size = dsz; dst->idx = src->idx; __rte_node_enqueue_tail_update(graph...阅读全文

博文 2023-02-09 07:13:55 掘金

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

用。Stallman 曾有过这样的感想:「我们对 Linux 了解的越来越多,我们甚至也开始考虑如何开发这个系统。」说这句话是因为当时 Debian 的系统开发遇到了瓶颈,开发团队在无意间看到 Linux 时发现他们的想法和他们想做的系统竟然与 Linux 是如此的相似。 有一段时间,Murdock 是拿着 FSF 给的工资在开发 Debian 的。 「我发现我无法把开发 Debian 当成我的业余生活;我在工作闲时完全没有好的灵感;我要全心全意投入到这项事业中去。」但是不久后团队就出现了分歧。「到那时候 Debian 的影响力已经超过了我本人,我也对 Debian 的方向有了更明确更坚定的想法。然而我也不再是一个人,我的身边有了越来越多的人,越来越多的观点。很多人都不赞成 FSF 的目标...阅读全文

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

阿里巴巴版 JDK 首发 GA 版 生产环境可用

Java 进程后来变得比较闲,被占用掉的内存也不会归还操作系统,从资源利用角度,这会带来某种意义上的浪费。阿里巴巴方面表示,ElasticHeap 主要用于改变这一情况。 据介绍,ElasticHeap 是一个基于 G1 GC 的动态堆弹性伸缩功能,可以有效节约 Java 进程实际物理内存占用。Dragonwell JDK 的 ElasticHeap 提供更敏捷有效的归还内存方式,主要有如下特点: 不依赖 Full GC 和其他 STW 暂停处理弹性堆伸缩,不增加额外 STW 开销,不影响 Java 线程服务;支持多种模式。 根据内存分配速度和 GC 压力自适应调整堆大小(自动归还内存);根据 jcmd/MXBean 命令主动式限制堆大小 (可整堆限制或分代限制); 下图是阿里巴巴电商应用在双...阅读全文

博文 2019-07-11 10:24:52 debian.cn

Git 介绍与使用详解

commit 的同时,你工作目录里的新改动和已经add到stage区的新改动也一起全都消失了 git reset --soft 保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区 将 HEAD 和 branch 往回移动,就能起到撤回 commit 的效果。 reset 如果不加参数,那么默认使用 --mixed 参数,它的行为是: 保留工作目录,并且清暂存区, git reset HEAD^ //以mixed回退到上一个版本 由 reset 所导致的新的文件差异,都会被放进工作目录,相当于回到了git add以前 总之,以--hard回退,相当于丢弃新改动,以--soft回退相当于将新改动放入暂存区,以--mixed回退,相当于不关联新改动,但改动还在 git reset --hard...阅读全文

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

WebAssembly:无需容器的 Docker (下)

ghcr.io/vmware-labs/php-wasm 7.4.32-cli-aot 63460740f6d5 44 minutes ago 5.35MB 这是意料之中的,因为对于 Wasm,我们只需要在容器内添加可执行二进制文件,而对于传统容器,我们仍然需要来自运行二进制文件的操作系统的一些基本库和文件。这种大小差异对于第一次拉取镜像的速度以及进行在本地存储库中占用的间非常有帮助。Wasm 可移植性Wasm 最大优势之一就是它的可移植性。 当人们想要一个可移植的应用程序时,Docker 已经提供了传统的容器作为一种选择。 然而,除了镜像特别大之外,传统容器还绑定到它们运行的平台架构。 作为程序员,相比许多人都经历过这种坎坷:针对不同的架构,必须构建支持的软件版本,并为每种架构打包对应镜像...阅读全文

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

Sam Altman的成功学|OneFlow

潜能。 询问自身诉求,你通常不能得偿所愿,而且被拒绝的滋味往往不好受。但若一旦成功,效果就会好得出奇。 那些声称“我将永不言弃,直到梦想成真,不论前方有多少艰难险阻,我也会迎难而上”,并将其付诸行动的人,最后几乎总能大获成功。因为他们坚持了足够久,所以最终迎来了幸运之神的眷顾。 在这方面,爱彼迎(Airbnb)是我认为的行动标杆。业内流传着许多有关爱彼迎的逸闻趣事,虽然我并不推崇他们的做法(比如透支信用卡、每顿都吃一元店买的麦片、乐此不疲地与强劲的对手进行较量等等)但是正因为他们足够坚持,最后终于时来运转。 只有保持乐观才能足够坚定,而乐观这种性特征是可以通过练习逐步提升的,要知道悲观者是很难成功的。 10 保持强劲的市场竞争力 大多数人都明白,企业竞争力越强,价值就越高。这点至关重要,而...阅读全文

Debian 相比 Ubuntu 有哪些不同之处

非常易于使用。如果你的工作习惯与这些概念不一致,可能会强烈反对Ubuntu易于使用这一观点。 然而,虽然Ubuntu源自Debian,但两者的区别还是很明显。从安装和桌面,到程序包管理及社区,大家认为自己对于Ubuntu和Debian了解的情况可能是错误的,或者至少需要作一些严限制――这一切使选择哪个发行版适合贵公司的业务战略显得非常困难。 安装方面的区别 眼下,你可以使用哪个发行版取决于拥有的硬件。Debian目前面向大约13种硬件架构:从标准的32位和64位英特尔架构到ARM和PowerPC架构,还支持另外两种正在开发的架构。相比之下,Ubuntu支持32位和64位版本这两大不同的计算机桌面环境,现正在为移动设备开发Ubuntu ARM版本。 要考虑的另一个方面是面向每个发行版的安装程...阅读全文

博文 2017-12-22 23:41:07 debian.cn

Debian 向左:或将迎来根本性改革 - OSCHINA

开源社区是个独特的存在。它虽然结构松散但却又切实有效,为社会提供便利好用的产品却不以利益为目的,将志趣相同的人们聚集在一起但又完整地保存了每一个个体的独特性...... 这些开源社区就像是一场场风迥异的社会实验。 其中,Debian 社区是一个典型代表。作为 Linux 最早的发行版本之一,诞生于1993年的 Debian 可以算是开源社区中的“活化石”。这也令 Debian 在机制、行事和文化等方面都体现出了一定的“古典”特质。 最近,Debian 社区正在酝酿一件大事 —— 改革自己的决策机制。一直以来,Debian 的决策机制都饱受诟病,不少优秀的开发者因此离开,这样的变革或许不可避免。 01 离开 “长久以来,Debian 都难以作出改变。” 2014年的时候,Joey Hess...阅读全文

博文 2021-12-06 13:55:01 中文开源技术交流社区

如何写好技术文档 — 来自十多年的文档经验总结

会凸显出来,新人有时候有着和你不同的工作背景,甚至现在都做着不同的工作内容,这时候你之前写的文档他们就很难读懂了。 所以在写文档之前请明确你文档可能的读者会是哪些人,然后针对他们的特点着重关注如何才能让他们理解。当然,文档也不一定要非常严肃和完美,只要能向你潜在的读者说明问题即可。 记住文档是写给别人看的,不是给自己看的。 根据专业水平可以大致将读者分为三种 新手、老手和专家,针对不同水平的人写作需要有侧重点。比如针对新手,你需要重点介绍下里面涉及到的术语和概念,然后详细讲解具体的的实现。相反,针对专家 你可以省去这些额外的信息。注意,这里没有严的标准,因为有些文章新手会看,专家也会看, 这里还是需要具体情况具体分析。 另外一种对读者分类的方式就是根据读者阅读文档的目的来分类,比如有人知道...阅读全文

博文 2021-07-30 16:15:13 joseph

Kafka生产问题总结以及性能优化

消费消息需要紧急处理,可以修改消费端程序,让其将收到的消息快速转发到其他topic(可以设置很多分区),然后再启动多个消费者同时消费新主题的不同分区。 2)由于消息数据式变动或消费者程序有bug,导致消费者一直消费不成功,也可能导致broker积压大量未消费消息。 此种情况可以将这些消费不成功的消息转发到其它队列里去(类似死信队列,kafka没有死信队列,需要自己写),后面再慢慢分析死信队列里的消息处理问题。 2.1.5 延时队列 kafka没有延时队列,需要自己实现;延时队列存储的对象是延时消息。所谓的“延时消息”是指消息被发送以后,并不想让消费者立刻获取,而是等待特定的时间后,消费者才能获取这个消息进行消费,延时队列的使用场景有很多, 比如 : 1)在订单系统中, 一个用户下单之后通常...阅读全文

博文 2023-01-05 23:16:48 CSDN博客

2017 年会是 Serverless 爆发之年吗

与不同的服务直接通信。相比之下,传统系统中所有通信经由后端服务器来实现。让前端与服务进行通信有助于减少创建环节、尽快获得所需的资源。 与第三方服务集成如果第三方服务能提供价值,并减少自定义代码,那么自然它们就很有价值。开发人员可以通过引入第三方服务来减少自己实现各种业务逻辑的需要,可以减少小型公司的开发成本,避免价、性能、可用性等要素上的劣势。 未来趋势 随着移动和物联网应用蓬勃发展,伴随着面向服务架构(SOA)以及微服务架构(MSA)的盛行,造就了 Serverless 架构平台的迅猛发展。在 Serverless 架构中,开发者无须考虑服务器的问题,计算资源作为服务而不是服务器的概念出现,这样开发者只需要关注面向客户的客户端业务程序开发,后台服务由第三方服务公司完全或者部分提供,开发者...阅读全文

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

Monit:开源服务器监控工具

不指向目录,monit将禁用对此条目的监视。如果Monit在被动模式下运行或者没有定义启动方法,Monit只会在错误时发送警报。 远程主机 CHECK HOST ADDRESS 主机地址可以指定为主机名字符串或点分十进制式的IP地址字符串。例如,tildeslash.com或“64.87.72.95”。 系统 CHECK SYSTEM 的唯一的名称通常是本地主机名,而是可以使用任何描述性名称。如果使用变量$ HOST作为名称,它将扩展为主机名。此检查允许监控一般系统资源,如CPU使用率,总内存使用或负载平均。该唯一名称在邮件警报中用作系统主机名,在M/Monit中用作主机条目的初始名称。 自定义...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

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

register: join_command_raw - name: set join command set_fact: join_command: "{{ join_command_raw.stdout_lines[0] }}" - hosts: workers become: yes tasks: - name: join cluster shell: "{{ hostvars['master'].join_command }} >> node_joined.txt" args: chdir: $HOME creates: node_joined.txt 这是剧本的作用: 第一个play获取需要在worker节点上运行的join命令。 此命令将采用以下式: kubeadm join --token...阅读全文

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