InfraPub 为您找到相关结果 289

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

合用来做大数据分析的层存储服务,并不适合用来做网盘等应用,因为修改不方便,延迟大,网络开销大,成本太高。 4. HDFS 的命令行使用 如果没有配置 hadoop 的环境变量,则在 hadoop 的安装目录下的bin目录中执行以下命令,如已配置 hadoop 环境变量,则可在任意目录下执行 help 格式: hdfs dfs -help 操作命令 作用: 查看某一个操作命令的参数信息 ls 格式:hdfs dfs -ls URI 作用:类似于Linux的ls命令,显示文件列表 lsr 格式 : hdfs dfs -lsr URI 作用 : 在整个目录下递归执行ls, 与UNIX中的ls-R类似 mkdir 格式 : hdfs dfs -mkdir [-p] 作用 : 以...阅读全文

最全的 DevOps 工具集合

,可以从任何地方访问它们 使用托管数据库(如 MySQL、PostgreSQL、Oracle 或 SQLServer)存储信息 使用内容交付网络(CDN)在世界范围内快速交付静态和动态文件 向你的众多客户发送大量子邮件 Microsoft Azure Microsoft Azure 是由微软创建的一种云计算服务,可通过微软管理的数据中心构建、测试、部署和管理应用程序和服务。 Microsoft Azure(以前称为 Windows Azure)是微软的公共云计算平台。它提供了多种云服务,包括计算、分析、存储和网络等用途。用户可以在这些服务中挑选自己所需的选项,以在公有云中开发和扩展新的应用程序,或运行现有应用程序。 Google Cloud Platform 由谷歌提供的 Google...阅读全文

博文 2021-05-26 14:35:21 博客园

Python的闭包和装饰器

的。除此之外,闭包还有很多其他功能,比如用于封装等,另外,闭包有效的减少了函数参数的数目,这对并行计算非常有价值,比如可以让每台脑负责一个函数,然后串起来,实现流水化的作业等。 简而言之:@a 就是将 b 传递给 a(),并返回新的 b = a(b) 目录...阅读全文

博文 2014-07-23 17:06:38 debian.cn

Debian 10 Buster 正式版即将发布

: GNOME 桌面 3.30 Debian Stretch 版中的 GNOME 桌面在 Buster 中从 1.3.22 升级到了 1.3.30。在 GNOME 桌面发布版中新包含的一些包是 gnome-todo、tracker 替代了 tracker-gui、gstreamer1.0-packagekit 的依赖,因此可以通过自动地安装编码解码器来做播放影之类的事。对于所有包来说一个大的改变是从 libgtk2+ 到 libgtk3+。 Linux 内核 4.19.0-4 Debian 使用 LTS 内核版本,因此你可以期待更好的硬件支持和长达 5 年的维护和支持周期。我们已经从内核 4.9.0.3 到 4.19.0-4。 OpenJDK 11.0 Debian 在很长时间里都是 OpenJDK...阅读全文

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

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

我们将介绍,如何在三个树莓派上,创建出一套 Kubernetes 集群并正常使用。在这种场景下,主节点的内存和 CPU 资源较有限,执行 Kubernetes 任务时性能会有折扣,想做升级也不容易。 在开始之前,我们先介绍 K3s 这个项目。K3s 被誉为是最轻量级的 Kubernetes 发行版,它针对低配的 x86 和 ARM 处理器优化,可以让 Kubernetes 在树莓派上运行得更好。 基于 Raspbian 的 kubernetes 集群 本文我们将介绍如何使用 K3s 在树莓派上创建 Kubernetes 集群。系统我们用的是树莓派最流行的 Raspbian。 准备工作 在开始创建 Kubernetes 集群之前,我们需要准备, 至少一个树莓派,包括 SD 卡和源网线,普通...阅读全文

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

Terraform 学习总结 — Terraform 简介

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

为何说微软不会基于Linux内核重构Windows

