InfraPub 为您找到相关结果 151

Redis 6.0.0 GA已正式发布

辨率得到了改进,以使其永远不会比当前的“ HZ”值更糟,不管客户端连接的数量是多少。 6. RDB文件现在可以更快地加载。根据文件的实际组成(较大或较小的值),您可以期望获得20/30%的改进。现在,当有许多客户端连接时,INFO也更快,这是一个长期存在的问题,现在终于消失了。 7. 我们有一个新命令STRALGO,它实现了复杂的字符串算法。到目前为止,唯一实现的方法是LCS(最长的公共子序列),LCS是一种重要算法,用于比较冠状病毒的RNA(通常比较其他生物的DNA和RNA)。冠状病毒这件事太大,Redis内部需要保留一些痕迹。 原文 Redis 6.0.0 GA is out!...阅读全文

博文 2020-05-01 09:15:09 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

开源社区纠纷不断:20 年的 Debian 开发者被排挤出项目

之后,Javan Makhmali(Rails Committer 团队的成员)、Kasper Timm Hansen(Rails 核心团队开发者)以及 Andrew White 纷纷宣布离职。写在最后开源社区人才的流动本是正常,但非正常的成员离开,尤其是核心团队的集体离职势必不利于社区的正常、健康发展。也许在开源越来越重要的今天,比起开源技术,更需要大家关注的是开源社区的治理。链接:https://www.debian.org/index.zh-cn.html...阅读全文

C++ 夺冠!成为 TIOBE 2022 年度编程语言

应、Hao 123 等等。具体的计算方式详见:https://www.tiobe.com/tiobe-index/programming-languages-definition/。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。 这个排行榜可以用来考察你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。 详细榜单信息可 TIOBE 官网:https://www.tiobe.com/tiobe-index 《2022-2023 中国开发者大调查》重磅启动,欢迎扫描下方二维码,参与问卷调研,更有 iPad 等精美大礼等你拿!...阅读全文

博文 2023-01-10 06:42:12 CSDN博客

Prometheus 常用 PromQL 语句样例

, "-", "label1", "label2")提取标签的一部分并将其存储在新标签中: label_replace(my_metric, "dest-label", "$1", "source-label", "(.*):.*")关于 PromQL 更多的使用方法,可以 PromQL 官方文档: 基础:https://prometheus.io/docs/prometheus/latest/querying/basics/ 操作符:https://prometheus.io/docs/prometheus/latest/querying/operators/ 函数:https://prometheus.io/docs/prometheus/latest/querying/functions/ 示例:https...阅读全文

博文 2021-02-09 11:07:15 51CTO博客

开源简史基础:Linux基金会

用也可以由Linux基金会提供。 Linux基金会项目 以前被称为“合作项目”的Linux基金会项目是独立资助的项目,很多大名鼎鼎的项目都是Linux基金会的项目,比如为了促进容器化发展而创建的OCI(Open Container Initiative)和CNCF(Cloud Native Computing Foundation)等。全世界超过500家的公司以及数以千计的软件开发人员投入其中,这就是开源世界的力量,截止到2015年,Linux基金会项目的源码总行数为115,013,302行,项目估值高达50亿美元,而在2017年9月,这一估值上升至156亿美元。 当然除了这些,Linux基金会还可以进行培训以及认证等多种活动,从而更好地推进了Linux的开源事业的发展。 文章...阅读全文

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

年底,在 Android 开发领域,Kotlin 将超越 Java,成为开发 Android 应用的第一语言。” 不过,再看回在 KotlinConf 大会中官方已公布的关于 Kotlin 的发展成果和未来方向,Kotlin 的目标可能并不是撼动常青藤 Java 在 Android 开发领域中的地位,他们的征途或许是星辰大海。 :https://blog.jetbrains.com/kotlin/2017/11/kotlinconf-keynote-recap/...阅读全文

博文 2017-11-05 19:28:14 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

Debian 10 Buster 正式版即将发布

