InfraPub 为您找到相关结果 259

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

为 33。SRV的记录格式为: _Service._Proto.Name TTL Class SRV Priority Weight Port Target Service: 服务名称,前缀“_”是为防止与DNS Label(普通域名)冲突。 Proto: 服务使用的通信协议,_TCP、_UDP、其它标准协议或者自定义的协议。 Name: 提供服务的域名。 TTL: 缓存有效时间。 CLASS: 类别 Priority: 该记录的优先级,数值越小表示优先级越高,范围0-65535。 Weight: 该记录的权重,数值越高权重越高,范围0-65535。 Port: 服务端口号,0-65535。 Target: host 地址。 客户端查询到多条记录的时候,使用优先级最高的记录。对相同优先...阅读全文

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

Oracle Linux 8.0 发布

于 RPM 的 Linux 发行版上安装、更新和删除软件包。引入 Cockpit 服务器远程管理器,这是一个简单、轻量级但功能强大的交互式 GNU/Linux 服务器远程管理器,可通过 Web 浏览器提供实时 Linux 会话。 内核 modinfo 命令已更新,可识别和显示使用 CMS 和 PKCS#7 格式签名的模块签名信息。一组内核模块移动到 kernel-modules-extra 包中,这意味着默认情况下这些模块都不安装,非 root 用户也无法加载这些组件,因为默认情况下它们也被列入黑名单。内存总线限制已扩展到 128 PiB 的虚拟地址空间和 4 PB 的物理内存容量。Linux 内核中的 I/O 内存管理单元(IOMMU)也会更新以启用 5 级分页表。kdump 特性可以...阅读全文

博文 2019-07-20 22:39:32 debian.cn

Golang 之禅: 如何写优质代码

在本月初的 GopherCon 上,知名 Go 语言贡献者与布道师 Dave Cheney 发表了名为《The Zen of Go》的演讲,之后他整理了演讲内容在博客中分享,由于内容过长,他又写了一个简洁版本: 完整版:https://dave.cheney.net/2020/02/23/the-zen-of-go简洁版:https://the-zen-of-go.netlify.com 这里简单翻译一下简洁版本的内容:编写简单、可读、可维护的 Go 的十个工程要点。 每个包实现单一目标 设计良好的 Go 软件包提供一个单一的思路,以及一系列相关的行为。一个好的 Go 软件包首先需要选择一个好名字,使用电梯法则(30 秒内向客户讲清楚一个方案),仅用一个词来思考你的软件包要提供什么功能...阅读全文

博文 2020-02-25 20:48:33 debian.cn

Linux 5.11窗口合并期今天结束 引入大量新特性

持,图形驱动中的异步翻页,用于缓解射频干扰的新 "RFIM "驱动,围绕Rocket Lake和Alder Lake的新设备ID,WiFi驱动内的WiFi 6GHz频段支持,以及其他工作。 在 AMD 方面,主要围绕着改进电源管理和传感器处理,CPU 帧率频率不变性支持(虽然与 Schedutil 在一些系统上处于糟糕的状态),AMD 传感器融合枢纽驱动程序终于被合并,以支持Ryzen笔记本电脑上的传感器功能,以及其他各种改进。 Linux 5.11 还为不知名的设备提供了新的硬件支持,从失败的 OUYA 游戏机到 Guitar Hero Live PS3 / Wii U 扩展坞。 改进内容如下: 处理器: - 经历了 40 多轮的审查之后终于整合了 Intel SGX enclaves...阅读全文

博文 2020-12-28 10:14:35 debian.cn

Raspbian 国内软件源列表

/apt/sources.list 2、删除原文件所有内容,buster 系统用以下内容取代: deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib 注:网址末尾的raspbian重复两次是必须的。因为Raspbian的仓库中除了APT软件源还包含其他。APT软件源不在仓库的根目录,而在raspbian/子目录下。 stretch 系统用以下内容取代: deb http...阅读全文

系统解析JDK源码,领略大牛设计思想,JAVA面试必备

境 首先,我们需要安装Node.js和Vue CLI,并创建一个Vue3项目。然后,我们需要安装Element Plus、Axios和ECharts等依赖库。 2. 设计页面 在设计页面时,我们需要遵循一些基本原则,包括界面简洁明了、布局合理、交互友好等。我们可以使用Element Plus提供的UI组件来构建页面,以及使用ECharts展示数据统计报表。 3. 实现功能 在实现功能时,我们需要编写Vue组件,并调用Axios发送HTTP请求。同时,我们需要使用Vue Router进行路由管理,并使用Vuex进行状态管理。 4. 测试和优化 在完成开发之后,我们需要对应用程序进行测试,确保所有功能都能正常工作。如果有问题或性能瓶颈,我们需要对进行优化。 总结 通过这个示例,我们学习了如何...阅读全文

