InfraPub 为您找到相关结果 494

第8个LTS版本 Ubuntu 20.04 将带来哪些新特性?

Ubuntu 19.10 生命周期将在今年 7 月结束,之后一段时间内最大的版本则是 Ubuntu 20.04 LTS,其重大更新和改进将在 2030 年前终止。20.04 是 Ubuntu 的第 8 个 LTS 版本,计划于今年 4 月 23 日发布。前两天我们报导过 Ubuntu 20.04 LTS 的版本更新时间表,描述了各个时间节点的发布情况,今天来看看 20.04 会带来什么亮点。 首先是主题变化,Yaru 会有一个从亮到暗的主题变化可选,该主题下的复选框、单选按钮以及滑块和进度条等,都不再呈蓝色或绿色,而以紫色取代之。从绿色切换到紫色,整上减少了纷杂的色彩,同时也不破坏 Ubuntu 本身的和谐。 其次,Ubuntu 社区的另一个期待已久的需求也将得到满足,系统将删除预装的...阅读全文

博文 2020-01-27 09:36:30 debian.cn

Monit:开源服务器监控工具

2812 and # ssl enable # pemfile /etc/certs/monit.pem # use address all # only accept connection from localhost allow 127.0.0.1 # 允许localhost连接 allow admin:monit # web登录的用户名和密码 ## Services ## Includes include /etc/monit.d/* 配置文件关键字:'if', 'and', 'with(in)', 'has', 'us(ing|e)', 'on(ly)', 'then', 'for', 'of' 。 如何监控 基本程 1.修改主配置文件2.在/etc/monit.d/增加指定服务的配置文...阅读全文

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

Linux 基金会董事 Jim Zemlin:全球开源可持续增长将带来更多价值

展。去年我们与华为、中国移动宣布了一个开源项目,后来有中国电信和中国联通的加入;再后来又有国际运营商 AT&T、Orange 和中国一些企业共同联手合作,希望能够建立世界上最大的开源的电信类基础设施。由此可以看到现在中国也有一些高质量的开源项目。” 最后,Jim 寄语 LC3 活动: “我们之所以举办 LC3 大会是希望全世界顶尖的开发者和中国的企业、顶尖开发者共聚一堂,分享最佳实践,我们相信未来中国会有更多的自主的开源的项目。 届时,Linux 创始人 Linus Torvalds 将来到中国,和中国开源的开发者进行交,希望能够推动中国的开源项目不断地发展和扩展。 大会还邀请到开源项目和技术方面的有 OpenStack 项目执行董事、Kubernetes 项目负责人...阅读全文

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

Apollo 分布式配置中心详解

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、程治理等特性,适用于微服务配置管理场景。 本文简单从功能特点做介绍,更详细的说明请参考Apollo配置中心介绍。本地快速部署可以参考这里。线上的演示环境从这里可以访问到: 106.54.227.205 (账号/密码: apollo/admin) Apollo 配置中心产生背景 大多情况下程序随着功能的复杂,程序的配置也会增多:包括各种功能开关、参数配置、服务地址信息配置等,同时开发人员对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群的管理配置、权限控制、审核机制等。 在这样的大环境下,传统的通过配置文件、数据库...阅读全文

博文 2020-04-12 12:16:26 debian.cn

Hadoop 核心 - HDFS 分布式文件系统详解

1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪一种,需要看我们具的实现类,在我们实际工作中,用到的最多的就是HDFS(分布式文件系统)以及LocalFileSystem(本地文件系统)了。 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。 HDFS(Hadoop Distributed File System)是 Hadoop 项目的一个子项目。是 Hadoop 的核心组件之一, Hadoop 非常适于存储大型数据 (比如 TB 和 PB),其就是使用 HDFS 作为存...阅读全文

什么是线程安全,以及并发需要知道的几个概念