的包组成了该分发版的基石,main 是像石头一样稳定的。因此他们要确保那里没有主要的功能或者安全问题。他们同样给予了不同的优先级,例如 Essential、Required、Important、Standard、Optional 和 Extra,详细介绍可这里。 这是必要的,因为 Debian 在很多环境中被用作服务器,人们已经变得依赖 Debian。他们同样看重升级周期是否有破环,因此他们寻找人们来测试,来查看当升级的时候是否有破坏并通知 Debian 这样的问题。 Debian 10 Buster 的新内容 这里是即将到来的 Debian Buster 主要发布版的一些变化。 新的主题和壁纸 Buster 的 Debian 主题被称为 FuturePrototype 并且看起来如下图...阅读全文

博文 2019-04-29 11:04:15 debian.cn

谷歌开源了代码评审规范:好坏代码应这样来判断

识也是改善系统代码健康状态的重要部分。当然,如果评审者的评论仅仅只是教育性的,且对于标准要求不那么重要,那么还是要加上前缀「Nit:」的。 评审准则 技术事实和数据要优先于观点与个人风格。 在代码风格方面,谷歌的代码风格指南是最权威的资料。任何不在风格指南中的代码习惯,都属于个人风格,但我们应该保证基本的风格和谷歌风格指南是一致的。 软件设计方面几乎不会有纯粹的风格问题,或者纯粹个人的习惯问题。很多风格问题都基于一些基本准测,它们并不是简单地由个人观点决定的。此外,如果代码作者通过数据或基本工程原则证明了几种方法同样有效,那么评审者应该接受作者的风格。否则,偏好的选择还是取决于软件设计的标准原则。 如果没有其它适用规则,那么评审者可以要求作者的偏好与当前代码库保持一致,同时不对整体的代码...阅读全文

博文 2019-09-10 17:19:13 debian.cn

nsenter 及 Linux命名空间 简介

号PID以及需要进入的命名空间后,nsenter会帮我们找到对应的命名空间文件描述符/proc/PID/ns/FD,然后使用该命名空间运行新的程序。 文档 容器内抓包定位网络问题:https://tencentcloudcontainerteam.github.io/tke-handbook/skill/capture-packets-in-container.htmlman-page:nsenter:http://www.man7.org/linux/man-pages/man1/nsenter.1.html#top_of_pageman-page:clone:http://www.man7.org/linux/man-pages/man2/clone.2.htmlman...阅读全文

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

Terraform 学习总结 — Terraform 简介

Terraform Terraform 的安装非常简单,直接把官方提供的二进制可执行文件保存到本地就可以了。比如笔者习惯性的把它保存到 /usr/local/bin/ 目录下,当然这个目录会被添加到 PATH 环境变量中。完成后检查一下版本号: 通过 -h 选项我们可以看到 terraform 支持的所有命令: 在 Azure 上创建一个 Resource Group 要让 Terraform 访问 Azure 订阅中的资源,需要先创建 Azure service principal,Azure service principa 允许你的 Terraform 脚本在 Azure 订阅中配置资源。请这里创建 Azure service principal。 配置 Terraform 环境变量 若要配置...阅读全文

Kubernetes v1.21 新特性预览

驱动程序可以获取 Pod 的 service account token。GracefulNodeShutdown 进入 Beta,Kubelet 将会检测 Node 的状态并在 Node 关闭前终止其上运行的 Pod(使用前需要配置 ShutdownGracePeriod 和 ShutdownGracePeriodCriticalPods)。Network Policy 支持设置端口范围(port 和 endPort),大量端口时不再需要每个端口单独列出。资料[1]在 v1.21 正式弃用: https://github.com/kubernetes/kubernetes/pull/97171[2]Gatekeeper: https://github.com/open-policy...阅读全文

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

如何校验 Debian 软件包的 MD5

apache2-utils.md5sums apg.md5sums apparmor.md5sums app-install-data.md5sums app-install-data-partner.md5sums ... 记住:使用-g选项与--generate=missing一样,你可以试着为apache2软件包生成md5和,只要运行下面这个命令: $ sudo debsums --generate=missing apache2 由于我系统上的apache2软件包已经有md5和,它会显示下列输出,这与运行$ sudo debsums apache2的结果一样。 想了解更多有意思的选项和使用方面的信息,请参阅debsums手册页。 $ man debsums 在本文中,我们介绍了如何对照MD5...阅读全文

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