博文 2023-05-27 12:50:27 bianchengyuan123

Debian 上安装搭建 Shadowsocks 服务

-recommends build-essential autoconf libtool libssl-dev gawk debhelper pkg-config asciidoc xmlto apg 然后需要从 github 上把源 git 下来 $ git clone https://github.com/shadowsocks/shadowsocks-libev.git 然后进入 shadowsocks-libev 目录下进行编译 $ cd shadowsocks-libev $ dpkg-buildpackage -b -us -uc -i $ cd .. $ dpkg -i shadowsocks-libev*.deb 编译是通过生成 deb 包然后进行安装,其实也可以通过 make 的方式来进行...阅读全文

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

提问的智慧(精简版)

话题,你应当避免在聊天里刷屏。为了展示足够多的日志信息,让大家能了解你的问题,同时避免刷屏,请使用 Pastebin 来展示你的日志//操作过程。一些可选用的 Pastebinhttps://pastebin.mozilla.org - Everyone who get the pastebin link can delete the snippet. Can be saved for 21 days(max).https://snippet.host - Minimal text and code snippet hosting.https://ix.io - Command line pastebin....阅读全文

博文 2023-10-07 15:02:42 infras

Linux Kernel 5.0将于2018年夏季发布

Linus Torvalds揭示了为什么在2018年夏天将会有一个Linux Kernel 5的理由。他还讨论了对新的Linux Kernel维护者的需求。 在最近结束的布拉格开源峰会上,Linux创始人Linus Torvalds与VMware副总裁进行了座谈,并讨论了Linux内核的相关问题。 Linux内核需要新的维护者 Linux内核已经有26岁,内核维护者比26岁还要老。这就产生了一个问题,因为虽然内核开发有很多年轻的贡献者,但是内核维护者(负责审核向内核提交的人)是40多岁的人, 甚至50多岁了。部分问题是维护内核的复杂性。 但是Torvalds认为,内核维护者的主要原因是“老”,因为他们需要从疯狂的邮件流入中了解补丁。这需要良好的经验。 第二个原因是内核维护者应该足够长的...阅读全文

博文 2017-12-11 22:27:31 debian.cn

谷歌如何为数十万台设备更新内部 Linux 发行版 - OSCHINA

并到所使用的 LTS 版本。 因此谷歌转向了滚动更新发行版,不过它没有选择知名的滚动更新发行版 Arch Linux,而是基于 Debian 测试分支构建了 gLinux Rodete (Rolling Debian Testing)。 选择 Debian 是因为它有着庞大的社区和软件库,还可以使用 Debian 格式的现有内部软件包和工具。而且 Ubuntu 也是基于 Debian,迁移过去更容易顺畅。 Debian 稳定分支也是差不多两年发布一次大更新,但其测试分支是滚动更新的。滚动更新意味着需要尽可能防止新版本对现有工作流程造成破坏,为了管理从源构建所有上游软件包的所有这些复杂任务,谷歌构建了一个名为 Sieve 的工作流系统。通过运行一个虚拟化测试套件,确保核心组件和开发者工作流...阅读全文

博文 2022-07-31 19:13:41 中文开源技术交流社区

OpenSSL 3.0 正式发布,更改许可协议并弃用所有低级别 API

级别的 API。在 OpenSSL 3.0 中,这一点变得更加明确。所有这些低级别的 API 都已经被废弃了。你仍然可以在你的应用程序中使用它们,但你可能会在编译过程中开始看到弃用警告。废弃的 API 可能会从未来的 OpenSSL 版本中删除,所以强烈建议开发者更新你的,以使用高级 API 来代替。版本管理OpenSSL 的版本管理已经随着 OpenSSL 3.0 的发布而改变,新的版本管理采用下方这样的格式:MAJOR.MINOR.PATCH(主版本.次版本.补丁)对于 OpenSSL 1.1.1 及以下版本,不同的补丁级别是由版本号后面的字母表示的,这一方法将不再使用,而是用版本号中的最后一个数字来表示补丁级别。第二个数字(MINOR)的变化表明可能已经添加了新的功能,但与相同...阅读全文

OpenAI掌门人Sam Altman:AI的下一个发展阶段_OneFlow

