InfraPub 为您找到相关结果 594

Go 泛型的括号选择:[ ] or ( )

( ) 和 [ ] 可供选择。然而缺少修饰的方括号会在数组和 slice 的类型声明中造歧义,在解析索引表达式时也会引起小程度的歧义。因此在设计之初他们决定使用小括号,因为小括号似乎更符合 Go 语言的风格,而且看起来问题最少。 为了使小括号正常工作,并且为了向后兼容,他们表示不得不在类型参数列表中引入type关键字。最后,他们在参数列表、复合字面量和嵌入类型中发现了额外的解析歧义,而这些歧义需要嵌套更多的小括号来解决。不过即便如此,他们还是决定继续使用小括号,因为当时还有更重要的设计问题需要解决。 现在他们决定重新考虑这个最初的决定。如果仅使用方括号声明类型参数,那么声明数组的方式如下所示: type A [N]E 不过这就无法与泛型的声明进行区分: type A[N] E 但如果能接受额外的...阅读全文

博文 2020-07-16 10:38:01 debian.cn

LXD 3.8 发布,下一代容器管理器

LXD 服务器必须配置为监听单个 IPv4 或 IPv6 地址,同时内部集群流量和常规客户端流量都使用相同的地址。LXD 3.8 引入新的 cluster.https_address 选项作出改变,write-once 写入密钥保存用于集群通信的地址,并且无法在不必从集群中删除节点的情况下进行更改。有了这个单独的密钥,现在可以将集群节点上的常规 core.https_address 更改为任何地址,包括通配符模式,如 :8443。 集群镜像复制 集群中引入了自动镜像复制, 在 LXD 3.8 之前,镜像只会被复制到其它集群员,虽然有利于性能、带宽和磁盘使用,但这有一个明显的缺点,即如果镜像仅出现在单个系统上并且系统脱机,那么在系统恢复之前将无法使用该镜像。 此版本通过在至少 3 个系统上复制所...阅读全文

博文 2018-12-14 10:29:14 debian.cn

DNS SRV:使用DNS服务器做服务发现

级的记录,按照权重选择,记录的权重越高,被选择的可能性越高。 选择的时候,将所有记录的权重值累加,得到一个选择区间[0,sum],每个记录在[0,sum]中占据一段连续的、长度为自身权重值区间。然后生一个[0,sum]中的随机数,随机数落在的区间所属的记录就是被选择的记录。 注意事项 在使用DNS SRV的时候,要注意DNS Client是否按照预期的方式处理收到的SRV记录。当前DNS SRV只能够负责提供服务地址列表,对这个列表如何解读,完全取决于Client的实现。rfc-1035中规定,通过UDP协议传输DNS响应时,UDP报文的负载不能超过512字节,在添加 SRV 记录的时候,要特别注意。通过TCP传输时没有512字节的限制。当一个服务地址有多个相同优先级的SRV记录的时候...阅读全文

博文 2019-03-05 09:35:34 debian.cn

Debian 公布关于支持非 systemd 初始化系统的投票结果

项目认识到 systemd 服务单元是用于描述如何启动守护程序/服务的首选配置。但是,Debian 仍然是一个环境,开发者和用户可以在其中探索和开发替代的初始化(init)系统和 systemd 功能的替代方案。那些对探索此类替代方案感兴趣的人需要提供必要的开发和打包资源来完这项工作。在运行依赖于某些 systemd 接口的软件时,有助于探索替代方案的诸如 elogind 之类的技术对于 Debian 仍然很重要。更重要的是,Debian 团队必须支持开发此类技术的开发者的工作,这些技术与 Debian 项目的其余部分之间存在重叠,例如,及时检查补丁并参与讨论。软件包应包括服务单元或启动脚本,以启动守护程序和服务。软件包可以由软件包维护者自行决定使用任何 systemd 工具,只要这与其他...阅读全文

博文 2019-12-29 13:53:51 debian.cn

HAProxy用法详解 最详细中文文档