Kubernetes 1.9发布:Apps Workloads通用版本与生态系统扩展

期,并使得更多贡献者乐于投身其中并建立起更具活力的生态系统。 项目态势 CNCF方面已经建立起一个野心勃勃的项目,希望以可视化方式呈现Kubernetes项目中各项贡献的具体内容。K8s DevStats[10]则展示了各大型企业贡献者带来的成果。在本轮版本发布期间,开放问题的数量基本保持不变,但fork与项目各独立库数量则上涨了约20%。自上次发布以来,提交者数量略有上升,但整体来看基本保持稳定。Kubernetes目前拥有75000多条评论,仍然是GitHub上最受关注的项目之一。 原文这里。相关链接: https://kubernetes.io/docs/reference/workloads-18-19/ https://github.com/kubernetes...阅读全文

博文 2017-12-17 01:00:00 debian.cn

深入学习golang — channel

" }() go func() { time.Sleep(time.Second * 2) c2 <- "two" }() for i := 0; i < 2; i++ { select { case msg1 := <-c1: fmt.Println("received", msg1) case msg2 := <-c2: fmt.Println("received", msg2) } } 在C中,我们一般都会传一个超时时间给select函数,go语言中的select没有该参数,相当于超时时间为0。 主要 https://golang.org/doc/effective_go.html 作者:YY哥 出处:http://www.cnblogs.com/hustcat/ 本文版权归作者和博客园共有,欢...阅读全文

博文 2021-01-25 12:39:17 博客园

在树莓派上搭建 Raspbian 系统下的 Kubernetes 集群

"192.168.0.50 kmaster" | sudo tee -a /etc/hosts echo -e "192.168.0.51 knode1" | sudo tee -a /etc/hosts echo -e "192.168.0.52 knode2" | sudo tee -a /etc/hosts 部署主节点 在部署主节点前,我们默认你已经完成树莓派操作系统的安装,注意使用最新的 Raspbian,这个步骤可以网上的其他文章,这里不展开介绍。在主节点上,启动 SSH 服务,将主机名设置为 kmaster,并调整 IP 地址为 192.168.0.50。 通过 ssh 连接主节点,并安装 k3s: local$ ssh pi@kmaster kmaster$ curl -sfL https...阅读全文

博文 2020-04-12 16:30:23 debian.cn

新加坡华侨银行(OCBC) 零门槛开户 使用APP在家即可申请

状态。这一步遇到困难,可以这个 Youtube 视频。​6 APP读取的时候会跳出检测,这时候不要动,等待读取完毕。同样需要一些耐心,多试试,不难。​7 给身份证拍个照。点击【下一个】开始给身份证正面拍照。点击【下一个】开始人脸识别,这一步开始人脸验证。注意,不要裸露上身。​8 这些信息填完之后,点击【提供我的详细信息】,开始填写自身国家、职业、公司等详细信息。在这之前,首先是检查你之前填写的姓名和邮箱等信息。​9 选择工作类型,选择【受雇】或者【自雇】。填写税务信息。纳税人识别号为自己身份证号。​10 这里选择 【不,我未曾/没有担任重要的公职,也不是一名已/被委托担任公共职务的公共职者 的家庭成员或关系亲近的人】然后,勾选电子邮件和短信,☑️ 勾选 【本人确认懂英文,并同意以英文形式...阅读全文

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

否需要触发其他操作,例如记录命令(用来进行回滚或审计)。 在 kubectl 判断出要创建一个 Deployment 后,它将使用 DeploymentV1Beta1 生成器从我们提供的参数中生成一个运行时对象。 API 版本协商与 API 组 为了更容易地消除字段或者重新组织资源结构,Kubernetes 支持多个 API 版本,每个版本都在不同的 API 路径下,例如 /api/v1 或者 /apis/extensions/v1beta1。不同的 API 版本表明不同的稳定性和支持级别,更详细的描述可以 Kubernetes API 概述。 API 组旨在对类似资源进行分类,以便使得 Kubernetes API 更容易扩展。API 的组名在 REST 路径或者序列化对象的...阅读全文