数周前,开源软件爱好者 Eric S Raymond 提出的观点引发热议,他认为微软应该在 Linux 内核基础上重构 Windows。他认为目前个人脑业务持续下滑,Windows 早已不再是微软的支柱业务,通过重构能够实现利润最大化。不过,曾参与 Windows Subsystem for Linux 的 Ubuntu 移植开发的 Hayden Barnes 对此持反对观点,认为微软不会基于 Linux 重构 Windows。 Hayden Barnes 是游走在微软和 Linux 社区之间的知名开发者,曾帮助 Windows Subsystem for Linux(WSL)上推进 Ubuntu 开发工作。因此他能够和很多 Linux 开发人员、开源项目人员、社区成员和微软员工进行交流...阅读全文

博文 2020-10-15 14:59:58 debian.cn

Debian 10使用 Wine 安装配置微信、QQ与TIM

riched20 这个过程要下载两个文件W2KSP4_EN.EXE与InstMsiW.exe,很难下载,中断了失败不要紧,可以不断执行winetricks riched20,直到网络能够连上解决的话下载成功就OK。 安装好riched20库后,可以按上面小节“安装应用”的方法,安装微信与QQ。笔者成功用wine安装微信PC版2.9.5与QQ PC版9.3.7。并且用fcitx输入法可以输入文字。 其中找不到wine的QQ如何打开的话,它路径是~/.wine/drive_c/Program Files (x86)/Tencent/QQ/Bin/QQ.exe,右击选择wine打开即可。 补充:同样方法也安装TIM(如果有冲突说另一程序运行,可以重启脑再安装)成功。路径为~/.wine/drive_c...阅读全文

图解 Debian 系统通用安装教程

登录,进入后输入一下命令即可完成桌面环境的启动。 startx 这下就能看见桌面环境了,剩下的就不用多说了。 如果出现中文乱码,以root权限进入xfce终端或在命令行界面输入以下命令: dpkg-reconfigure locales 方向键上下选择,Page Up/Down可以翻页,空格键选中。 将开头为zh_CN的几个全部选中,按回车键保存,选择zh_CN.UTF-8为默认locale,等待完成后重新启动系统即可解决乱码问题。 最后,在你晚上睡觉前还有个事情,那就是执行下面的命令。 apt-get update apt-get upgrade 之后关闭显示器源,让系统自动更新去吧,所谓的快速安装就是把安装过程中的系统更新放到了最后,仅此而已。 这种安装方法有个不足之处,就是每次启动后...阅读全文

博文 2017-07-13 12:52:56 debian.cn

Git 介绍与使用详解

没有中央服务器,每个人的脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的脑上。举个例子,要浏览项目的历史,Git 不需外连到服务器去获取历史,然后再显示出来——它只需直接从本地数据库中读取。 你能立即看到项目历史。 如果你想查看当前版本与一个月前的版本之间引入的修改,Git 会查找到一个月前的文件做一次本地的差异计算,而不是由远程服务器处理或从远程服务器拉回旧版本文件再来本地处理。 2.安装、配置Git 2.1GUI可视化界面推荐 1.GitForWindows https://gitforwindows.org/ 自带GIT BASH和GIT GUI 2.TortoiseGit https://tortoisegit.org/download/ 3...阅读全文

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

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

和图像的互相转换,而是所有模态之间都可以方便地互相转化。 第三个方向是,模型可以持续学习。目前的模型如GPT都停滞在当初训练好的状态,并不会随着使用次数的增加而自我优化。我相信未来可以改变这一点。 如果上述三点都能实现的话,我们就可以解锁无数全新的应用场景,实现真正的科技革新,帮助人类实现科技的飞跃式前进。而且我相信,我们也有办法利用AI推动科研进步和新知识的产生。 我认为,现在普遍存在的一种错误观点是:“虽然语言模型的功能已经比较完善,还可以应用到图像和视频领域,将应用智能的边际成本降得非常低,但归根结,它只是模仿人类做过的东西,不能为人类产生新知识,不能治疗癌症,也不能拓展人类已知的科学领域。”我相信,AI的发展会让持这种观点的人大吃一惊。 Reid Hoffman:AI将如何影响未来...阅读全文

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