处理部分流量同时又不修改服务器的地址为可能。 性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化。 1,单进程、事件驱动模型显著降低了上下文切换的开销及内存占用。 2,O(1)事件检查器(event checker)允许其在高并发连接中对任何连接的任何事件实现即时探测。 3,在任何可用的情况下,单缓冲(single buffering)机制能以不复制任何数据的方式完读写操作,这会节约大量的CPU时钟周期及内存带宽; 4,借助于Linux 2.6 (>= 2.6.27.19)上的splice()系统调用,HAProxy可以实现零复制转发(Zero-copy forwarding),在Linux 3.5及以上的OS中还可以实现零复制启动(zero-starting); 5,内存...阅读全文

博文 2014-05-10 17:14:46 debian.cn

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

分布式任务调度平台 XXL

务,可根据业务事件灵活触发。 16、任务进度监控:支持实时监控任务进度; 17、Rolling 实时日志:支持在线查看调度结果,并且支持以 Rolling 方式实时查看执行器输出的完整的执行日志; 18、GLUE:提供 Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持 30 个版本的历史版本回溯。 19、脚本任务:支持以 GLUE 模式开发和运行脚本任务,包括 Shell、Python、NodeJS、PHP、PowerShell 等类型脚本; 20、命令行任务:原生提供通用命令行任务 Handler(Bean 任务,”CommandJobHandler”);业务方只需要提供命令行即可; 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行功后...阅读全文

博文 2018-11-05 21:47:15 JOB 2.0.0 发布

Kubernetes 部署 Nacos 1.4 集群 · 小豆丁

!版权声明:本博客内容均均为原创,每篇博文作为知识积累,写博不易,转载请注明出处。 目录[-] 参考地址: Nacos 官方文档 系统环境: Nacos 版本:1.4.1 Mysql 版本:8.0.19 Kubernetes 版本:1.20.1 项目示例地址: Kubernetes 中部署 Nacos 的部署文件 Kubernetes 中部署 Mysql 数据库部署文件 如果该文章对你有帮助,别忘了 Github 帮忙点颗星哦~ 一、什么是 Nacos Nacos 是阿里开源的服务注册中心与配置中心组件,能够帮助开发人员快速实现动态服务发现、服务配置、服务元数据及流量管理。同时能够与 SpringCloud、Kubernetes、Dubbo 等开源生态无缝集。 Nacos 支持如下核心特...阅读全文

博文 2021-02-24 10:10:29 www.mydlq.club

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

起运维人员挖矿导致百度损失 2.7 万的事件,同样是运维人员在“涉险”,为什么是运维人员呢? “运维”人员在企业的价值,他们自己的调侃是:当企业没有发生技术故障的时候,大家感觉不到运维人员的存在。当企业发生故障的时候,大家感觉到运维人员确实没有存在的必要。 但调侃归调侃,这反映了技术运维人员在企业中面临的尴尬处境,但实际上,运维人员对于一家企业运营维护的保障,确实是很重要的。他们的职责包括服务器的部署、配置、维护;互联网平台的部署、升级、迁移、数据备份恢复;监控服务器,平台的运行,系统优化等,可以说,他们掌握了企业的后门,一旦运维部门发生危险,公司有可能陷入瘫痪状态,因此,一直以来,运维人员也拥有很多访问权限,而这却变了运维人员不惜“涉险”的一个原因之一。 于是,如何对运维人员进行权限管理...阅读全文

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

如何在 Debian 下配置邮件服务器

户和它们各自的邮箱。创建一个用户是很容易的。 root@mail:~# adduser fourbyte 安装和配置SMTP 服务: postfix 配置文件路径 /etc/postfix/ 执行脚本 /etc/init.d/postfix 日志文件 /var/log/mail.log 端口 TCP/25 SMTP:安装postfix Postfix是广泛使用的SMTP服务器之一,因为它是稳定的、轻量级的、可扩展的、高度可定制的。安装postfix可以使用apt-get的完。 root@mail:~# apt-get install postfix 在安装过程中,需要指定电子邮件服务器和域名的类型。 由于此邮件服务器就会直接向目的地发送电子邮件,我们选择Internet Site。 邮件服...阅读全文

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