博文 2022-04-18 16:18:04 CSDN

协议介绍之深入了解 gRPC

。发送请求的时候,只要指定 field 在静态 table 里面的索引,双方就知道要发送的 field 是什么了。 对于动态 table,初始化为空,如果两边交互之后,发现有新的 field,就添加到动态 table 上面,这样后面的请求就可以跟静态 table 一样,只需要带上相关的 index 就可以了。 同时,为了减少数据传输的大小,使用 Huffman 进行编码。这里就不再详细说明 HPACK 和 Huffman 如何编码了。 小结 上面只是大概列举了一些 HTTP/2 的特性,还有一些,譬如 push,以及不同的 frame 定义等都没有提及,大家感兴趣,可以自行 HTTP/2 RFC 文档。 Hello gRPC gRPC 是 Google 基于 HTTP/2 以及...阅读全文

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

Gitlab CI 配置文件 .gitlab

本文档是描述 .gitlab-ci.yml 详细用法的下半部分,上半部分的内容请这里。.gitlab-ci.yml 文件被用来管理项目的 runner 任务。如果想要快速的了解GitLab CI ,可查看快速引导。 该文件存放于项目仓库的根目录,它定义该项目如何构建。 阅读:Gitlab CI 配置文件 .gitlab-ci.yaml 详解(上) artifacts 注意: 非Windows平台从GitLab Runner v0.7.0中引入。 Windows平台从GitLab Runner V1.0.0中引入。 在GItLab 9.2之前,在artifacts之后存储缓存。 在GItLab 9.2之后,在artifacts之前存储缓存。 目前并不是所有的executors都支持...阅读全文

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

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

一 Kafka可视化管理工具kafka-manager 安装及基本使用可:https://www.cnblogs.com/dadonggg/p/8205302.html 二 线上环境规划 JVM参数设置 kafka是scala语言开发,运行在JVM上,需要对JVM参数合理设置,参看JVM调优专题 修改bin/kafka-start-server.sh中的jvm设置,假设机器是32G内存,可以如下设置: export KAFKA_HEAP_OPTS="-Xmx16G -Xms16G -Xmn10G -XX:MetaspaceSize=256M -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=16M" 这种大内存的情况一般...阅读全文

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

译:零信任对 Kubernetes 意味着什么

。2024财年;国防部创建了零信任架构;美国国家安全局发布了一份Kubernetes 强化指南,专门描述了 Kubernetes 中零信任安全的最佳实践。随着这种噪音,零信任无疑吸引了很多营销关注。但尽管有噪音,零信任不仅仅是一个空洞的术语——它代表了对未来安全的一些深刻和变革性的想法。那么具体来说,什么是零信任,为什么它突然变得如此重要?零信任对 Kubernetes 用户意味着什么?什么是零信任?正如所料,零信任从根本上讲是关于信任。它是解决安全核心问题之一的模型:是否允许 X 访问 Y?换句话说,我们是否相信 X 可以访问 Y?当然,零信任中的“零”有点夸张。要使软件正常工作,显然某些东西需要信任其他东西。因此,零信任并不是完全消除信任,而是将信任降低到最低限度(众所周知的最小特权原则)并...阅读全文

Redis 命令、特性介绍与性能调优

KEYS命令,严格禁止在生产环境中使用) Redis的数据结构和相关常用命令 本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令。本节只对Redis命令进行扼要的介绍,且只列出了较常用的命令。如果想要了解完整的Redis命令集,或了解某个命令的详细使用方法,请官方文档:https://redis.io/commands Key Redis采用Key-Value型的基本数据结构,任何二进制序列都可以作为Redis的Key使用(例如普通的字符串或一张JPEG图片) 关于Key的一些注意事项: 不要使用过长的Key。例如使用一个1024字节的key就不是一个好主意,不仅会消耗更多的内存,还会导致查找的效率降低 Key短到缺失了可读性也是不好的,例如”u1000flw”比起...阅读全文