众所周知,在Java的知识系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。为了追求成为一个好的Java程序员,我决定从今天开始死磕Java的并发编程,尽量弥补自己在这方面的知识缺陷。 并发必须知道的概念 在深入学习并发编程之前,我们需要了解几个基本的概念。 同步和异步同步和异步用请求返回调用的方式来理解相对简单。 同步:可以理解为发出一个请求后,必须等待返回结果才能执行下面的操作。 异步:请求发出后,不需要等待返回结果,可以继续执行后续操作,异步请求更像是在另一个 “空间” 中处理请求的结果,这个过程不会影响请求方的其他操作。 举个生活中的例子,比如我们去实店买衣服,挑选完款式后下单让售货员去仓库拿货,在售货员拿货的过程你需要在店...阅读全文

博文 2018-12-31 20:44:06 debian.cn

百度运维工程师挖矿实录:四个月用155台服务器挖矿赚10万判3年

资源,从而获取虚拟货币的一种程序,需要较高的硬件配置及用电量。 而单凭一个矿工的力量是挖不到比特币的。于是“安某”便想到可以利用自己的职务之便利用百度的服务器来开启自己的发家致富之路,只是他可能没想到的是事情会败露的这么快。 那么,他具是怎么做的呢? 首先,他用自己的工作账户上传了一个压缩文件 miner.tar.gz ,其中包含一个名为 java_4u3 的脚本, 而这个脚本可以自动执行解压缩、创建目录、删除目录、自动连接代理进行网络交换,达到控制服务器的目的。 然后,编译了一个挖矿程序,并将上述程序部署非法控制了百度的 155 台服务器上,利用公司为其配备的苹果电脑上的 iterm 软件控制所有服务器的中控机,通过中控机上传挖矿脚本,并通过 iterm 软件发出批量下载指令,让 200...阅读全文

博文 2020-03-17 20:42:41 debian.cn

Golang Context 探究

中最常用的方法还是 context.Background、context.TODO,这两个方法都会返回预先初始化好的私有变量 background 和 todo。这两个私有变量都是通过 new(emptyCtx) 语句初始化的,它们是指向私有结构 context.emptyCtx 的指针。 1 2 3 4 5 6 7 func Background() Context { return background } func TODO() Context { return todo } 通过下面代码可以看出 emptyCtx 就是 Context 的实现,只不过没有实际功能。 我们一般用 context.Background 作为根 context; 在不确定使用哪种 context 时用...阅读全文

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

influxdb内存消耗分析及性能优化【探索篇】

influxdb在内存中引入了大量文件,在内存充足时,会占用较多的空间,用于提高程序读取性能。5.SMP与NUMA?cpu硬件系架构可以分为:SMP(Symmetric Multi-Processor)/UMA(Uniform Memory Access)模式SMP架构,所有的CPU争用一个总线来访问所有内存,优点是资源共享,而缺点是总线争用激烈。 实验证明,SMP服务器CPU利用率最好的情况是2至4个CPUNUMA(Non-Uniform Memory Access)模式NUMA架构引入了node和distance的概念。对于CPU和内存这两种最宝贵的硬件资源, NUMA用近乎严格的方式划分了所属的资源组(node),而每个资源组内的CPU和内存是几乎相等。在influxdb服务器上,查看当前cpu及...阅读全文

博文 2021-10-27 16:06:30 知乎

开源简史基础:Linux基金会

员年费数量备注白金会员企业会员50万美元15黄金会员企业会员10万美元16白银会员企业会员5000-20000美元800+根据企业规模年费不同个人会员个人会员99美元-- 可以看到主要的资金来源是上述四类,根据截止于2019年9月10日的数据,大白金/黄金/白银(取中位数1万)的年费正常的话大概有:5015 + 1610 + 800*1 = 1710万美元,再加上大量的个人用户,资金来源相较于一般的项目还是能够提供较好的支持的。 白金和黄金会员 截止到目前位置,白金和黄金会员为31,虽然我们无法确认大量的白银会员,但是白金和黄金会员的企业类型,还是可以确认的。 会员类型会员数量通信企业软件开发商金融公司自动化/制造业组件生产商设备制造商其他白金15AT&T、腾讯TencentFujitsu...阅读全文

Debian下编译安装Golang