Golang Context 探究

{ // 返回 context.Context的截止时间(也就是取消时间) Deadline() (deadline time.Time, ok bool) // 返回一个 Channel,这个 Channel 会在当前操作完或者上下文被取消之后关闭,多次调用 Done 方法会返回同一个 Channel Done() <-chan struct{} // 返回 context.Context 结束的原因 Err() error // 从 context.Context 中获取键对应的值, 该方法可以用来传递请求特定的数据 Value(key interface{}) interface{} } Context 实现 首先我们思考为什么Golang 中需要 Context。用我们最熟悉的例子 http...阅读全文

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

基于thanos搭建分布式prometheus

的永久存储和查询能力。 Compactor则是对Bucket里的历史数据进行采样或者清理,有具体需求后再自行研究即可。 上述组件均是可选的,没有历史数据永存需求的可以直接忽略。 方案2:thanos receive + thanos querier thanos提供的另一种方案是计算与存储分离,利用thanos receive组件部署一个分布式存储集群,然后令prometheus通过remote write机制直接写入到thanos receive集群完分布式存储,这样prometheus本身就无状态了。 再利用thanos querier反向代理到thanos receive集群,最终对外提供统一的promql查询入口,这个阶段就没有prometheus什么事了。 这套方案的工作原理如下...阅读全文

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

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

给了你更多的控制,但这种便利是有本的。 像 Studio 3T 这样的工具使构建准确的 MongoDB 聚合查询变得更容易。它的聚合编辑器特性使你可以一次对一个阶段应用管道操作符,你可以在每个阶段验证输入和输出,更便于调试。 使用快速写 永远不要把 MongoDB 设为低稳定性的高速写。看上去,“file-and-forget”模式使得写入速度变快了,因为命令在实际写入任何东西前就返回了。如果系统在数据写入磁盘之前崩溃了,就会丢失,存在出现不一致状态的风险。所幸,64 位的 MongoDB 启用了“日志(Journaling)”。 MMAPv1 和 WiredTiger 存储引擎都使用日志预防上述情况,不过,在日志关闭的情况下,WiredTiger 也可以在还原过程中恢复到最后一致的 检查...阅读全文

最全 MongoDB 基础教程

否唯一。指定为true创建唯一索引。默认值为false name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生一个索引名称 dropDups Boolean 3.0+版本已废弃。在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false expireAfterSeconds integer 指定一个以秒为单位的数值,完 TTL设定,设定集合的生存时间 v index version 索引的版本号。默认的索引版本取决于mongod创建索引时运行的...阅读全文

博文 2021-02-22 07:45:45 OSChina

Debian Jessie、Stretch 下安装配置 PHP7.2

php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache 如果你想要安装PHP-7.1, 替换这个命令中的 php7.2 为 php7.1 即可。PHP5.6 亦同。 设置 PHP 7 安装完后,编辑 /etc/php/7.2/fpm/php.ini 替换换 ;cgi.fix_pathinfo=1 为 cgi.fix_pathinfo=0 快捷命令: sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.2/fpm/php.ini 配置修改了,需要重启生效,命令如下...阅读全文

博文 2017-12-16 14:16:25 debian.cn

如何在 Linux 上安装 Intel 微代码固件

/OpenSUSE Linux 微码更新包 警告 :在某些情况下,微码更新可能会导致引导问题,比如,服务器在引导时被挂起或者自动重置。以下的步骤是在我的机器上运行过的,并且我是一个经验丰富的系统管理员。对于由此引发的任何硬件故障,我不承担任何责任。在做固件更新之前,请充分评估操作风险! 示例 在使用 Intel CPU 的 Debian/Ubuntu Linux 系统上,输入如下的 apt 命令/apt-get 命令: sudo apt-get install intel-microcode 命令执行功后,需要重启服务器,以激活微代码的更新。重启以后,我们再次执行 dmesg 命令,可以看到输出已经变为: [ 0.000000] microcode: microcode updated early to...阅读全文

博文 2018-03-07 19:37:47 debian.cn

Java 12 / JDK 12 正式发布

,同时保留 32 位 ARM 实现和 64 位 aarch64。 JDK 中存在两套 64 位 ARM 实现,主要存在于 src/hotspot/cpu/arm 和 open/src/hotspot/cpu/aarch64 目录。两者都实现了 aarch64,现在将只保留后者,删除由 Oracle 提供的 arm64。这将使贡献者将他们的精力集中在单个 64 位 ARM 实现上,并消除维护两套实现所需的重复工作。 Default CDS Archives 默认类数据共享归档文件 针对 64 位平台,使用默认类列表增强 JDK 构建过程以生类数据共享(class data-sharing,CDS)档。 Abortable Mixed Collections for G1 可中止的 G1...阅读全文

博文 2019-03-20 12:46:27 debian.cn

AWS省钱攻略:预留实例怎么玩

m5.2xlarge 类型的 Windows 的标准RI,由于计算需求改变,我们需要 m5.4xlarge 的实例以满足业务需求,那么我们可以将两个 m5.2xlarge 的 RI 合并一个 m5.4xlarge。 同样我们也可以将 m5.4xlarge 进行同实例类型的大小拆分。 场景四:回到上面的场景二,您在新加坡区域有个 m5.4xlarge 的 Windows 实例在运行 ,且当前我有一个 m5.2xlarge 的标准 RI,一个 m5.xlarge 的标准RI,那么这种情况下能不能再购买一个 m5.xlarge 的标准Windows RI 进行合并操作呢?这种情况下则无法通过购买 m5.xlarge 标准 RI 合并为 m5.4xlarge 标准RI。 这里就要提到标准RI拆分合并的限制:标准预留...阅读全文

博文 2019-08-18 18:26:19 debian.cn

PostgreSQL 13 正式版发布

PostgreSQL 原生类型。此外,UUID v4 生函数 gen_random_uuid() 现在无需安装任何扩展即可使用。 PostgreSQL 分区系统更加灵活,因为分区表完全支持逻辑复制和 BEFORE 行级触发器。 PostgreSQL 13 中的FETCH FIRST语法现已扩展为可包含WITH TIES子句。 指定时,WITH TIES包括基于ORDER BY子句的结果集中最后一行相匹配的任何其他行。 安全性增强 在之前的版本中,新扩展只能由数据库超级用户安装。为了更容易利用 PostgreSQL 的扩展性,PostgreSQL 13 增加了“可信扩展”的概念——允许数据库用户安装超级用户标记为“可信”的扩展。某些内置扩展默认被标记为“可信”,包括pgcrypto, tablefunc和...阅读全文

博文 2020-10-04 20:07:23 debian.cn

开源简史基础:Linux基金会

在当前以容器化和微服务推动的技术中,需要了解的一个重要组织就是Linux基金会,在全世界范围内,Linux基金会通过提供开放源码所需要的统一资源和服务,从而促进和保护Linux的发展,推动Linux的标准化。 2000年,开源发展实验室OSDL(Open Source Development Labs)作为一个全球性的非盈利组织正式创立以促进Linux企业级计算的发展2007年1月22日,另外一个致力于推动GPL的全球性的非盈利组织,自由标准组织FSG(Free Standards Group)和OSDL联合立了Linux基金会。 Linux基金会是做什么的 拉赞助 Linux基金会致力于围绕开源创建可持续的生态系统,从而加速技术的发展和商业化的推进。而实现这一主要目的的方式之一就是为...阅读全文

Debian下编译安装Golang

拉下来,非常耗时;在GitHub连接不稳定时,也可能会失败。这属于网络问题,读者也需自行解决。 按时间顺序,这里记录了一些相关的坑。如果想直接按照正确的步骤完编译,可以跳到环境配置小节。 首次编译错误 Go不支持在根目录下编译,必须到src目录去。 $ cd src $ ./all.bash ##### Building Go bootstrap tool. cmd/dist ERROR: Cannot find ~/go1.4/bin/go. Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. 我本来就是因为只有Go1.3,才要从源码安装新版本的。现在找我要Go1.4,这可如何是好? 自举 Go从1.5版本开始实现“自举...阅读全文

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

开发者体验被重点关注:开发人员是关键资产 - OSCHINA

,以及他们可以在哪些方面利用这些数据来获得优势。"开源和 OpenTelemetry 正在共同推动可观测性产业,但在最后,这一切都与开发者的体验有关。为开发者建立任何类型的工具的公司需要记住,开发者是需要关注的关键资产。你需要让他们功,给他们一个愉快的体验并消除所有的摩擦。这样他们就可以快速行动,专注于他们需要的东西。" Betanews 作出结论称,开发者是开源社区不可或缺的一部分,且他们构建了公司所依赖的应用程序。公司必须记住:构建工具,使系统更有效、更快速、更容易使用,必须以开发人员为中心。“毕竟,他们是关键资产。”...阅读全文

博文 2021-12-28 14:45:52 中文开源技术交流社区

Go 1.16 即将发布,这些变更你需要知道

tag 设置标识。 如果像是以前,量比较多就会变: type MyStruct struct { Field1 string `json:"field_1,omitempty" bson:"field_1,omitempty" xml:"field_1,omitempty" form:"field_1,omitempty" other:"value"` } 但在 Go1.16 及以后,就可以通过合并的方式: type MyStruct struct { Field1 string `json,bson,xml,form:"field_1,omitempty" other:"value"` } 方便和简洁了不少。 总结 在本次 Go1.16 中带来了不少小优化和新的特性支持。离 Go1.18 的...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

AWS EKS 添加IAM用户角色 - SRE运维博客

: ClusterRoleBinding metadata: name: reader subjects: - kind: Group name: reader apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: reader apiGroup: rbac.authorization.k8s.io 要添加 IAM 用户或角色,请完以下步骤之一。 添加 IAM 用户到 mapUsers。 ... mapUsers: | - userarn: arn:aws:iam::424432388155:user/developer username: developer groups: - reader ... 创建 RBAC kubectl apply...阅读全文

博文 2022-12-19 21:15:27 博客园

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

# owner: root # group: root user::rwx user:code:r-- #effective:--- group::rwx #effective:-w- mask::-w- //可以看到有效权限已经修改功 other::rwx 使用code用户查看文件内容,首先使用root用户写入一些内容,会使测试更加直观 [root@ debian.cn ~]# echo "this is a test getfacl " >/test [code@ debian.cn ~]$ vim /opt/test "/opt/test" [Permission Denied] //可以在最下面看到不允许访问的提示,并且看不到任何内容 取消acl权限: [root@ debian.cn...阅读全文

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

" //go:embed hello.txt var s string func main() { print(s) } 我们首先在对应的目录下创建了 hello.txt 文件,并且写入文本内容 “吃煎鱼”。 在代码中编写了最为核心的 //go:embed hello.txt 注解。注解的格式很简单,就是 go:embed 指令声明,外加读取的内容的地址,可支持相对和绝对路径。 输出结果: 吃煎鱼 读取到静态文件中的内容后自动赋值给了变量 s,并且在主函数中功输出。 而针对其他的基础类型,Go embed 也是支持的: //go:embed hello.txt var s string //go:embed hello.txt var b []byte //go:embed hello.txt var f...阅读全文

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

7 个月猛涨 12 亿美元,开源技术服务商成北欧最新独角兽 - OSCHINA

10 月 20 日,2021 云栖大会上,阿里云发布全新操作系统“龙蜥”并宣布开源。同时,阿里达摩院操作系统实验室也宣告立。 龙蜥操作系统定位于服务器端,支持 x86、ARM 等多种芯片架构和计算场景,兼容 CentOS 生态,支持一键迁移,并提供全栈国密能力。 阿里云在大会上透露,龙蜥操作系统已经在阿里巴巴内部打磨 10 年,... 30 13 阿里平头哥宣布开源四款玄铁 RISC-V 系列处理器 10 月 19 日,2021 云栖大会现场,阿里云智能总裁张建锋宣布,平头哥开源玄铁 RISC-V 系列处理器,并开放系列工具及系统软件。 此次开源的 OpenXuantie 系列 RISC-V 处理器,包括玄铁 E902、E906、C906、C910 等 4 款量产处理器,以及基于...阅读全文

博文 2021-10-21 20:04:43 中文开源技术交流社区

linux下查看系统socket读写缓冲区_eyucham的专栏

\n",snd_size); printf(" 接收缓冲区大小为: %d 字节\n",rcv_size); close(s); return 0; } 运行后的结果: 发送缓冲区原始大小为: 16384 字节 接收缓冲区原始大小为: 87380 字节 发送缓冲区大小为: 20480 字节 接收缓冲区大小为: 20480 字节 从结果 看出ubuntu系统默认的发送缓冲区大小:16384字节,接收缓冲区87380字节 但是有个问题我设置的接收和发送缓冲区大小为:10*1024=10240字节,但是实际用getoptsock得到却是20480字节加了一倍。改其他大小也是都是加倍。 这是由linux内核的算法决定的。...阅读全文

博文 2021-01-26 16:21:35 CSDN博客

Debian的版本号及distributions

release:testing被改名为stable,于是stable指向了新release的code name,同时一个新拷贝被创建,命名为下一个要release的code name,并为新的testing,以前的stable被改名为oldstable,于是对应released的code name的版本号(如sarge对应3.1,etch对应4.0)就发布了。 即使是stable distribution仍然不可避免地存在bugs,解决这些bugs的更新包首先被上传到debian archive的stable-proposed-updates目录下作更进一步的测试,Release Team会定期地评价这些更新并决定它们是否可以被包括到stable中,当一批更新被移至stable中后,stable...阅读全文

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

深入了解Docker背后的namespace技术

namespace中,我们能修改其主机名而不会对他的宿主系统和其宿主系统的其他容器造影响,他们有隔离的UTS namespace。 让我们在 child_exec 函数中修改hostname。为此,我们需要添加#include 头文件使其能访问到sethostname函数,同时还需要添加#include 头文件使得 setthostname函数能够调用 strlen 函数。修改完的 child_exec 应该如下: // child_exec is the func that will be executed as the result of clone static int child_exec(void *stuff) { struct clone_args...阅读全文

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

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

Linux 安全性、项目管理及与其他领域结合发展 (1)近期勒索病毒肆虐全球,安全性方面,总会有人拿Linux 与Windows 相比。而 Jim 则不认可这种比较。他认为开发任何一个比较复杂的软件系统,都难免会有安全漏洞。 从安全性的角度来看,在 Linux 开发过程中会启动 CoreOS 项目,对所有代码进行同行评估,千上万个开源开发者参与其中,对所有代码的安全性进行审议。由此希望通过审计的代码是最安全的,开发出的软件是安全可靠的。 “总而言之,安全是我们的任何项目的重中之重,非常关注与重视的一个问题,包括 Linux 的所有项目” (2)Linux 作为超大规模的项目,又是如何进行管理的呢? “每天我们贡献的代码数量会达到 1 万行,从中抽取 5 千行,还有1800行代码每天都是精心修改的...阅读全文

博文 2021-01-28 17:50:33 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

nsenter 及 Linux命名空间 简介

,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 56:7b:98:07:30:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.134.93/27 brd 192.168.134.95 scope global eth0 valid_lft forever preferred_lft forever 通过内网 IP 地址,我们得知已功进入容器内部。 原理 namespace namespace 是 Linux 中一些进程的属性的作用域,使用命名空间,可以隔离不同的进程。 Linux在不断的添加命名空间,目前有: mount:挂载命名空间,使...阅读全文

博文 2020-12-15 11:22:44 debian.cn

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

": [ { "title": "Wake up to WonderWidgets!", "type": "all" }, { "items": [ "Why WonderWidgets are great", "Who buys WonderWidgets" ], "title": "Overview", "type": "all" } ], "title": "Sample Slide Show" } } 经过上述操作,可以看到访问功,说明证书已经生效。注意,由于证书是自签名的,这里需要加上 -k 选项来忽略证书的校验。 此外,如果你想要轮转证书,删除 httpbin 这一 Secret 对象即可,Cert Manager 会立刻创建一个新的 httpbin Secret...阅读全文

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

Apollo 分布式配置中心详解

等方式已经越来越无法满足开发人员对配置管理的需求。Apollo 配置中心应运而生! Apollo 配置中心功能特点 正是基于配置的特殊性, Apollo 在设计之初就立志于为一个有治理能力的配置管理平台。当前提供了以下一些特性, 统一管理不同环境、不同集群的配置 Apollo 提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。同一份代码部署在不同的集群,可以有不同的配置,通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆盖。 配置修改实时生效(热发布) 用户在 Apollo 修改完配置并发布后,客户端能实时(1秒)接收到最新的配置,并通知到应用程序...阅读全文

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

漫画赏析:Linux 内核到底长啥样

今天,我来为大家解读一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。TurnOff.us 是一个极客漫画网站,作者 Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解读的便是其中的一篇。 在开始,我们先来看看这幅漫画的全貌! Inside the Linux Kernel 这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表 Linux 内核。 地基 作为一个房子,最重要的莫过于其地基,在这个图片里,我们也从最下面的地基开始看起: Filesystem 地基(底层)由一排排的文件柜组,井然有序,文件柜里放置着“文件”——电脑中的文件。左上角,有一只胸前挂着 421 号牌的小企...阅读全文

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

kubelet 中垃圾回收机制的设计与实现

kubernetes 中的垃圾回收机制主要有两部分组:一是由 kube-controller-manager 中的 gc controller 自动回收 kubernetes 中被删除的对象以及其依赖的对象;二是在每个节点上需要回收已退出的容器以及当 node 上磁盘资源不足时回收已不再使用的容器镜像;本文主要分析 kubelet 中的垃圾回收机制,垃圾回收的主要目的是为了节约宿主上的资源,gc controller 的回收机制可以参考以前的文章 garbage collector controller 源码分析。kubelet 中与容器垃圾回收有关的主要有以下三个参数:--maximum-dead-containers-per-container: 表示一个 pod 最多可以保存多少个...阅读全文

博文 2021-02-05 17:48:22 知乎

aptitude 与 apt

一些发行版中我们也能看到它的身影。 Apt是一个很完整和先进的软件包管理程序,使用它可以让你又简单,又准确的找到你要的的软件包, 并且安装或卸载都很简洁。 它还可以让你的所有软件都更新到最新状态,而且也可以用来对 Debian/Ubuntu 进行升级。apt是需要用命令来操作的软件,不过现在也出现了很多有图形的软件,比如 Synaptic, Kynaptic 和 Adept。 命令样例 下面将要介绍的命令大部分需要sudo,使用时请将“packagename”和“string”替换您想要安装或者查找的程序。 apt-get update —— 在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行该命令。此外您需要定期运行这一命令以确保您的软件...阅读全文

博文 2021-01-28 17:50:09 get 的区别与联系

Golang 中的 channel 通道详解

文件是必须要做的,但关闭通道不是必须的。关闭后的通道有以下特点:对一个关闭的通道再发送值就会导致panic。对一个关闭的通道进行接收会一直获取值直到通道为空。对一个关闭的并且没有值的通道执行接收操作会得到对应类型的零值。关闭一个已经关闭的通道会导致panic。channel的种类不带缓存的channel一个基于无缓存Channels的发送操作将导致发送者goroutine阻塞,直到另一个goroutine在相同的Channels上执行接收操作,当发送的值通过Channels功传输之后,两个goroutine可以继续执行后面的语句。反之,如果接收操作先发生,那么接收者goroutine也将阻塞,直到有另一个goroutine在相同的Channels上执行发送操作。基于无缓存Channels的...阅读全文

Linux系统诊断-内存基础

inactive list,内核线程kswapd会定期将active list中的页面移至 inactive list中。如果系统的inactive的内存过大,可以通过如下操作对其做回收。sync; echo 3 > /proc/sys/vm/drop_caches虚拟内存========现代x86系统,计算机能够使用的内存会大于其物理内存的上限,依靠的就是虚拟内存机制。Linux支持虚拟内存机制和实模式机制。实模式下,计算机会直接申请物理内存, 虚拟内存机制下,系统会把磁盘当内存的扩展,已增加可使用的内存大小。并通过映射map的机制,来保存和物理内存的真实对应关系。在磁盘和内存之间传送Page的活动叫做swapping或者页面调度(paging),被用作虚拟内存的磁盘分区称为swap。可以通过在线添加...阅读全文

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

Jono Bacon: GPL 没落了吗?

系、构建联盟,找到并解决行业问题。 在这个峰会上,有一个分组研究,在其中,与会者被分小组,被要求给一个真实存在的核心的开源技术推荐一个开源协议。每个小组都给出了回应。不到十分之一的小组推荐了宽容许可证,没有人推荐 GPL 许可证。 我看到了开源行业对于 Apache 协议以及 MIT 协议的逐步认可,但是他们却对花时间理解、接受和熟悉 GPL 这件事高高挂起。 在这几年里,这种趋势仍在蔓延。除了 Black Duck 的调查之外, 2015 年 GitHub 上的开源协议调查 也显示 MIT 是人们的首选。我还能看到,在我工作的 XPRIZE (我们为我们的 Global Learning XPRIZE 选择了开源协议),在我作为社区领导顾问的工作方面,我也能感觉到那种倾向,因为越来越多的...阅读全文

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

SVN切换分支用法汇总

path:"中输入目标分支的远程地址,例如http://localhost/branches/develop/。Step 3:单击“OK”按钮,等待操作完即可。四、SVN切换分支常见问题处理在使用SVN进行分支切换的过程中,可能会遇到一些常见的问题。为了方便大家解决这些问题,下面列举了一些经常遇到的问题及其解决方法:1. SVN switch的URL地址错误在使用SVN switch命令进行分支切换时,如果URL地址有误,可能会导致切换分支失败。此时,可以按照以下步骤进行处理:Step 1:检查URL是否正确;Step 2:确认URL地址是否可以访问。2. 更新操作失败在进行分支切换的过程中,可能会遇到更新操作失败的问题。这时,我们可以使用以下方法来解决这个问题:Step 1:检查网络连接是否正...阅读全文

博文 2023-06-09 14:22:35 infras

Git 介绍与使用详解

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

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

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

influxdb中数据库名 use iot_cloud #修改保留策略为周期为3天,每2小时一分片 alter retention policy rp_iot_cloud on iot_cloud duration 3d REPLICATION 1 SHARD DURATION 2h default调整为2小时一分片之后,SHR内存峰值会减少10-15g左右的占用。但是缩短分片间隔之后,influxdb会更频繁的进行内部自检及数据压缩,会造cpu及磁盘io的消耗。所以继续考虑SHR占用较大对系统会有什么影响?应用程序在启动之后,会共享系统一些内存:堆内存(共享函数库消耗的堆空间)文件缓存(从磁盘读取文件进行缓存)对于共享堆内存则是必须占用的物理空间,而文件缓存则是系统针对磁盘读取的优化。目前...阅读全文

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