博文 2018-10-27 10:37:55 debian.cn

Kubernetes 使用 PodPreset 注入信息到 Pods_哎_小羊的博客

,例如 Pod Yaml 容器挂载配置跟 PodPreset 容器挂载配置为同一路径时,会报错提示冲突。 最后要提一下注意的问题: 目前 PodPreset 的预设功能这块还在演进中,不过已经能大大简化了相关的管理工作,将这些公用配置从开发者手中分离出来,变成系统管理配置。PodPreset 是 Namespace 级别的对象,其作用范围只能是同一个命名空间下容器。目前为 v1alpha1 版本,还不成熟,例如当我们对已创建的 PodPreset 执行非常少量的修改时,重新 apply 或者 replace 时,服务端并没有更新过来(亲测会有问题,只能删除重建),大家可以自己尝试下。 资料 PodPreset DocEnable PodPreset...阅读全文

博文 2021-01-27 18:47:00 CSDN博客

aptitude 与 apt

,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。以下是作者总结的一些常用 aptitude 命令,仅供, aptitude update 更新可用的包列表aptitude upgrade 升级可用的包aptitude dist-upgrade 将系统升级到新的发行版aptitude install pkgname 安装包aptitude remove pkgname 删除包aptitude purge pkgname 删除包及其配置文件aptitude search string 搜索包aptitude show pkgname 显示包的详细信息aptitude clean 删除下载的包文件aptitude autoclean 仅删除过期的包...阅读全文

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

分布式任务调度平台 XXL

等; 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行; 30、跨平台:原生提供通用 HTTP 任务 Handler(Bean 任务,”HttpJobHandler”);业务方只需要提供 HTTP 链接即可,不限制语言、平台; 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文; 32、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub,进一步实现产品开箱即用; 链接: 中文文档 社区交流...阅读全文

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

树莓派 9 周年:你不知道的树莓派冷知识

双监视器输出 vs 单 HDMI 输出USB 2.0 升级为 USB 3.0 端口如果说 35 美元仍然贵了些,那么还有更便宜的树莓派型号。比如 Raspberry Pi Zero 仅售 5 美元,而 Raspberry Pi Pico 微控制器板仅售 4 美元。 9.每年都有一场“树莓派争霸赛”​▲ 用树莓派打造的智能车是的,你可以与其他的树莓派开发者同台竞技。“Pi Wars” 是一年一度的机器人竞赛,参赛者必须使用树莓派设备来制造机器人身上所有的装备。比赛内容包括各种挑战,例如导航障碍物路线,弹出气球和导航迷宫。比赛项目有人力遥控的机器人,也有全自动化的机器人挑战。今年的 Pi Wars 将于 2021 年 7 月举行。链接:https://www.tomshardware.com...阅读全文

博文 2021-03-11 17:03:55 diablo4

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

发语言。早在 2016 年,基础架构团队就已经开始基于 Golang 开发内部框架 Kite,并在 2019 年围绕性能和可扩展启动重构,使其能更好地满足业务发展和技术体系演进需求。 2020 年 10 月,Kitex 正式上线。虽然是一个全新的框架,但经过一年的线上应用,目前字节跳动内部已有超过 50% 的 Golang 微服务迁移到了 Kitex。 下面是 Kitex 的一些特性: 高性能:Kitex 默认集成自研网络库 Netpoll 作为网络传输模块,性能相较使用 go net 有显著优势;除了网络库带来的性能收益,Kitex 对 Thrift 编解码也做了优化,这在之前的性能优化实践文章中有介绍。关于性能数据,可 https://github.com/cloudwego...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区

Debian 10.8 发布:包括多项安全更新和错误修复

Debian 项目团队宣布其稳定发行版 Debian 10 (代号 "buster")的第八次更新。本次更新主要是对安全问题进行了修正,同时也对一些严重的问题进行了调整。安全公告已经单独发布,并在可用的地方进行了。 需要注意的是,这个点发行版(point release)并不构成 Debian 10 的新版本,只是更新了其中的一些软件包。没有必要扔掉旧的 "buster "介质。安装后,可以使用最新的Debian镜像将软件包升级到当前版本。 那些经常从 security.debian.org 安装更新的人不会需要更新很多软件包,大多数这样的更新都包含在点发布中。新的安装镜像很快就会在常规位置提供。 将现有的安装升级到这个版本可以通过将软件包管理系统指向Debian的许多HTTP镜像之一...阅读全文