:现在科学界对AI的应用分为两种。一种是将AI工具直接用于科学目的,如AlphaFold(用于蛋白质结构预测),它们可以创造巨大价值,相信未来会出现无数这样的工具。 另一种是将AI工具用于提升科研工作效率,如帮科学家和工程师找到新研究方向、写等。Copilot编程工具就是一个例子。但AI工具的能力远不止于此。上述两种AI应用将会大大推动科技前进。 此外,目前科学界也在探索对AI的第三种应用方式——让AI成为可以“自我改进”的科学家。这件事情既有好处也有风险。 好的一面是,可以利用AI将人类的工作内容自动化,教会AI做任何人类可以做的事情:探索新科学、提出理论解释、验证、思考等,或许还可借此解决困扰人类已久的“AI对齐问题(Alignment Problem)”(即如何让AI系统的目标符合人...阅读全文

博文 2023-02-04 15:55:11 CSDN博客

分布式任务调度平台 XXL

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源并接入多家公司线上产品线,开箱即用。 v2.0.0 Release Notes 1、调度中心迁移到 springboot ; 2、底层通讯组件迁移至 xxl-rpc ; 3、容器化:提供官方 docker 镜像,并实时更新推送 dockerhub(docker pull xuxueli/xxl-job-admin),进一步实现产品开箱即用; 4、新增无框架执行器 Sample 示例项目 “xxl-job-executor-sample-frameless”。不依赖第三方框架,只需 main 方法即可启动运行执行器; 5、命令行任务:原生提供通用命令行任务 Handler(Bean...阅读全文

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

Go 语言的大版本更新:Go 2.0 安排上了

提案包括更好的错误处理和泛型,而它们的草案已在今年的 GopherCon 大会上发布,等待更多的探索发展。至于剩余的提案,官方提到,他们不希望过度影响数百万 Go 开发者以及现在的 Go ,更不想冒着分裂生态系统的风险去改版 Go 2,因此 Go 2 无法做出太多变更,每一个变更都需要仔细选择。为此,这些提案都将使用新的提案评估流程来决定去留与发展。 提案评估流程 提案评估流程旨在收集对少数选定提案的反馈意见,以作出最终决定。这个过程或多或少会与发布周期并行进行,包括以下步骤: 提案选择:Go 开发团队选择少量看起来值得考虑接受的 Go 2 提案,但尚未做出最终决定。 提案反馈:Go 开发团队将发布一份列出所选提案的公告,公告会向社区解释提案的初衷并收集反馈意见。在这个步骤中,社区可提出...阅读全文

Golang Context 探究

在用 Golang 开发过程中,我们一定能在里很多函数或方法都会传递 context, 也会经常遇到这样的报错 context deadline exceeded。你有想过或去探究过 context 到底是什么吗,为什么会遇到上述的报错。在这里我们就分析一下 context 是什么及用途。 首选 Golang 中的 context 值得是 context.Context 接口,Golang 在 1.7 版本中引入标准库的接口。context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、截止时间、key-value 等。 Context 定义 Context 接口定义如下 1 2 3 4 5 6 7 8 9 10 type Context interface...阅读全文

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

JDK 11 版本时间表公布

) java.transaction(JTA) java.se.ee(上述六个模块的聚合模块) jdk.xml.ws(JAX-WS 工具) jdk.xml.bind(JAXB 工具) 移除这些模块的风险已在 JEP 320 中得到确认和记录,特别是对于 Java EE 模块: 如果应用程序依赖 JDK 中 Java EE API 和相关工具的支持,那么它们将无法通过编译或运行。这些应用程序在从 JDK 6、7 或 8 迁移到 JDK 9 或更高版本时将遇到二进制和源不兼容问题。 移除 Java EE 模块的另一个风险是,如果已使用–add-modules java.se.ee、add-modules java.xml.bind 等命令行标志,那么已经从 JDK 6、7 或 8 迁移到 JDK 9 的应用程序将无法启动...阅读全文

博文 2018-04-27 08:33:08 debian.cn

Dubbo 2.7.0发布 分布式RPC服务框架

2.7 版本与低版本互操作性的问题上,我们增加了一些兼容性,典型如服务治理规则、Package 重命名、注册 URL 简化等。 Package 重命名 com.alibaba.dubbo -> org.apache.dubbo 注册 URL 简化服务治理规则配置 更新说明出处 下载地址: Source code(zip)Source code(tar.gz) 新增功能 Bug修复及优化 升级与兼容性 目录...阅读全文

博文 2019-01-18 09:43:16 debian.cn

AD:为什么说 CoinEx 是一家很有潜力的数字货币交易所?

** 90后创业者杨海坡创建微比特集团,打造CoinEx ** 微比特集团创始人杨海坡是一位90后创业者。2016年3月,杨海坡投入比特币矿池的开发,一人独立完成了 ViaBTC (Viabtc Technology Limited) 矿池全部,并在 两个月后成功上线,这个矿池是全球第一家挖出 BCH 区块的矿池。当前,ViaBTC 不仅是全球第一大 BCH 矿池,也是全球前五大的比特币矿池。 很快杨海坡发现,交易所也是为行业提供资产发行和价值发现的重要角色,是加密行业的核心,于是他决定加入到数字货币交易所的竞争中。 2017年12月,杨海坡成立了 [CoinEx](http://cet.im)。[CoinEx](http://cet.im) 成立不久就以势不可挡之力迅猛发展,2018...阅读全文

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

OpenXuantie 的多操作系统(AliOS、FreeRTOS、RT-Thread、Linux、Android 等)的... 28 10 阿里发布自研 CPU 芯片倚天 710 10 月19 日,2021 云栖大会现场,阿里巴巴旗下半导体公司平头哥发布自研云芯片倚天 710。该芯片是业界性能最强的 ARM 服务器芯片,性能超过业界标杆 20%,能效比提升 50% 以上。倚天 710 是阿里云推进「一云多芯」策略的重要一步,也是阿里第一颗为云而生的 CPU 芯片,将在阿里云数据中心部署应用。 和 2019 年发布的 AI... 31 5 GitLab 正式在纳斯达克上市,市值接近 150 亿美元 GitLab 周四正式在在纳斯达克上市,股票为 "GTLB"。据了解,GitLab 周三晚些时候将其 IPO...阅读全文

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

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

表示: 每个开发者都将能够从开源提供的集体创新中获取工具和,以构建现代数据驱动的应用程序,提供差异化的、有吸引力的体验,从而推动收入增长。这将通过创造一种 innersource 文化(将开源文化和工具带入企业)来实现,以加快开发速度、减少项目积压、创造更多乌托邦式的开发者环境。无服务器数据库技术与现代 API 和流媒体技术相结合,将等于一个开放的堆栈,在实现这一目标方面发挥巨大作用,因为它们将减轻基础设施团队的负担(例如管理多个数据中心实例、多云供应商和多个流媒体项目)。 Sumo Logic 的 Reno 还指出,作为这个过程的一部分,开发者需要围绕使用数据本身获得更多的帮助。他以可观察性的 OpenTelemetry 项目进行举例,说明开发者希望从他们所拥有的数据中获得更多的东西...阅读全文

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

六大算法之三:动态规划【转载】

详细徐叙述 2、设置数组边界值,一维数组就是设置第一个数字,二维数组就是设置第一行跟第一列的值,特别的滚动一维数组是要设置整个数组的值,然后根据后面不同的数据加进来变幻成不同的值。 3、找出状态转换方程,也就是说找到每个状态跟他上一个状态的关系,根据状态转化方程写出。 4、返回需要的值,一般是数组的最后一个或者二维数组的最右下角。 基本框架: for(j=1; j<=m; j=j+1) // 第一个阶段 xn[j] = 初始值; for(i=n-1; i>=1; i=i-1)// 其他n-1个阶段 for(j=1; j>=f(i); j=j+1)//f(i)与i有关的表达式 xi[j]=j=max(或min){g(xi-[j1:j2]), ......, g(xi-1[jk:jk+1...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

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

Kubernetes库的前提下开发自己的解决方案。 由于1.9版本中提供的功能尚处于alpha测试阶段,因此用户必须额外加以启用,且我们不建议您将其应用于实际生产。但该版本的出现,意味着Kubernetes存储生态系统正朝着更加可扩展且基于标准的方向迈进。 其它功能 定制化资源定义(简称CRD)验证版目前已经开始beta测试,其默认启用,可帮助CRD作者们针对无效对象得出清晰且即时的反馈。 SIG Node硬件加速器目前进入alpha测试阶段,可利用GPU资源实现机器学习以及其它高性能工作负载。 CoreDNS alpha版本允许用户利用标准工具安装CoreDNS。 IPVS mode for kube-proxy进入beta版本,可为大型集群提供更出色的可扩展性与性能表现。 社区中的每个特别兴趣小组(简...阅读全文

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

Debian 10 Buster 正式版即将发布

A64 Teres-1 与 Rapberry Pi 1、Zero 和 Pi 3。对于 RISC-V 系统同样支持开箱即用。 Python 2 到 3 的迭代 在 2020 年 1 月 1 日,Python 2 将被 python.org 废弃。在 Debian 将所有的软件包从 Python 2.7 移到 Python 3 以后,Python 2.7 将从软件仓库中移除。这可能发生在 Buster 发布版或者将来的某个发布版。因此 Python 开发者被鼓励移植他们的库来兼容 Python 3。在 Debian Buster 的当前版本中,它同时支持 python 2 和 python 3。 Mailman 3 在 Debian 中终于可以使用 Mailman3 了。同时 Mailman 已...阅读全文

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

Apollo 分布式配置中心详解

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

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

nsenter 及 Linux命名空间 简介

, argv[1]); setns clone用于创建新的命令空间,而setns则用来让当前线程(单线程即进程)加入一个命名空间。语法: #define _GNU_SOURCE /* See feature_test_macros(7) */ #include int setns(int fd, int nstype); fd参数是一个指向一个命名空间的文件描述符,位于/proc/PID/ns/目录。nstype指定了允许进入的命名空间,一般可设置为0,表示允许进入所有命名空间。 因此,往往该函数的用法为: 调用setns函数:指定该线程的命名空间。调用execvp函数:执行指定路径的程序,创建子进程并替换父进程。 这样,就可以指定命名空间运行新的程序了。示例: #define...阅读全文

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

Kubernetes v1.21 新特性预览

Kubernetes v1.21 下个月就要发布了(v1.21.0 将于 4 月 8 日发布),本文梳理该版本带来的新特性,以便你为下个月的升级做好准备。PodSecurityPolicy 弃用PodSecurityPolicy(PSP)是 Kubernetes 1.8 开始就支持的 Beta 特性,大量应用于容器的安全策略控制。但由于其 API 不够灵活、认证模型不够完善且配置更新繁琐等缺陷,PodSecurityPolicy 将在 v1.21 正式弃用[1],并将在 v1.25 中从库中删除。已经使用 PodSecurityPolicy 的用户建议迁移到 Gatekeeper[2]。不可变 ConfigMap/Secret 进入稳定版当集群包含大量 ConfigMap 和...阅读全文

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

CentOS停止维护后,我们应该用什么操作系统?

有很多理由可以选择 Debian 作为您的操作系统——作为用户、作为开发者,甚至是在企业环境中。大多数用户称赞它的稳定性,以及软件包和发行版的平滑的升级过程。Debian 也被软件和硬件开发人员广泛使用,因为它能运行在众多架构和设备上,提供了一个公开的缺陷跟踪系统,以及面向开发人员的其他工具。如果您在专业环境中使用 Debian,您还可以享受到诸如 LTS 版本和云映像带来的额外好处。对我而言,使用 Debian 的原因是它完美的易用性和稳定性。这些年来,我使用了各种不同的发行版,但是 Debian 是唯一一个能够完美使用的发行版。NorhamsFinest 在 Reddit 上写道面向用户的 DebianDebian 是自由软件。Debian 是由自由和开放源的软件组成的,并将始终保...阅读全文

欧洲核子研究组织(CERN)是如何使用 Linux 和开源的 - 云+社区

和围绕着它的级联结构。”Bell 说,“全世界约有 12 个大型一级数据中心,然后是 150 所小型大学和实验室。他们从大型强子对撞机的数据中收集样本,以帮助物理学家理解和分析数据。”这种结构意味着 CERN 正在进行国际合作,数百个国家正致力于分析这些数据。归结为一个基本原则,即开源不仅仅是共享,还包括人们之间的协作、知识共享,以实现个人、组织或公司无法单独实现的目标。这就是开源世界的希格斯玻色子。...阅读全文

博文 2021-11-29 13:20:55 腾讯云

Debian 11 "bullseye" 发布,带来内核 exFAT 支持

、 OpenSSH 和 Mutt 的部分语言的手册页,例如法语、西班牙语和马其顿语,得到了明显改进。欲获得此项改进,请安装 manpages-*xx*(其中 xx 是您所需的自然语言的)。在 bullseye 的生命周期中,进一步的翻译改进将会通过 backports 仓库提供。更多详情可查看:https://www.debian.org/News/2021/20210814 图像 小部件...阅读全文

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

。而且,它在 BSON 中是“deprecated”,会转换成$null,这并不是一个总令人满意的解决方案。 在 MongoDB 中,要避免使用“undefined”。 使用$limit() 而未用$sort() 通常,当你在 MongoDB 中开发时,仅仅查看查询或聚合返回的结果的样例会很有用。 $limit() 就是为了满足这个要求,但是,它永远不应该出现在最终版本的中,除非你首先使用了$sort。这是因为,不这样的话,你就无法保证结果的顺序,你就无法可靠地“按页浏览”数据。为了确保可靠性,查询或聚合必须是“确定的”,就是说,它们每次执行都会给出相同的结果。包含$limit 而不包含$sort 的不是确定的,后续会导致难以跟踪的 Bug。 小结 对于 MongoDB,让你最终感到失...阅读全文

分布式运行时 Dapr 知多少

微服务。 以上是Dapr官方GitHub仓库上对Dapr的简介。文字虽短,口气却很大,因为其除了涵盖了当前所有的技术热点:分布式、云、微服务,还自我标榜为:分布式应用运行时。分布式应用我们或多或少有些了解,运行时也听到不少,比如常见的语言运行时:Java 运行时,.NET 运行时,Go 运行时等等,那运行时又是什么东西?简要来说:运行时是程序运行依赖的执行环境。以.NET 程序运行时CLR为例,它为.NET应用程序提供了一个托管的执行环境负责应用程序在整个执行期间的内存管理、线程管理、安全管理、远程管理、即使编译等。 那分布式应用运行时,就是提供分布式应用运行所依赖的的执行环境。那运行分布式应用需要哪些环境依赖呢?回答这个问题,我们要先思考开发分布式应用的挑战是什么?明确了挑战,那就找到...阅读全文

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

Querier–查询器处理PromQL的求值。如果是最近的数据,则从大块存储和或内部获取样本其他组件:Ruler–处理alertmanager产生的警报Alertmanager –评估警报规则ConfigsAPI –在Postgres中存储Ruler和Alertmanager的配置Table Manager–负责在选定的块chunk/索引index存储后端中创建表Consul –存储分发服务器distributor生成的一致的哈希环(hash ring)。分发服务器在发送指标时使用散列值来选择ingester。与其他选项的异同ThanosThanos和Cortex具有非常相似的目标:聚合指标,将其存储在块存储中,并为所有度量使用一块single pane。因此,两个项目重用大量Prometheus也...阅读全文

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

一位五年工作经验架构师的感悟

多,有 100 多个系统,很多业务概念。 老大说:不要好高骛远,我建议你结合当前的工作,一步步学习,以点带面。 刚进公司的时候,我不是很有自信,因为知道自己技术可能比很多大牛差距很大。同时,自己也是一个不太会表达的人(原来的老大也说过,我的软能力不行),整体上在初期感觉相对较闷。 日常工作就会把自己占得很满,怎么去学习?我的技术不行,就想去学,框架,支付宝的全部是开源的,所以我可以很简单通过 eclipse 直接查看框架的源码,渐渐的,比很多人都了解框架,了解技术。我还会去狂公司的论坛,公司的 doc,这上面有框架设计相关的内容。所以,很多时候机会是很多的,关键是你想不想去去。 所以,不要好高骛远,脚踏实地,时刻保持饥饿感,积少成多。 开放心态,视野决定格局 12 年妻子怀孕,于是转...阅读全文

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

HTTP状态码详解

HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。所有状态码的第一个数字代表了响应的五种状态之一。 各状态码具体含义 1xx 消息 这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。 100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送...阅读全文

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

开源社区的运作模式:Debian Vs. Ubuntu

(DD)和Debian维护人员(DM)。《Debian宪章》中定义了Debian开发者的权利,而Debian维护人员则是在2007年的总决议中才做的定义。DM一职被整合到Debian官方的进程十分缓慢,而现在,自愿者在申请成为DD之前最好是先申请成为DM。 DD的主要职能是提交以及进行自己负责的包的维护。他们具有进入Debian服务器的权限,并可以参与社区投票(比如一年一次的选举)。 DM是一个没有多少权限的角色,他们只能为那些在Maintainer或Uploaders字段里包含他们的名字、并已经被DD指定了DM-Upload-Allowed: yes标记(意思为允许DM上传)的包执行上传的工作,除此之外他们没有别的权利,而他们访问Debian资源的权限也十分有限。 除了这两个官方角色外,还...阅读全文

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

Docker 17.06 社区版发布

今天我们发布了Docker CE 17.06,它包含了诸多新特性、优化和bug修复。我们在四月份的DockeCon上公布了Moby项目,Docker CE 17.06是第一个完全构建在它基础上的Docker版本。变更日志中能看到完整的更新列表,我们来看看它的一些新特性。 我们也为这篇文章制作了一个视频版本。 多阶段构建 17.06 CE最大的特性是它的多阶段构建(multi-stage builds),它最初在四月的DockerCon被公布,现在已经达到了稳定版本。多阶段构建能从一个Dockerfile中构建出更加简洁、体积更小的Docker镜像。 多阶段构建通过构建过渡镜像并产生输出。这样就能在一个过渡镜像中编译,在最终的镜像中只使用它的输出。例如,Java开发者通常使用Apache...阅读全文

博文 2017-06-30 23:08:57 debian.cn

Jono Bacon: GPL 没落了吗?

客户觉得把他们的用 GPL 发布不舒服。 随着 大约 65% 的公司对开源事业做贡献 ,自从 2010 年以后显然开源行业已经引来了不少商业兴趣和投资。我相信,我之前说的那些趋势,已经表明这行业不认为 GPL 适合搞开源生意。 连接社区和公司 说真的,GPL 的没落不太让人吃惊,因为有如下原因。 首先,开源行业已经转型升级,它要在社区发展以及……你懂的……真正能赚钱的商业模型中做出均衡,这是它们要做的最重要的决策。在开源思想发展之初,人们有种误解说,“如果你搞出来了,他们就会用”,他们确实会来使用你的软件,但是在很多情况下,都是“如果你搞出来了,他们不是一定要给你钱。” 随着历史的进程,我们看到了许多公司,比如 Red Hat、Automattic、Docker、Canonical...阅读全文

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

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

) FreeBSD的Ceph的第一个版本可用。通过常规FreeBSD端口和软件包发布系统,最新可用版本:net/ceph-devel。 在 Jewel(v10.2.z)版本上进行的重要修改 RADOS 现在默认为AsyncMessenger (ms type = async)的传统SimpleMessenger。最明显的区别是 我们现在使用固定大小的线程池进行网络连接(而不是使用SimpleMessenger,一个socket两个线程)。 优化OSD故障检测时间,而以前的心跳超时(默认为20秒)。 优化OSDMaps的量。 集群在进行重平衡/数据恢复时,OSD会停止Scrub。 RGW RGW现在支持S3多对象复制API。 现在可以离线重塑现有的分支。离线目前,桶重塑要求所有IO(特别是写入)到特定的桶...阅读全文

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

Debian 9.3上安装和配置 Observium 监控平台

命令退出MySQL shell: MariaDB [(none)]>\q 下载并安装Observium Observium有两个版本:开源版本和订阅版本,开放源版本可以免费下载,功能较少,安全修复程度较低,而订阅版本则附带额外的功能和硬件支持。 您可以使用以下命令从官方网站下载Observium的开源版本: wget http://www.observium.org/observium-community-latest.tar.gz 下载后,使用以下命令提取下载的存档: tar -xvzf observium-community-latest.tar.gz 接下来,将提取的目录复制到Apache Web根目录: cp -ar observium /var/www/html/ 接下来,重命...阅读全文

博文 2017-12-30 11:35:21 debian.cn

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

) | 修正cron脚本中的版本比较 | | [debian-edu-config](https://packages.debian.org/src:debian-edu-config) | 将主机keytabs清理从gosa-modify-host中移出,变成一个独立的脚本,将LDAP调用减少为一个查询 | | [debian-installer](https://packages.debian.org/src:debian-installer) | 使用 4.19.0-14 Linux 内核 ABI;根据提议的更新进行重建 | | [debian-installer-netboot-images](https://packages.debian.org/src:debian...阅读全文

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

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

树莓派中的实现,可以将树莓派变成 Chromebook。Windows 10:是的,甚至有用户经过一番折腾,成功在 Raspberry Pi 4 上安装了 Windows 10,但由于硬件架构适配性不足等原因,运行速度很慢,慎用。 Lakka:该操作系统专为一些复古游戏而设计,预装了一系列模拟器,可以将树莓派变成一台老式游戏机。6.太空中运行着两台树莓派这绝对算是一个有趣的冷知识。国际空间站运行着两台“Astro Pis”设备,事实上,这是经过特别改良的 Raspberry Pi B+ 型,这两台树莓派经过“空间改造”以适应太空环境,并配备了官方的 Raspberry Pi Sense HAT。欧洲航天局会举办定期竞赛,孩子们提交的可以在外太空的这两台设备上远程运行,以进行一些有趣的空间...阅读全文

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

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

),则在下一次推送日志时缩小nextIndex,直到nextIndex验证通过。总结一下就是:当leader和follower日志冲突的时候,leader将校验 follower最后一条日志是否和leader匹配,如果不匹配,将递减查询,直到匹配,匹配后,删除冲突的日志。这样就实现了主从日志的一致性。(二)Raft协议算法实现前面我们已经大致了解了Raft协议算法的实现原理,如果我们要自己实现一个Raft协议的算法,其实就是将我们讲到的理论知识给翻译成为的过程,具体的开发需要考虑的细节比较多,量肯定也比较大,好在有人已经实现了Raft协议的算法了,我们可以直接拿过来使用。创建maven工程并导入jar包地址如下: 阅读全文

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

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