”(Bootstrap),也就是用Go来实现Go、用Go来编译Go。之前都是用C来实现,编译Go项目就是编译C语言。 因此,只要把源码checkout到1.4版本,就可以不需要依赖于Go自身,解决自我依赖悖论。 git checkout go1.4 ./all.bash 二次编译错误:import cycle not allowed import cycle not allowed package ./cmd/dist imports bytes imports errors imports runtime imports runtime/internal/atomic imports runtime Go不支持循环导入,不知算进步还是退步。 不过,这里倒是现了价值,提前报错。这个错误的主要原因,是编译时把...阅读全文

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

Systemd 及 Service 文件含义解析

/etc/systemd/system/ 目录中的单元文件的优先级总是高于 /usr/lib/systemd/system/ 目录中的同名单元文件。注意,当/usr/lib/ 中的单元文件因软件包升级变更时,/etc/ 中自定义的单元文件不会同步更新。此外,你还得执行 systemctl reenable ,手动重新启用该单元。因此,建议使用前面一种利用 *.conf 的方法。 可以使用 journalctl 来查看 systemd 管理服务的启动日志: ``` journalctl -b -0 # 显示本次启动的信息 journalctl -b -1 # 显示上次启动的信息 ``` 参考阅读 ArchLinux 的 Systemd (简中文) 文档:https...阅读全文

博文 2021-02-17 10:02:50 joseph

2017 热门开源自动化测试框架优缺点对比

此跨平台框架。如果想要添加新的关键字(通过 RF 测试库 API ),需要具备 Java / Python / C 语言的基础知识。 2. JUnit JUnit 是一款针对 Java 应用的单元测试框架,用于编写和运行可重复的测试。 优点: 纯 Java 编写。 支持测试驱动开发(TDD)。 允许创建自己的单元测试用例套件。 能很好地与其他工具(如 Maven )和 IDE(如 IntelliJ )集成。 长时间发展,有自己庞大的用户群,可以很容易找到文档。 缺点: 如果需要 mocking 能力,则需要额外添加 Mockito(或其他模拟库)。 因 JUnit 中的方法名称受 Java 约定限制等原因,非技术人员很难读懂测试结果。 如果你正在为你的 Java 应用编写单元测试,那这可能...阅读全文

博文 2017-11-15 08:52:47 debian.cn

使用 setfacl 管理文件的访问控制列表ACL

。在 Debian 系统中,执行命令: sudo apt-get install acl ACL 使用样例 ACL即Access Control List,主要的目的是提供传统的 owner, group, others 的 read, write, execute 权限之外的具权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的访问控制有一定帮助。例如,某一个文件不让单一的某个用户访问。 ACL使用两个命令来对其进行控制: getfacl:取得某个文件/目录的ACL设置项目 setfacl:设置某个文件/目录的ACL设置项目 setfacl 的命令参数: -m:设置后续acl参数 -x:删除后续acl参数 -b:删除全部的acl参数 -k:删除默认...阅读全文

Go1.16 新特性:一文快速上手 Go embed

) ReadFile(name string) ([]byte, error) 根据此也可以确定 embed 所打包进二进制文件的内容只允许读取,不允许变更。 更抽象来讲就是在编译期就确定了 embed 的内容,在运行时不允许修改,保证了一致性。 总结 通过 Go1.16 正式提供的 embed 特性,可以实现原生就支持静态资源文件的嵌入。整如下: 在功能上:能够将静态资源嵌入二进制文件中,在运行时可以打开和读取相关的打包后的静态文件。在安全上:是在编译期编译嵌入,在运行时不支持修改。在使用上:支持单文件读取:go:embed hello.txt。支持多文件读取:go:embed hello1.txt、go:embed hello2.txt。支持目录读取:go:embed helloworld。支持贪婪匹配...阅读全文

博文 2021-02-17 08:44:12 CSDN

Rust 1.37.0 稳定版发布

union 中使用。在 Rust 1.37.0,该属性现在也可以用于枚举定义。例如,如下类型 Align16 将如预期的那样,报告 16 为对齐,而不使用 #[repr(align(16))] 的对齐将为 4: #[repr(align(16))] enum Align16 { Foo { foo: u32 }, Bar { bar: u32 }, } 在枚举上使用 #[repr(align(N))] 的语义与使用该对齐定义包装器结构 AlignN 一样 ,然后使用 AlignN: #[repr(align(N))] struct AlignN(T); 在 Rust 1.37.0 中,有一些标准库稳定化: BufReader::buffer 和 BufWriter...阅读全文