博文 2021-02-07 10:57:22 joseph

SVN切换分支用法汇总

这些命令,来更好地管理自己的代码仓库。1. svn switchsvn switch URL [PATH] 该命令的作用是将工作副本切换到URL的版本。如果指定了PATH,则该命令会将PATH指定的目录切换到URL的版本。如果省略PATH,则该命令将当前工作目录切换到URL的版本。2. svn checkoutsvn checkout URL [PATH] 该命令的作用是将URL指定的版本库checkout到PATH指定的本地目录。如果省略PATH,则该命令会在当前目录下创建一个与URL同名的本地目录,并在其中checkout版本库。3. svn listsvn list URL 该命令的作用是查看URL指定的版本库中的文件和目录。4. svn movesvn move old_URL...阅读全文

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

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

的 size 做监控,有助于排查因探针导致的内存泄露问题,且它的增长率一旦达到我们设定的阈值便会告警,提早进行人工干预,执行相关预案,防止线上故障发生。 部分自监控面板 4.4.2 扩展链路透传协 引入RPC ID 为了更好地关联上下游应用,让每个流量都有“身份”,我们扩展了TextMapPropagator 接口,让每个流量在链路上都知道请求的来源,这对跨区域,环境调用排障场景起到关键性作用。 此外,对于跨端场景,我们了阿里鹰眼调用链RPCID模型,增加了RpcID字段,这个字段在每次发生跨端调用时末尾数值会自增,而对于下游应用,字段本身的层级自增: 该字段拥有以下作用: 支持提供精简化的调用链路视图,查询臃肿链路(如那些涉及缓存,DB调用大于 2000 Span的链路)时只提供...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

深入理解Golang之context

Server、Connection、Request,不仅将上游的信息共享给下游任务,同时实现了上游可发送取消信号取消所有下游任务,而下游任务自行取消不会影响上游任务。总结context主要用于父子任务之间的同步取消信号,本质上是一种协程调度的方式。另外在使用context时有两点值得注意:上游任务仅仅使用context通知下游任务不再需要,但不会直接干涉和中断下游任务的执行,由下游任务自行决定后续的处理操作,也就是说context的取消操作是无侵入的;context是线程安全的,因为context本身是不可变的(immutable),因此可以放心地在多个协程中传递使用。资料1、Package context2、Go Concurrency Patterns: Context3...阅读全文

博文 2021-01-27 09:05:27 知乎

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

去管资源问题。这需要我们去提供一个海量的集群去跑客户的应用,这就存在一个问题,多个客户的应用可能跑在一个节点上,考虑 Docker 本身的隔离问题,我们需要类似虚拟化容器的计算方式去做隔离,同时又希望拥有 Docker 本身轻量级快速启动的效率,现在看来,虚拟化容器是比较符合这个需求的。 尾声 通过和叶理灯的交谈,梳理了我对云计算、容器技术和 Serverless 等方面的一些认识,作为一个几年来亲自践行云计算发展,并有深入探讨和研究的专家,他的观点和认识或许值得从业云计算行业的技术人员。...阅读全文

博文 2019-06-14 08:28:49 debian.cn

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

?如果你是 Oracle JDK 8 的用户,原 License 尚可免费使用,但之后若希望得到持续安全更新则需要为此付费。如今,在 Oracle 主导下的 Java 大环境已经发生变化。作为最大的 Java 的用户之一,阿里巴巴几乎拥有世界最大规模的 Java 应用集群,肯定需要为此采取一些行动。 基于此,阿里巴巴决定开源 OpenJDK 长期支持版本 Alibaba Dragonwell,一是因为其自身拥有大量 Java 客户和业务需求,阿里巴巴希望他们可以继续免费享受到 JDK 的所有功能;二是考虑到不少开发者可能会做出新的选择,阿里巴巴决定开源该项目,为开发者提供一个新的。 在过去三个月时间内,阿里巴巴方面对该项目进行了持续维护和更新。据了解,本次 GA 版本的主要目的是让...阅读全文

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

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

