InfraPub 为您找到相关结果 57

Golang Context 探究

{ c.mu.Unlock() return // 已经被其他协程取消 } c.err = err // 关闭 channel,通知其他协程 if c.done == nil { c.done = closedchan } else { close(c.done) } // 遍历它的所有子节点 for child := range c.children { // 递归地取消所有子节点 child.cancel(false, err) } // 将子节点置空 c.children = nil c.mu.Unlock() if removeFromParent { // 从父节点中自己 removeChild(c.Context, c) } } context.timerCtx timerCtx 基于...阅读全文

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

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

已访问到服务器 $ chronyc clients 手动 NTP 服务器或对等服务器 $ chronyc delete 手动设置守护进程时间 $ chronyc settime 校准时间服务器,显示系统时间信息 $ chronyc tracking 检查 NTP 访问是否对特定主机可用 $ chronyc accheck 查看时间同步源 $ chronyc sources -v 查看时间同步源状态 $ chronyc sourcestats -v Chrony 客户端程序的功能非常强大,远不止上面介绍这些。不但支持命令行模式,而且还支持交互模式。如果你想了解更多 Chrony 客户端程序的使用方法,可以使用 man chronyc 命令获取更多帮助。 使用 Chrony 作为 NTP 服...阅读全文

博文 2021-01-04 08:41:14 debian.cn

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

? Linux 系统当时的分割方式基本就是磁盘分割。所以如果你下载了所有的磁盘的话,某种意义上你也就下载了一套 Linux 系统。我们认为这个方法不够好,我们要用更适合分工开发的法子来。 我们决定 Debian 的系统开发由资源包来。也就是说,系统的每一个内容、每一个板块都会以资源包的形式存在,这些资源包能够自动整合成一个完整的系统。你下载了这个资源包的时候,它就知道如何自己或是升级自己。 分工也一样按照资源包来,哪个资源包出错了就能非常明确地知道是谁的责任。我们会在开发时设定标准和规定,保证任何来源的资源包都能在我们的系统上照常运行。所以你只要下载全资源包,你就有了一整个系统。这感觉就像手工布艺一样,把很多布片拼成一整个作品,只不过实际上原理要比这复杂不少。 当然 Debian 项目的资源包分割法...阅读全文

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

Gitlab CI 配置文件 .gitlab

types 已废除,将会在10.0中。用stages替代。 与stages同义 variables GitLab Runner V0.5.0. 开始引入 GItLab CI 允许在.gitlab-ci.yml文件中添加变量,并在job环境中起作用。因为这些配置是存储在git仓库中,所以最好是存储项目的非敏感配置,例如: variables: DATABASE_URL:"postgres://postgres@postgres/my_database" 这些变量可以被后续的命令和脚本使用。服务容器也可以使用YAML中定义的变量,因此我们可以很好的调控服务容器。变量也可以定义成job level。 除了用户自定义的变量外,Runner也可以定义它自己的变量...阅读全文

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

Apache Flink 1.14 新特性预览 - OSCHINA

Java 最长代码限制,新的代码生成器会对代码进行拆解,彻底解决代码超长的问题。 ■ 1.3 Flink Planner 新版本中,Blink Planner 将成为 Flink Planner 的唯一实现。 2. Python API 在之前的版本中,如果有先后执行的两个 UDF,它的执行过程如下图左方。在 JVM 上面有 Java 的 Operator,先把数据发给 Python 下面的 UDF 去执行,执行后又发回给 Java,然后传送给下游的 Operator,最后再进行一次 Python 的这种跨进程的传输去处理,会导致存在很多次冗余的数据传输。 在 1.14 版本中,改进如右图,可以把它们连接在一起,只需要一个来回的 Java 和 Python 进行数据通信,通过减少传输数据次数...阅读全文

博文 2021-09-05 07:26:58 中文开源技术交流社区

说透IO多路复用模型_京东云开发者的博客

epoll的interest list中,此操作通过附加EPOLL_CTL_DEL标记来实现;当有client的文件描述符有变更的时候,他会将events中的对应的文件描述符进行更新,此操作通过附加EPOLL_CTL_MOD来实现;当interest list中有client已经准备好了,可以进行IO操作的时候,他会将这些clients拿出来,然后放到一个新的ready list里面。 其简化工作机制如下: 说道epoll_wait函数,其作用就是扫描ready list,处理准备就绪的client IO,其返回结果即为准备好进行IO的client的个数。通过遍历这些准备好的client,就可以轻松进行IO处理了。 上面这三个函数是epoll操作的基本函数,但是,想要彻底理解epoll,则需要先...阅读全文

博文 2023-01-01 15:13:50 CSDN博客

谷歌公开了内部管理Infra层的两个工具的Paper

库?服务需要支持多大的流量? 这些都是很重要的问题,但服务是动态并且变化的:二进制版本不断更新,实例被添加和删除。架构也就需要随之演进:可能需要在某个特定的集群添加新的缓存,一些过时的日志等等。 在2014年,我们发现自己不能充分地适应服务的灵活性。对于绝大多数服务,我们使用人工编制的工作流来变更基础架构:推送x,然后y;手动执行不常见的变更。 但是团队通常需要管理数十个服务,每个服务都有很多job,数据库,配置以及自定义的管理流程。已有的解决方案因为如下两大原因无法扩展: 基础架构配置和API是异构的,并且很难连接在一起——比如,不同的服务使用不同的配置语言,抽象级别,存储和推送机制等等。因此,基础架构不一致,很难确定出通用的变更管理。生产变更管理的流程很脆弱,不理解变更之间的联系...阅读全文

博文 2023-01-08 11:23:20 CSDN博客