博文 2019-08-17 21:17:23 debian.cn

如何对一个deb包解压、修改、重新打包 全过程

客 01-28 1万+ 一、deb包详解 1->deb 包的文件结构 deb 软件包里面的结构:它具有DEBIAN和软件具安装目录(如etc, usr, opt, tmp等)。 deb包本身有三部分组成 组成 详细 数据包 包含实际安装的程序数据,文件名为“data.tar.XXX” 安装信息及控制包 包含deb的安装说明,标识,脚本等,文件名为“control.tar.gz” ... [教程] iOS设备上修改deb解包打包 教程 六桥风月IT随笔 05-26 1万+ 1,首先你需要安装终端。并需要一个源依赖(说白了就是安装命令终端) 2,开始(我们从最简单学起) 3,我们以ChargingHelper.deb (充电助手)为例子,你可以命名为abc.deb方便等下命令操作。 4...阅读全文

博文 2021-02-16 11:44:48 CSDN

Debian Live 项目的剧变

Williams 却坚持认为取代 live-build 很有必要。Learmonth 给 live-build-ng 换了一个争议性也许小一些的名字: live-wrapper 。他说他的目标是为 Debian Live 项目加入新的工具(并且「把 Debian Live 项目引入 Debian 里面」),但是完成这件事还需要很大的努力。 我向已经被 ITP 问题所困扰的每个人道歉。我们已经告知大家 live-wrapper 还不足以完全替代 live-build 且开发工作仍在进行以收集反馈。尽管有了这部分的工作,我们收到的反馈缺并不是我们所需要的。 这种对于取代 live-build 的强烈反对或许已经被预知到了。自由软件社区的沟通和交很关键,所以,计划去替换一个项目的核心很容易引起争议——更何况是...阅读全文

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

如何在 Debian 上添加和删除用户

提供了一个更熟悉的文字编辑验。使用箭头键移动光标,并搜索如下所示的线: / etc / sudoers root ALL=(ALL:ALL) ALL 在这行下面,复制你在这里看到的格式,只改变单词“root”来引用你想给sudo权限的新用户: / etc / sudoers root ALL=(ALL:ALL) ALL sammy ALL=(ALL:ALL) ALL 你应该为每个应该给予完全sudo权限的用户添加一个这样的新行。当你完成,你可以保存并通过点击关闭文件CTRL-X其次是Y ,然后ENTER确认。 如何删除用户 如果您不再需要用户,最好删除旧帐户。 您可以删除用户本身,而不删除任何他们的文件,通过键入作为根用户: deluser sammy 如果您以具有sudo权限的其他非...阅读全文

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

Golang常见的十大算法精简版