Sandbox,忽视了Job的主容器已经成功结束的事实。 事实上,在前面syncPod函数中通过podCache计算API PodStatus Phase的过程中,kubelet已经知道该Pod处于Completed状态并存入apiPodStatus变量中作为参数传递给SyncPod函数。如下图所示。 Job已经进入Completed状态,此时不应该重建Sandbox容器。而SyncPod函数在判定Sandbox是否需要重建时, 并没有调用者syncPod传入的apiPodStatus参数,甚至这个参数是被忽视的。 第二个Sandbox容器的来源已经水落石出,解决办法也非常简单,即kubelet不为已经Completed的Pod创建Sandbox,具体代码如下所示。 重新编译kubelet并更新后...阅读全文

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 知乎

Docker 核心原理

对 Docker 的使用大部分都比较熟悉,但是说到 docker 的实现原理很多人还是一知半解。我把在团队内部做的一次 Docker 核心原理分享总结到文章里,以供。 Docker 的优势 Build once, Run anywhere 上面这句话很精辟的总结了 docker 的优点。我从下面几点具体描述 docker 带给开发者的能力 应用标准化 无论什么语言开发的应用,我们都能用 dockerfile 和构建脚本方便的进行应用构建打包,代码库 + 构建 + registry 统一了 CI/CD 流程,也提升了效率。 环境一致 由于应用和依赖全部构建成镜像,做到了一次构建多次交付,无论是开发,测试还是上线环境都是一致的。大大提高了开发效率 应用隔离 由于通过 docker 部署的应...阅读全文

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

Cortex: 高可用和水平扩展Prometheus监控系统

/ helm delete --purge cassie helm delete --purge prom-one helm delete --purge grafana 结论Cortex是一个强大的工具,可无缝地运行多个Prometheus服务器,同时简化了用户的操作和使用。虽然Thanos确实提供了非常相似的功能,但它们的实现方式却大不相同。通过尝试实现的用例将推动选择Cortex与Thanos。但是,Cortex确实使运行高度可扩展且具有弹性的基于Prometheus的监视系统变得容易。翻译: 云原生生态圈 · Marionxue作者: By Shaunak Deshmukh原文: https://www.infracloud.io/blogs/cortex-prometheus-ha/资料...阅读全文

博文 2021-10-09 17:00:22 知乎

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

,并且 toHexString()操作也进行了优化。重新使用 async-profiler 查看一下最新的火焰图信息。 之前的 toHexString() 耗时已经几乎看不到了,但是感觉日志append 的操作横轴还是略长,于是将日志输出关闭来看看极限处理速度。 将日志级别调整为 warn,并启动程序,观测到处理速度已经能够达到 18万/s了,这相当于 toHexString()优化前的快3倍了。 此时决定再将日志append 模式改为异步模式,然后启动程序,观察,处理速率也能够达到 18万/s。 十、链接 火焰图的介绍论文 火焰图官方主页 火焰图生成工具 https://www.ruanyifeng.com/blog/2017/09/flame-graph.html https...阅读全文

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

journalctl 清理journal日志 - 九重霄