7大维度看国外企业为啥选择gRPC打造高性能微服务

gRPC是一个高性能、开源、通用的RPC框架,面向移动和HTTP/2设计,是由谷歌发布的首款基于Protocol Buffers的RPC框架。 gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省且节省空间占用。gRPC 1.0版本是2015年面世以后的第一次版本发布,开发者可以把该版本用于生产。API现在也是很稳定的。 Bugsnag(注:一家云端bug监控服务商)每天处理数以亿计的错误信息,为了处理这些数据,考虑优先构建一个可扩展,性能强大的后端系统,并从中学到很多有挑战性的技术。最近,我们推出了新版本的仪表板,这个项目要求扩展系统,来处理服务呼叫的显著增加,这些呼叫是跟踪用户发布和会话所需的...阅读全文

博文 2018-03-19 17:51:32 debian.cn

成为Debian社区维护人需要做好的准备

)列表是一个不错的开始。打包前需要考虑:自己是否有足够的知识和能力来维护这个包?在可预见的一段日子里是否有充足的时间和精力来进行 更新和修复 Bug?如果答案都是肯定的,那么就动手把它打包好,期间遇到问题则找人咨询指导。 4. 当经过反复检查和测试,觉得软件包已经比较完善时,寻找一位 Debian Developer 帮你检查和上传软件包,这位 DD 此时便是你的 sponsor。 当找到一位愿意帮忙的 DD 后,他会对你的软件包进行彻的检查,指出(可能)存在的问题并请你修改。这时要做的就是参考他的意见修改软件包,并把结果再发给他,这是一个极好的学习 机会。如此反复若干次后软件包最终会符合 Debian 的标准,之后 sponsor 便会将其上传到 Debian 仓库。需要说明的是,经由...阅读全文

Golang 中的 channel 通道详解

shrinking. lock mutex } 创建一个channelvar name chan elemType //声明中需要指定channel的具体类型 eg. var c chan int 声明了一个int的channel 我们使用make()方法创建,可以指定chan的缓存区大小。c := make(chan int, 10) //make创建一个int类型的channel,容量大小为10 c1 := make(chan int) // 无缓存的channel make()函数最后会调用层的makechan()函数,返回一个通道的指针。当我们复制一个channel或用于函数参数传递时,我们只是拷贝了一个channel引用,因此调用者和被调用者将引用同一个channel对象。和其它的引用类型一样...阅读全文

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

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

Pod 初始化配置,还能起到配置统一的效果。 2、环境、软件准备 本次演示环境,我是在本机 MAC OS 上操作,以下是安装的软件及版本: Docker: 18.06.3-ceOracle VirtualBox: 6.0.8 r130520 (Qt5.6.3)Linux: 7.6.1810Minikube: v0.30.0Kubernetes: 1.12.1 注意:这里 Kubernetes 集群搭建使用 Minikube 来完成,Minikube 启动的单节点 k8s Node 实例是需要运行在本机的 VM 虚拟机里面,所以需要提前安装好 VM,这里我选择 Oracle VirtualBox。k8s 运行层使用 Docker 容器,所以本机需要安装好 Docker 环境,这里忽略...阅读全文

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

聊聊很重要的内核技术eBPF

(DFS),以确保程序完成并且代码不包含危险路径。这意味着它将遍历图的每个分支,一直到分支的部,以确保没有递归循环。 这些是验证器在第一次检查期间可能拒绝您的代码的情形,要求有以下几个方面: 该程序不包含控制循环。为确保程序不会陷入无限循环,验证程序会拒绝任何类型的控制循环。已经提出了在BPF程序中允许循环的建议,但是截至撰写本文时,没有一个被采用。该程序不会尝试执行超过内核允许的最大指令数的指令。此时,可执行的最大指令数为4,096。此限制是为了防止BPF永远运行。在第3章,我们讨论如何嵌套不同的BPF程序,以安全的方式解决此限制。该程序不包含任何无法访问的指令,例如从未执行过的条件或功能。这样可以防止在VM中加载无效代码,这也会延迟BPF程序的终止。该程序不会尝试越界。 验证者执行的第二项检...阅读全文