最近有时间,都在看Go,感觉Go语言真的不错,具自行百度。今天简单说一下算法。 什么是算法一系列的计算步骤,用来将输入数据转化成输出结果算法的意义用于解决特定的问题解决同一个问题的不同算法的效率常常相差非常大,这种差距的影响往往比硬件和软件方面的差距还要大。 算法在我们编程开发中,还是不可或缺的。下面简单来列举一下go语言常见的十大算法。 BubbleSort(冒泡排序) func Sort(list []int, left, right int) { if right == 0 { return } for index,num := range list { if index < right && num > list[index + 1] { utils.SwapGo(list...阅读全文

博文 2019-09-05 09:31:10 debian.cn

Terraform 学习总结 — Terraform 简介

Infrastructure as Code", 基础架构即代码。Terraform 几乎可以支持所有市面上能见到的云服务。具的说就是可以用代码来管理维护 IT 资源,把之前需要手动操作的一部分任务通过程序来自动化的完成,这样的做的结果非常明显:高效、不易出错。 Terraform 提供了对资源和提供者的灵活抽象。该模型允许表示从物理硬件、虚拟机和容器到电子邮件和 DNS 提供者的所有内容。由于这种灵活性,Terraform 可以用来解决许多不同的问题。这意味着有许多现有的工具与Terraform 的功能重叠。但是需要注意的是,Terraform 与其他系统并不相互排斥。它可以用于管理小到单个应用程序或达到整个数据中心的不同对象。 Terraform 使用配置文件描述管理的组件(小到单个应用程序,达到整个数据中心...阅读全文

项目总结报告应该怎么写

每次项目进度都很紧张、项目发版时间总是一延再延、每个版本bug数量堆积成山、测试期间各种bug总是层出不穷、临近上线发现严重bug,如果项目经理总是被这些问题围绕,那么项目总结迫在眉睫。项目经理如何进行项目总结才能让项目顺利进行,让领导一看就喜欢,今天把经验分享给大家,帮助你做好项目总结。总结的思维模式想写好一份项目总结,总结人员必须具备一定的结构化思维,对问题、数据进行结构分析,且能够通过结构化思维表达出来。结构化思维具备以下四个特点。​结论:问题比较多的时候,要进行抽象归纳,做到抓大放小,先解决当前最主要的问题。总结的目的✤对项目进行复盘,发现项目中存在的问题,针对问题找到根本原因并提出解决方案;✤提高项目质量,让项目“健康”前行;✤通过数据衡量当前版本的质量,对项目整情况进行评估...阅读全文

APISIX Ingress 如何使用 Cert Manager 管理证书

对象,并且包含新的证书。 总结 本文主要讲解了如何利用 Cert Manager 在 Apache APISIX Ingress Controller 中进行证书的创建和管理。想了解更多关于 Apache APISIX Ingress 的介绍与内容,可参考本篇文章 或者参与 Apache APISIX Ingress 项目每两周举行的线上讨论,分享当下项目进度、最佳实践及设计思路等多个话题,可查看具 issue 了解更多。...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

Kubernetes 1.7:安全加固、有状态应用更新等

谢庞大的开放社区让这次发布成为可能。仅仅在三年时间内就完成了超过5万次提交,这还只是 Kubernetes 主要仓库的数量。 其他对于 Kubernetes 贡献到相关的仓库的扩展,提升了项目整的稳定性。是速度让 Kubernetes 成为史上发展最快的开源项目之一。 世界的每一个角落都能发现 Kubernetes 的采用案例。从社区收集到的近期案例有: GolfNow,一个 NBC Sports Group 成员,在把应用迁移到 Kubernetes 后,获得了更好的资源利用率,基础设施的开销砍掉一半。 Bitmovin,一个视频基础设施解决方案提供商,向我们展示了他们在云环境和就地部署环境中如何实施多阶段金丝雀部署。 Ocado,世界最大的在线超市,使用 Kubernetes 为他们的...阅读全文

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

Docker 快速入门之 Dockerfile

, CMD, ENTRYPOINT 等指令的用户以及用户组。默认为 root 用户。语法: USER [:] 3.12 WORKDIR WORKDIR 指令用于设置 RUN, CMD, ENTRYPOINT, COPY, ADD 等指令的工作目录。语法: WORKDIR /path/to/workdir 4 总结 本文从一个具的例子出发,讲述了如何利用 Dockerfile 构建镜像,然后解释了 Dockerfile 文件中的指令的语法,有关更多内容可访问官方文档。 5 参考资料 Dockerfile reference 本文转载自 Locez.com,在原文基础上,略有增删。...阅读全文

博文 2017-12-16 13:50:31 debian.cn

Kubernetes v1.21 新特性预览

服务都需要云服务商扩展(Cloud Provider)去配置云上负载均衡器,并且整个集群中只能运行一个 Cloud Provider。Kubernetes v1.21 新增的 ServiceLoadBalancerClass 特性允许一个集群中运行多个负载均衡器的实现,而 Service 可以通过 spec.loadBalancerClass 指定使用哪个具实现(类似于 Ingress Controller)。PodDeletionCost Alpha以前从 ReplicaSet 删除 Pod 时只能设置副本数量而不能指定要删除的 Pod,而 Kubernetes v1.21 新增的 PodDeletionCost 特性允许用户设置哪些 Pod 优先删除。使用该特性时需要给 Pod 增加一...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

2016年Linux领域的十条大新闻,你关注了吗?

。事实上,Linux出色的可靠性与灵活性使它成为关键性基础设施内不可或缺的核心要素。 那么究竟是什么神奇的力量让Linux这样一位“私生子”变成世界的主宰?根据VAR Guy网站的总结,Linux成功的原因包括分布式开发方法、务实的意识形态、切实可行的内核设计以及庞大且活跃的Linux社区。 2. Fedora 25成为首款默认使用Wayland的Linux发行版 Fedora 25将Wyland作为它兼容机上的默认显示协议。为什么选择Wayland?Fedora开发者Matthias Clasen表示它能够实现客户端间彼此隔离、更适合现代显示系统(不包含不必要的核心字或核心渲染等‘累赘’)且能够实现原有X系统无法实现的多种功能(例如输入转换以及在合并桌面与全屏客户端之间进行顺畅过渡...阅读全文

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

Kotlin 一统天下?Kotlin/Native 支持 iOS 和 Web 开发

Kotlin 使用 React.js 创建现代 Web 应用。 使用 create-react-kotlin-app,可让开发者无需费心于项目设置和配置构建这些工作,能专注于快速开始客户端应用开发,同时会到静态类型语言的优势以及由 JavaScript 生态系统带来的强大配套资源。详情点此了解。 未来的发展方向 Kotlin 语言的未来发展方向主要是在 Kotlin 支持的平台之间实现更好、更广泛的代码重用。官方表示计划通过使用同一 API 以扩展全部平台上的可用库资源集合,其中涵盖 I/O、网络、序列化以及日期处理等。 编译器方面,1.3 版本仍集中关注内部层面的变更,而不是外部可见的语言特性。内部的改变能提高性能、改进类型推断、为所有目标平台生成更高效的代码,以及带来更好的 IDE 插件响应能力...阅读全文

博文 2017-11-05 19:28:14 debian.cn

十个增加 Linux Shell 脚本趣味的小工具

-dialog-info:通知图标,你可以指定图标 -i /path/to/your-icon.png 2. tput 命令 这个命令是用来设置终端特性的: 移动光标 获得终端信息 设置前景和背景色 设置粗模式 设置反模式等等 举例: #!/bin/bash # clear the screen tput clear # Move cursor to screen location X,Y (top left is 0,0) tput cup 3 15 # Set a foreground colour using ANSI escape tput setaf 3 echo "XYX Corp LTD." tput sgr0 tput cup 5 17 # Set reverse video mode...阅读全文

博文 2018-04-09 09:38:50 debian.cn

理解 Linux 的虚拟内存

。 内存寻址和分配 我们知道通过虚拟内存机制,每个进程都以为自己占用了全部内存,进程访问内存时,操作系统都会把进程提供的虚拟内存地址转换为物理地址,再去对应的物理地址上获取数据。CPU 中有一种硬件,内存管理单元 MMU(Memory Management Unit)专门用来翻译虚拟内存地址。CPU 还为页表寻址设置了缓存策略,由于程序的局部性,其缓存命中率能达到 98%。 以上情况是页表内存在虚拟地址到物理地址的映射,而如果进程访问的物理地址还没有被分配,系统则会产生一个缺页中断,在中断处理时,系统切到内核态为进程虚拟地址分配物理地址。 功能 虚拟内存不仅通过内存地址转换解决了多个进程访问内存冲突的问题,还带来更多的益处。 进程内存管理 它有助于进程进行内存管理,主要现在: 内存完整性:由于...阅读全文

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

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

导语 | kafka3.0的版本已经试推行去zk的kafka架构了,如果去掉了zk,那么在kafka新的版本当中使用什么技术来代替了zk的位置呢,接下来我们一起来一探究竟,了解kafka的内置共识机制和raft算法。一、Kafka简介Kafka是一款开源的消息引擎系统。一个典型的Kafka系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群,如上图所示。其中ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将消息发送到Broker,Broker负责将收到的消息存储到磁盘中,而Consumer负责从Broker订阅并消费消息。(一)Kafka核心组件producer:消息生产者,就是向broker...阅读全文

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

深入了解Docker背后的namespace技术

", strerror(errno)); exit(EXIT_FAILURE); } // lets wait on our child process here before we, the parent, exits if (waitpid(pid, NULL, 0) == -1) { fprintf(stderr, "failed to wait pid %d\n", pid); exit(EXIT_FAILURE); } exit(EXIT_SUCCESS); } 这是个小的C程序,可以让你执行./a.out ip a。它把你通过命令行传入的参数,作为任何你想使用的进程的参数。不用担心具实施太多,因为我们将要做的事情将要发生有趣的变化。它将会用任何你想要的参数执行你希望的程序。这意味着如果你想执行下面...阅读全文

博文 2015-05-17 10:03:00 debian.cn

Ceph 12.2.0 正式版本发布, 代号 Luminous

。 ceph-mgr还包括一个Prometheus插件。 ceph-mgr现在有一个Zabbix插件。使用zabbix_sender,它可以将集群故障事件发送到Zabbix Server主机。 这样可以方便地监视Ceph群集的状态,并在发生故障时发送通知。 集群的总可扩展性有所提高。我们已经成功测试了多达10,000个OSD的集群。 目前,每个OSD都具有与其相关联的设备类(例如,hdd或ssd),允许CRUSH规则将数据简单地映射到系统中的设备的子集。 通常不需要手动编写CRUSH规则或手动编辑CRUSH。可以优化CRUSH权重,以保持OSD之间数据的近乎完美的分布。 还有一个新的upmap异常处理机制,允许单个PG移动以实现完美的分发(这需要客户端)。 每个OSD目前可以根据后端设备是HDD还是...阅读全文

博文 2017-08-31 13:36:49 debian.cn

Linux系统诊断-内存基础

swap的方式临时缓解内存不足的问题,但一般不能直接作在线减少swap的操作,很有可能导致进程的crash。具swap配置方式见5.1swap相关配置。OOM=======1.What is OOM?Out Of Memory Killer 是 Linux 的一种系统保护机制,在系统内存紧张时,kill掉某些进程防止系统卡死。系统通过打分机制,来实施对进程的杀死操作。默认机制是通过扫描所有进程的内存占用,cpu占用等因素,然后打分  (badness),分数越高,进程被kill的优先级就越高。2.哪些行为会让系统对进程进行打分?进程使用fork(2)调用,创建众多子进程时,会加分(+)进程已经运行了很长时间,或者和使用了大量的CPU时间,会减分(-)进程的nice值如果比较低,会加分(+)进程如...阅读全文

博文 2021-02-11 14:22:42 SegmentFault 思否

下一代时间同步服务 Chrony 详解

,也可以在一台不同的远程计算机上工作。 Chrony 和 NTPD 精度对比测试 我们可以从 Chrony 的官方网站上可以看到与 NTPD 各维度详细对比: 从其测试结果上看似乎是各维度性能都可以吊打 NTPD。因此 Chrony 的整评价还是比较高的。 Chrony 相较于 NTPD 服务的优势 更快的同步只需要数分钟而非数小时时间,从而最大程度的减少时间和频率误差,这对于并非全天运行的台式计算机或系统而言非常有用。能够更好的响应时间频率的快速变化,这对于具备不稳定时钟的虚拟机或导致时钟频率反复变化的节能技术而言非常有用。在初始同步后,它并不会停止时钟,以防对需要系统时间保持单调的程序造成影响。在应对临时非对称延迟时,(例如:大规模下载造成连接饱和时)提供了更好的稳定性。无需对服务器进行...阅读全文

博文 2021-01-04 08:41:14 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 详解(上)

Gitlab CI 配置文件 .gitlab

。.public工作是cp,并且它不会循环复制public/本身。 pages: stage: deploy script: - mkdir .public - cp -r * .public - mv .public public artifacts: paths: - public only: - master 更多内容请查看GitLab Pages用户文档。 Validate the .gitlab-ci.yml GitLab CI的每个实例都有一个名为Lint的嵌入式调试工具。 你可以在gitlab实例的/ci/lint下找到该链接。 Skipping jobs 如果你的commit信息中包含[ci skip]或者[skip ci],不论大小写,那么这个commit将会创建但是jobs也会跳过...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

Git 介绍与使用详解

前言 Git是目前非常行的协同开发工具,很多开源网站都使用Git作为代码管理仓库(例如 开源中国,GitHub),不管是开发还是产品、设计师,Git都很适合,而且很多IDE默认集成了Git,熟练的使用Git会起到事半功倍的效果,所以今天我为大家分享一下Git的介绍与使用。 1.Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一)。 1.1什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。如果你是位网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本。 有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你也可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题...阅读全文

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

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

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

MongoDB 是一个多租户系统,它会尽可能地占用内存,因此最好是安装在服务器上,最大限度地提供内存,即使是开发工作。在服务器上使用默认端口安装而不启用身份验证是在自找麻烦,尤其是可以在查询中运行任意 JavaScript 时(例如把$where 作为注入攻击的载)。 身份验证方法有多种,但是用户 ID/密码凭证最容易安装和管理。当你考虑 基于 LDAP 的身份验证 时,可以采用那个方法。在我们谈论安全时,MongoDB 必须保持最新,而且,在日志里查找未授权访问的迹象总是值得的。我不喜欢使用默认端口。 忘记限制 MongoDB 的攻击面 MongoDB 的 安全检查清单 为降低网络渗透和数据泄露风险提供了很好的建议。我们很容易会认为,开发服务器不需要高等级的安全。不是这样的:安全对于所有...阅读全文

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

Ian Murdock 走了,但 Debian 常在。今天就从与 Ian Murdock 的访谈来回顾一下 Ian 的 Debian 往事。 Debian 社区前几日宣布,Debian 的著名创始者 Ian Murdock 已经去世,死因至今不明。到官方公布具死因之前,恐怕我们多猜测也无益。今天,不如让我们一起来回顾一下 Murdock 对免费软件的发展做出的贡献。 1999 年 11 月,我曾有幸与 Murdock 有过一次访谈。我为写《Rebel Code:Linux and the Open Source Revolution》这本书共做过 50 多次访谈,这就是其中一回。虽说在书中我只引用了 Murdock 所说的寥寥几句,不过如今,借着这个时机,我想用 Murdock 自己的话...阅读全文

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

如何读懂火焰图?+ 实例讲解程序性能优化 - xuxh120

代表cpu使用的时间。例如: 九、Async-profiler的使用 和 火焰图分析 背景: 目前有一个kafka消费者工程,此工程会消费kafka中的消息,并通过fastjson解析该消息为java实,然后存入到阻塞队列 BlockingQueue中。另外有若干个线程会从queue中批量拿消息,然后以批量形式写入到 elasticsearch 中。目前在使用中发现存在性能瓶颈,需要定位是该工程对消息转化处理较慢,还是写es操作比较慢。 9.1采集cpu profile数据 我们将代码回退到第一次测试的情况,并启动程序,并找到当前进程号(627891),然后通过如下命令进行采集,并转换为火焰图格式 svg。 ./profiler.sh -d 15 -i 50ms -o svg -e cpu...阅读全文

博文 2022-03-11 10:05:09 博客园

从 Debian 安装 Proxmox VE,并配置网络和双硬盘

签名的证书。 我习惯把视图调整为目录视图。 左上角有个下拉框,Folder View. 这里系统是安装完了,但是还需要一些配置. 设置网络Datacenter - Nodes - node System - Network 现在服务器是通过具的硬件网卡来获取 IP 地址接入互联网。 如图: 但是我们需要新建一个桥接网卡,VM 会通过这个桥接网卡来配置 IP 地址,类比桌面环境下用 VMWare 开虚拟机,通过桥接上网之类的。 这里需要先删掉 Network Device 上面的 IP 地址,因为 IP 地址不能同时分配到两张网卡上,所以记下你的 IP 地址和网关,当然,你的服务器后台也应该有这些。 那么,问题来了,删掉后,IP 地址没有配置到网卡上,我们是不是无法访问到这台服务器了呢?会立...阅读全文

博文 2021-03-01 20:20:31 驱蚊器喵的插座