--vacuum-time=2d journalctl --vacuum-size=500M 如果要手工删除日志文件,则在删除前需要先轮转一次journal日志 systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service 要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf SystemMaxUse=16M ForwardToSyslog=no 然后重启 systemctl restart systemd-journald.service 检查journal是否运行正常以及日志文件是否完整无损坏 journalctl --verifyjournal配置 [Journal...阅读全文

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

细数k8s支持的4种类型的container - 侃豺小哥

截止目前k8s1.18,k8s已经支持标准容器,sidecar容器,init 容器,ephemeral 容器 4种类型的containers。本文我们详细介绍一下这4种容器的特性已经使用场景。 Ephemeral 容器 临时容器与其他容器的不同之处在于,它们缺少对资源或执行的保证,并且永远不会自动重启,因此不适用于构建应用程序。临时容器使用与常规容器相同的 ContainerSpec 段进行描述,但许多字段是不相容且不允许的。 临时容器没有端口配置,因此像 ports,livenessProbe,readinessProbe 这样的字段是不允许的。 Pod 资源分配是不可变的,因此 resources 配置是不允许的。 有关允许字段的完整列表,请参见临时容器文档。 临时容器是使用...阅读全文

博文 2021-08-20 11:45:32 博客园

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

Kubernetes对象的关系。 豆荚在Kubernetes中无处不在,因此了解它们将有助于您的工作。部署概述 - 提供部署概述 。 了解部署控制器如何工作非常有用,因为它们在无状态应用程序中经常用于扩展和不健康应用程序的自动修复。服务概述 - 涵盖服务,Kubernetes集群中另一个常用对象。 了解服务类型及其选项对于运行无状态和有状态应用程序至关重要。 您可以研究的其他重要概念是Volumes , Ingresses和Secrets ,所有这些在部署生产应用程序时都会派上用场。 Kubernetes提供了许多功能和特性。 Kubernetes官方文档是了解概念,查找特定于任务的指南以及查找各种对象的API的最佳位置。...阅读全文

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

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

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

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

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

有问题,欢迎指正。理解virt res shr之间的关系: https://www.orchome.com/298服务器体系(SMP, NUMA, MPP)与共享存储器架构(UMA和NUMA): https://cloud.tencent.com/developer/article/1372348SWAP的罪与罚: https://blog.huoding.com/2012/11/08/198go调度器: https://draveness.me/golang/docs/part3-runtime/ch06-concurrency/golang-goroutine/NUMA-aware scheduler for Go: https://docs.google.com/document...阅读全文

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

CCPA vs. GDPR:欧美这两部个人数据保护法有什么差异?

去解释和适用,与GDPR作为统一立法的作用和地位相区分。 资料及补充说明: [1].关于“间接地识别到个人”的判定:欧盟法院Case 582/14 – Patrick Breyer v Germany,19 October 2016; [2]. 《一般数据保护条例评述及实务指引》,京东法律研究院著,法律出版社,2018年5月第1版; [3]. Opinion 4/2007 on the concept of personal data, Adopted on 20th June, Article 29 Data Protection Working Party; [4].《国内外看CCPA与GDPR的对比》,360法律研究院,http...阅读全文

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

点:系统架构感知:系统架构图是程序员了解一个新系统的重要,当拿到一个系统,起码需要知晓流量入口在哪里,有哪些核心模块,依赖了哪些内部外部组件等。在异常定位过程中,有一张全局架构的图对异常定位进程有非常大推动作用。依赖分析:有一些问题是出现在下游依赖,如果这个依赖不是自己团队维护就会比较麻烦,当自己系统和下游系统没有足够的可观测性的时候就更麻烦了,这种情况下就很难跟依赖的维护者讲清楚问题。在我们的拓扑中,通过将黄金指标的上下游用调用关系连起来,形成了一张调用图。边作为依赖的可视化,能查看对应调用的黄金信号。有了黄金信号就能快速地分析下游依赖是否存在问题。​分布式 Tracing 助力根因定位协议 Trace 同样是无入侵、语言无关的。如果请求内容中存在分布式链路 TraceID,能自动识别...阅读全文

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

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

”段用于定义一系列监听的套接字,这些套接字可接受客户端请求并与之建立连接。 “backend”段用于定义一系列“后端”服务器,代理将会将对应客户端的请求转发至这些服务器。 “listen”段通过关联“frontend”和“backend”定义了一个完整的代理,通常只对TCP流量有用。 所有代理的名称只能使用大写字母、小写字母、数字、-(中线)、_(下划线)、.(点号)和:(冒号)。此外,ACL名称会区分字母大小写。 三、配置文件中的关键字 3.1 balance balance url_param [check_post []] 定义负载均衡算法,可用于“defaults”、“listen”和“backend”。用于在负载均衡场景中挑选一个server,其仅应用于持久信息不可用的条件下或需...阅读全文

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