博文 2020-08-16 11:08:44 debian.cn

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

域本质上是不利的。用户只有在出现问题时才会查看系统,并且通常没有一个好的调查起点。我们正在努力更好地表示系统的状态,以及为什么以及如何做出决定,以便在出现问题时改善内省。 - END - 往期回顾 ◆Redis和Mysql如何保持数据一致性 ◆软件架构可能不是你想象的那个样子 ◆容器与Pod到有什么区别和联系? ◆如何从0到1进行商平台订单系统的搭建? ◆SRE本质就是一个懂运维的资深开发 ◆Spring Cloud应用的优雅下线与灰度发布 ◆一文帮你彻掌握Nginx ◆Redis 7.0 新功能新特性总览 ◆漫画 | Kubernetes 如果是个水族馆 ◆7 种提升 Spring Boot 吞吐量神技! ◆大型 SaaS 平台产品架构设计 ◆代码规范&设计模式落地之路 技术交流,请...阅读全文

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

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

| | [dovecot](https://packages.debian.org/src:dovecot) | 修复搜索包含畸形MIME邮件的邮箱时的崩溃问题 | | [dpdk](https://packages.debian.org/src:dpdk) | 新的上游稳定发布 | | [edk2](https://packages.debian.org/src:edk2) | CryptoPkg/BaseCryptLib:修复NULL析出[CVE-2019-14584] | | [emacs](https://packages.debian.org/src:emacs) | OpenPGP用户ID没有子邮件地址时,不要崩溃 | | [fcitx](https://packages.debian.org...阅读全文

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

Apollo 配置中心简单介绍

,同一份代码部署在不同的环境就应该能够获取到不同环境的配置所以环境默认是通过读取机器上的配置(server.properties中的env属性)指定的,不过为了开发方便,我们也支持运行时通过System Property等指定,具体信息请参见Java客户端使用指南。cluster (集群) 一个应用下不同实例的分组,比如典型的可以按照数据中心分,把上机房的应用实例分为一个集群,把北京机房的应用实例分为另一个集群。对不同的cluster,同一个配置可以有不一样的值,如zookeeper地址。集群默认是通过读取机器上的配置(server.properties中的idc属性)指定的,不过也支持运行时通过System Property指定,具体信息请参见Java客户端使用指南。namespace...阅读全文

博文 2021-04-09 17:53:51 CSDN

互联网协议正在发生变化

)。像 HTTP/2 一样,它始于 Google 的一项成果,并且现在已经被 IETF 接纳作为一个 HTTP-over-UDP 的初始用例,其目标是在 2018 年成为一个标准。然而,因为 Google 已经在 Chrome 浏览器及其网站上部署了 QUIC,它已经占有了超过 7% 的互联网通讯份额。 阅读 关于 QUIC 的答疑 除了大量的通讯从 TCP 到 UDP 的转变(以及隐含的可能的网络调整)之外,Google QUIC(gQUIC)和 IETF QUIC(iQUIC)都要求全程加密;并没有非加密的 QUIC。 iQUIC 使用 TLS 1.3 来为会话建立密钥,然后使用它去加密每个数据包。然而,由于它是基于 UDP 的,许多 TCP 中公开的会话信息和元数据在 QUIC 中被加密...阅读全文

Gitlab CI 配置文件 .gitlab

/$CI_COMMIT_REF_NAME url: https://$CI_ENVIRONMENT_SLUG.example.com/ 当$CI_COMMIT_REF_NAME 被Runner设置为environment variable时,deply as review appjob将会被指定部署到动态创建revuew/$CI_COMMIT_REF_NAME的环境中。$CI_ENVIRONMENT_SLUG变量是基于环境名称的,最终组合成完整的URLs。在这种情况下,如果deploy as review appjob是运行在名称为pow的分支下,那么可以通过URLhttps"//review-pw.example.com/来访问这个环境。 这当然意味着托管应用程序的层服务器已经正确配置。 常见的做法是为分支创建动态环境,并讲...阅读全文

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