位是否为1。 FD_SET(int fd,fd_set*set) 用来设置描述词组set中相关fd的位,即将bitmap结构中某一位设置为1,索引值为fd。 FD_ZERO(fd_set *set) 用来清除描述词组set的全部位,即将bitmap结构全部清零。 首先来看一段服务端采用了select模型的示例: //创建server端套接字,获取文件描述符 int listenfd = socket(PF_INET,SOCK_STREAM,0); if(listenfd < 0) return -1; //绑定服务器 bind(listenfd,(struct sockaddr*)&address,sizeof(address)); //监听服务器 listen(listenfd,5...阅读全文

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

协议介绍之深入了解 gRPC

HTTP header。HTTP header 各个 fields 使用 \r\n 分隔,然后跟 body 之间使用 \r\n\r\n 分隔。解析完 header 之后,我们才能从 header 里面的 content-length 拿到 body 的 size,从而读取 body。 这套流程其实并不高效,因为我们需要读取多次,才能将一个完整的 HTTP 请求给解析出来,虽然在实现上面,有很多优化方式,譬如: 一次将一大块数据读取到 buffer 里面避免多次 IO read 读取的时候直接匹配 \r\n 的方式流式解析 但上面的方式对于高性能服务来说,终归还是会有开销。其实最主要的问题在于,HTTP/1.x 的协议是 文本协议,是给人看的,对机器不友好,如果要对机器友好,二进制协议才是更好的...阅读全文

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