“Debian 章程有毒” - OSCHINA

些代表有权力在考虑技术标准和共识的情况下做出他们认为最佳的决定。 至于 Debian 社区的项目层面,DPL 更是无权过问,每个项目的开发者都对项目有百分百的决定权。比如,个别开发者几乎可以完全控制他们维护的软件包;开发人员之间的技术分歧很大的时候,将由项目技术委员会处理;发布管理者与 FTP 主人有权最终决定项目实际发布的内容,以及何时发布;项目秘书负责确保遵循必要的程序;政策团队处理项目的大部分总体设计。 其次,DPL 是可以随时进行更换的,因为有一般决议(General Resolution)这样的通道,开发者们可以重新选举另外的 DPL、撤销 DPL 或代表的决定、修改基本文件并做出其他有约束力的决定。(如下图所示) 那么,DPL 到是干什么的呢?主要分为两个方面: 在对外职能中...阅读全文

博文 2021-12-06 13:55:33 中文开源技术交流社区

DPDK Graph Pipeline 框架简介与实现原理

node。现在透过分析内存布局的帮助下,我们能更好地去想象 graph walk 是如何从 cir_start[-src_node_count] 开始,直到再没有任何 pending stream (head 等于 tail)为止。 struct node 理解了 graph 的运作原理后,我们现在讨论一下层的关键组件 node。先前我们已经提到 graph_node 和 node 的部分区别,其实关键区别在于 node 实际包含了什么信息。 struct node { STAILQ_ENTRY(node) next; /* Next node in the list. */ char name[RTE_NODE_NAMESIZE]; /* Name of the node...阅读全文

博文 2023-02-09 07:13:55 掘金

译:Kubernetes 最佳实践

的 AKS(Azure Kubernetes 服务)或 Amazon Web Services 上的 EKS(亚马逊弹性 Kubernetes 服务)。利用这一点意味着层基础设施将由云服务商管理,并且可以更轻松地完成有关扩展集群的任务,例如添加和删除节点,而让工程师管理 K8s 集群上运行的内容本身。升级Kubernetes版本除了引入新功能外,新的 K8s 版本还包括漏洞和安全修复,这使得在集群上运行最新版本的 K8s 非常重要。对旧版本的支持可能不如新版本好。然而,迁移到新版本时应谨慎对待,因为某些功能可能会被废弃,也可能会添加新功能。此外,在升级之前,应检查集群上运行的应用程序是否与较新的目标版本兼容。监控集群资源和审计策略日志监控 K8s 控制平面中的组件对于控制资源消耗非常重要...阅读全文

博文 2022-09-13 19:32:21 atbug.com

分布式运行时 Dapr 知多少

subscribe(消息发布及订阅) 发布订阅模式,老生常谈了,主要是用于微服务间基于消息进行相互通信。你可能也会说,这也要拿出来说,我搞个RabbitMQ/RocketMQ就是了。是的,但我还是要说,Dapr提供了一致性的消息发布、订阅API,而无需关注具体使用的是何种Message Broker,从而和层基础设施解耦。 发布:POST http://localhost:/v1.0/publish//[?]获取可订阅主题:GET http://localhost:/dapr/subscribe订阅:POST http://localhost:/ 4. Resource...阅读全文

如何使用 journalctl 清理 journal 日志

, 即可彻屏蔽 /usr/lib/ 目录中的同名文件。 选项 所有选项都位于 "[Journal]" 小节: Storage= 在哪里存储日志文件: "volatile" 表示仅保存在内存中, 也就是仅保存在 /run/log/journal 目录中(将会被自动按需创建)。 "persistent" 表示优先保存在磁盘上, 也就优先保存在 /var/log/journal 目录中(将会被自动按需创建), 但若失败(例如在系统启动早期"/var"尚未挂载), 则转而保存在 /run/log/journal 目录中(将会被自动按需创建)。 "auto"(默认值) 与 "persistent" 类似, 但不自动创建 /var/log/journal 目录, 因此可以根据该目录的存在与否决定日志的保存...阅读全文

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

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

的最细粒度的身份验证和授权。虽然服务网格可以提供帮助,但 Kubernetes 安全性仍然是一个复杂而微妙的话题,需要从多个层次进行了解。零信任是一种位于现代安全实践前沿的强大的安全模型。这也是一个容易引起轰动和炒作的术语,因此很难消除噪音。那么,究竟什么是零信任,对于 Kubernetes,它究竟意味着什么?在本文中,我们将从工程的角度探讨什么是零信任,并构建一个基本框架来理解它对 Kubernetes 运维和安全团队等的影响。介绍如果你正在构建现代云软件,无论是采用 Kubernetes 还是其他软件,可能都听说过“零信任”一词。零信任的安全模式变得如此重要,以至于美国联邦政府已经注意到:白宫最近发布了一份联邦零信任战略的备忘录,要求所有美国联邦机构在年前满足特定的零信任安全标准...阅读全文

协议介绍之深入了解 gRPC

protobuf 的,要了解 gRPC 协议,只需要知道 gRPC 是如何在 HTTP/2 上面传输就可以了。 gRPC 通常有四种模式,unary,client streaming,server streaming 以及 bidirectional streaming,对于层 HTTP/2 来说,它们都是 stream,并且仍然是一套 request + response 模型。 Request gRPC 的 request 通常包含 Request-Headers, 0 或者多个 Length-Prefixed-Message 以及 EOS。 Request-Headers 直接使用的 HTTP/2 headers,在 HEADERS 和 CONTINUATION frame 里面派发。定义的...阅读全文

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

在 Kubernetes 上扩展 TensorFlow 模型

。 ## 用 KFServing 自动扩展 TensorFlow 模型 KFServing 是一种无服务器平台,它可以轻松地将训练好的 TensorFlow 模型转换为从 Kubernetes 集群外部访问的推理服务。通过 Istio, KFServing 可以实现网络和入口、健康检查、金丝雀发布(canary rollouts)、时间点快照、流量路由以及针对你部署的 TensorFlow 模型灵活地配置服务器。 同时,KFServing 还支持开箱即用的训练 TensorFlow 模型的自动扩展。在层,KFServing 依赖于 Knative Serving 的自动扩展能力。Knative 提供了两个自动扩展的实现。一种是基于 Knative Pod Autoscaler(KPA)工具,另一种个...阅读全文

RabbitMQ 高可用实现镜像队列

:A,B同时停 该场景下可能是由掉等原因造成,只需在30s内联系启动A和B即可恢复镜像队列。 场景3:A先停,B后停,且A无法恢复。 因为B是master,所以等B起来后,在B节点上调用rabbitmqctl forget_cluster_node A以接触A的cluster关系,再将新的slave节点加入B即可重新恢复镜像队列。 场景4:A先停,B后停,且B无法恢复 该场景比较难处理,旧版本的RabbitMQ没有有效的解决办法,在现在的版本中,因为B是master,所以直接启动A是不行的,当A无法启动时,也就没版本在A节点上调用rabbitmqctl forget_cluster_node B了,新版本中forget_cluster_node支持-offline参数,offline参数允许...阅读全文

博文 2018-12-30 19:21:59 debian.cn

如何写好技术文档 — 来自十多年的文档经验总结

本文大部分内容翻译总结自《Software Engineering at Google》 第10章节 Documentation。 另外,该书子版近日已经可以免费下载了 https://abseil.io/resources/swe_at_google.2.pdf,有兴趣的同学可以下载翻阅下。 首先声明,本问所说的文档不仅限于纯文本文档,还包含代码注释(注释也是一种特殊形式的文档)。 ## 文档的重要性 ## 高质量的文档对于一个组织或团队来说有非常多的益处,比如让代码和API更容易理解、错误更少;让团队成员更专注于目标;也可以让一些手工操作更容易;另外如果有新成员加入的话有文档也会让他们更快融入…… 写文档有比较严重的收益滞后性,不像测试,你跑一个测试case,它能立即告诉你是对还是错...阅读全文

博文 2021-07-30 16:15:13 joseph

HTTP状态码详解

向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。参见RFC 2617。 402 该状态码是为了将来可能的需求而预留的。 403 服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。 404 请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404...阅读全文

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

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

)确定决策并写出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。 (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。 一般,只要解决问题的阶段、状态和状态转移决策确定了,就可以写出状态转移方程(包括边界条件)。 实际应用中可以按以下几个简化的步骤进行设计: (1)分析最优解的性质,并刻画其结构特征。 (2)递归的定义最优解。 (3)以自向上或自顶向下的记忆化方式(备忘录法)计算出最优值 (4)根据计算最优值时得到的信息,构造问题的最优解 算法实现的说明 动态规划的主要难点在...阅读全文

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

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 中文开源技术交流社区

Web前端知识体系精简

创建一个新对象时,JS层将新对象的原型链指向了构造函数的原型对象,于是就在新对象和函数对象之间建立了一条原型链,通过新对象可以访问到函数对象原型prototype中的方法和属性。new的详细介绍请参考博客:理解JS中的new运算符 5、闭包 闭包其实是一个主动执行的代码块,这个代码块的特殊之处是可以永久保存局部变量,但又不污染全局变量,可以形成一个独立的执行过程,因此我们经常用闭包来定义组件。关于闭包的介绍请参考:干货分享:让你分分钟学会JS闭包 6、单线程和异步队列 setTimeout和setInterval是JS内置的两个定时器,使用很简单,但这两个方法背后的原理却不简单。 我们知道,JS是单线程语言,在浏览器中,当JS代码被加载时,浏览器会为其分配一个主线程来执行任务(函数),主线...阅读全文

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

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

:使用`/latest_producer_id_block`节点来保存PID块,主要用于能够保证生产者的任意写入请求都能够得到响应。/log_dir_event_notification:主要用于保存当broker当中某些LogDir出现异常时候,例如磁盘损坏,文件读写失败等异常时候,向ZK当中增加一个通知序号,controller监听到这个节点的变化之后,就会做出对应的处理操作。以上就是kafka在zk当中保留的所有的所有的相关的元数据信息,这些元数据信息保证了kafka集群的正常运行。二、kafka3的安装配置在kafka3的版本当中已经彻去掉了对zk的依赖,如果没有了zk集群,那么kafka当中是如何保存元数据信息的呢,这里我们通过kafka3的集群来一探究竟。(一)kafka安装配置...阅读全文

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

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

源的数量,而且能限制某个 Namespace 中被 Pod 所请求的资源总量。该准入控制器和资源对象 ResourceQuota一起实现了资源配额管理。LimitRanger 作用类似于上面的 ResourceQuota 控制器,针对 Namespace 资源的每个个体(Pod 与 Container 等)的资源配额。该插件和资源对象 LimitRange 一起实现资源配额管理。 3. etcd 到现在为止,Kubernetes 已经对该客户端的调用请求进行了全面彻地审查,并且已经验证通过,运行它进入下一个环节。下一步 kube-apiserver 将对 HTTP 请求进行反序列化,然后利用得到的结果构建运行时对象(有点像 kubectl 生成器的逆过程),并保存到 etcd 中。下面我们...阅读全文

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

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

操作集。 AOF rewrite可以通过BGREWRITEAOF命令触发,也可以配置Redis定期自动进行: auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb 上面两行配置的含义是,Redis在每次AOF rewrite时,会记录完成rewrite后的AOF日志大小,当AOF日志大小在该基础上增长了100%后,自动进行AOF rewrite。同时如果增长的大小没有达到64mb,则不会进行rewrite。 AOF的优点: 最安全,在启用appendfsync always时,任何已写入的数据都不会丢失,使用在启用appendfsync everysec也至多只会丢失1秒的数据。 AOF文件在发生断等问题时也不会损坏...阅读全文

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