Debian 相比 Ubuntu 有哪些不同之处

Stable和Update。然而,用户需要把注意力主要放在三大类软件库上。 Debian系统具有的优点之一是,你可以在下面这两个极端之间作一选择:极其稳定,但缺点是版本较老;或者非常先进,但缺点是软件不大稳定,技术出现的重大变化可能让不知情用户的系统崩溃。这里的选择取决于你是升级核心组件(比如Linux内核),还是升级灾难发生时不影响其他东西的自带库的独立式实用工具。 恰恰相反,Ubuntu的程序包来自Debian测试版或不稳定版。Ubuntu的软件库按照其他标准来加以组织,而不是由测试状态来加以组织。Main含有Canonical支持的软件,以及Ubuntu社区支持的Universe软件。Restricted含有专有驱动程序,其中Multiverse存放有版权或其他法律限制的软件。 另一个主要的...阅读全文

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

案例:Redis命令不当 引起数据库雪崩 造成数百万损失

来实现,直接在里写前缀的做法要严格避免,这样可维护性实在太差了。 如:系统名:业务名:业务数据:其他 但是注意,key的名称不要过长,尽量清晰明了,容易理解,需要自己衡量 10.线上禁止使用monitor命令 禁止生产环境使用monitor命令,monitor命令在高并发条件下,会存在内存暴增和影响Redis性能的隐患 11.禁止大 string 核心集群禁用1mb的string大key(虽然redis支持512MB大小的string),如果1mb的key每秒重复写入10次,就会导致写入网络IO达10MB; 12.redis容量 单实例的内存大小不建议过大,建议在10~20GB以内。 redis实例包含的键个数建议控制在1kw内,单实例键个数过大,可能导致过期键的回收不及时。 13 可靠...阅读全文

博文 2018-10-27 10:18:18 debian.cn

Gitlab CI 配置文件 .gitlab

no 定义此作业完成部署的环境名称 coverage no 定义给定作业的覆盖率设置 script script是Runner执行的yaml脚本。举个例子: job: script: "bundle exec rspec" 该参数也可以用数组包含多个命令: job: script: - uname -a - bundle exec rspec 有时候,script命令需要被单引号或者是双引号包裹起来。举个例子,当命令中包含冒号(:)时,script需要被包在双引号中,这样YAML解析器才可以正确解析为一个字符串而不是一个键值对(key:value)。使用这些特殊字符的时候一定要注意::,{,},[,],,,&,*,#,?,|,-,<,>,=,!。 stage stage允许一组jobs进入...阅读全文

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

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并更新后...阅读全文

Docker 核心原理

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

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