InfraPub 为您找到相关结果 286

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

和流程。 kubelet是kubernetes集群中Node节点的工作进程。当一个Pod被kube-sheduler成功调度到Node节点上后, kubelet负责将这个Pod创建出来,并把它所定义的各个容器启动起来。kubelet也是按照控制器模式工作的,它的工作心是一个控制循环,源码中称之为syncLoop,这个循环关注并处理以下事件: Pod更新事件,源自API Server;Pod生命周期(PLEG)变化, 源自Pod本身容器状态变化, 例如容器的创建,开始运行,和结束运行;kubelet本身设置的周期同步(Sync)任务;Pod存活探测(LivenessProbe)失败事件;定时的清理事件(HouseKeeping)。 在上文描述的CronJob任务中, 每次运行Job任务都会创...阅读全文

分布式运行时 Dapr 知多少

了答案。 从单机到分布式,是追求更快和更高的性能,但也带来了更多的不确定性。比如,不确定计算机何时异常,不确定磁盘何时损坏,不确定网络通信的延迟,也不确定消息是否被正常消费。这些不确定性构成了分布式应用的挑战,简而言之: 异构的机器与网络:稳定性问题普遍的节点故障:可靠性问题不可靠的网络:一致性问题 面对这些挑战,业界提出了诸多的分布式理论、协议,如CAP定理,BASE理论,一致性协议2PC/3PC/ZAB,来保证系统的正常运行。虽然问题貌似是有了解决方案,但是应用的复杂度升高了。应用除了需要实现业务需求,还要兼顾非业务需求,集成诸如服务发现、负载均衡、失效转移、动态扩容、数据分片、调用链路监控等分布式系统的心功能,对应用有很强的侵入性,这就是以Spring Cloud为代表的微服务框架的...阅读全文

译:Kubernetes 最佳实践

览我之前翻译的Kubernetes 的自动伸缩你用对了吗?;HPA 除了可以基于 CPU 指标伸缩,还可以基于内存,或者自定义指标,可以浏览Kubernetes HPA 基于 Prometheus 自定义指标的可控弹性伸缩。使用资源请求和约束应设置资源请求和约束(可在容器中使用的最小和最大资源量)以避免容器在未分配所需资源的情况下启动,或集群用尽可用资源。在没有限制的情况下,Pod 可以使用比所需更多的资源,从而导致可用资源总量减少,这可能会导致集群上的其他应用程序出现问题。节点可能会崩溃,并且调度程序可能无法正确调度新的 pod。如果没有请求,无法为应用程序分配足够的资源,它可能会在尝试启动或执行异常时失败。资源请求和限制以毫和兆字节为单位定义可用的 CPU 和内存。请注意,如果进程超出...阅读全文

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

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

-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。 (3)HAProxy 支持连接拒绝 : 因为维护一个连接的打开的开销是很低的,有时我们很需要限制攻击蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害。 这个已经为一个陷于小型DDoS攻击的网站开发了而且已经拯救 了很多站点,这个优点也是其它负载均衡器没有的。 (4)HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器...阅读全文

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

Apollo 配置中心简单介绍

, ctrip apollo, disconf, hawk 等配置中心的功能点。综合比较下来携程apollo 更具有优势。 二、简单介绍携程Apollo配置中心 1、What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审机制…… 在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。 Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范...阅读全文

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

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

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 安排上了

废话不多说,先来看看 Go 2.0 有哪些值得关注的内容: 最大程度保持对 1.x 的兼容,以避免分裂 Go 语言生态系统 采用增量升级的方式,而非单独发布重大更新版本 实施新的提案评估流程,以评估尚未解决且被标记为提案的 issue 将会在 Go 1.13 版本中选择 Go 2 部分的提案 背景 早在2017年的 GopherCon 大会上,Russ Cox(Go 心开发团队的技术 leader)就已经正式开始思考 Go 的下一个大版本(相关文章)。当时官方非正式地将它称为 Go 2,但我们知道,所谓的 Go 2.0 并非一个单独的重大更新版本,而是通过“增量更新(incremental)”的方式以逐渐抵达 "Go 2.0"。所以本文对这个未来版本的称号 —— 也暂且用 Go 2 来描...阅读全文

隐私声明

带类型; 您的IP (Internet Protocol)地址,该地址有时可以显示您所在地理位置; 您在本网站内浏览过的页面、广告和链接; 您访问本网站时发出的访问请求及其日期、时间和引荐网址(如有); 通过Cookie标注您的浏览器的唯一性和在本网站的账户信息(包括您访问本网站的各项活动,浏览习惯等);您可以通过修改浏览器设置的方式拒绝cookie; 我们可能会使用浏览器网络存储(包括 HTML 5)和应用程序数据缓存等机制,在您的设备上收集和存储您所浏览过的网页信息; 如果您需要查询、更正您的个人信息或注销账号,请通过 support@debian.cn 与我们联系并提供您的账号和其他验证信息,我们在实后会回复您的请求。 2. 信息的使用 我们仅在必要的情况下...阅读全文

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

在TKE上使用Kubecost进行成本管理

,即为计算 Pod 资源请求(Request)或者使用量(Usage)消耗的成本。根据不同类型的资源,按照 Pod 所在 Node 的 IaaS 计价方式作为基本参考,来计算 Pod 所使用的成本费用。 目前云厂商的 Node 计费模式一般是**包年包月(Month)**、**按量计费(Hour)**和**竞价实例**。当 Kubecost 计算 Pod 成本时,即使是相同请求量的 Container,在不同类型的 Node 上成本消耗也不一致。 上述三种计费模式中,由于用户购买的是一个整体实例,因此按照实例计费,不针对单独一个资源计费。而通过使用 Kubecost,可以参照模型分析资源类型分摊成本、每种资源分摊成本。 例如,一个云厂商提供的某种 Node(虚拟机、物理机),CPU 为1(C...阅读全文

Golang Context 探究

, err error) { // 直接调用 cancelCtx 的取消方法 c.cancelCtx.cancel(false, err) if removeFromParent { // 从父节点中删除子节点 removeChild(c.cancelCtx.Context, c) } c.mu.Lock() if c.timer != nil { // 关掉定时器,这样,在deadline 到来时,不会再次取消 c.timer.Stop() c.timer = nil } c.mu.Unlock() } 总结:context 实现取消和定时取消的心是 context.cancelCtx 和 context.timerCtx。 context 传递数据 context.valueCtx 在...阅读全文

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

WebAssembly:无需容器的 Docker (上)

得在最小打包的上下文下运行应用程序配置变得更加容易,而不会影响主机操作系统上的任何其他应用程序。 但是,仍然需要分发与其运行时和必要的库捆绑在一起的应用程序。 安全边界由 Linux 内提供。现在有了 WebAssembly。 它的技术特性和可移植性使得分发应用程序成为可能,无需 ship 操作系统级别的依赖项,并且可以在严格的安全约束下运行。鉴于所有这些,开发者通常将 WebAssembly 视为容器的 “继承者”,以及基础设施部署的自然而然的下一步。然而,另一种看待 WebAssembly 的方式是将其作为 Docker 工具的另一个 “后端” 选择。 可以使用相同的命令行工具和工作流,替代 Linux 容器,使用基于 WebAssembly 的容器等同等的东西来实现。 本文的其余部分...阅读全文

博文 2023-01-03 06:35:56 spider

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

荐后,会有一位专门的负责人来对他进行考,这个人就是他的 AM。 10. WNPP: Work-Needing and Prospective Packages 的缩写,指需要有人接手或帮助的软件包。这个概念不是模糊的,而是有明确的定义的。 11. MIA: Missing In Action 的缩写,指某位 Maintainer 长时间不参与维护自己的软件包,同时别人也没能成功地与之取得联系。这样的 Maintainer 被称为 Zombie Maintainer 。如果他是 DD,那么他的 Debian 项目帐号会被锁定,一年内无回应则会删除。 12. Debian Project: Debian 项目是构建自由的通用操作系统(The Universal Operating System...阅读全文

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

导语 | kafka3.0的版本已经试推行去zk的kafka架构了,如果去掉了zk,那么在kafka新的版本当中使用什么技术来代替了zk的位置呢,接下来我们一起来一探究竟,了解kafka的内置共识机制和raft算法。一、Kafka简介Kafka是一款开源的消息引擎系统。一个典型的Kafka体系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群,如上图所示。其中ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将消息发送到Broker,Broker负责将收到的消息存储到磁盘中,而Consumer负责从Broker订阅并消费消息。(一)Kafka心组件producer:消息生产者,就是向broker...阅读全文

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

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

记录的更改)。在我们的例子中,控制器通过一个 Informer 注册一个创建事件的特定回调函数(更多信息参加下文)。 当 Deployment 第一次对外可见时,该 Controller 就会将该资源对象添加到内部工作队列,然后开始处理这个资源对象: 通过使用标签选择器查询 kube-apiserver 来检查该 Deployment 是否有与其关联的 ReplicaSet 或 Pod 记录。 有趣的是,这个同步过程是状态不可知的,它对新记录与对已经存在的记录采用的是相同的方式。 在意识到没有与其关联的 ReplicaSet 或 Pod 记录后,Deployment Controller 就会开始执行弹性伸缩流程: 创建 ReplicaSet 资源,为其分配一个标签选择器并将其版本号设置...阅读全文

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

提问的智慧 – 全文

errors. If you speak $LANGUAGE, please email/PM me; I may need assistance translating my question. I am familiar with the technical terms, but some slang expressions and idioms are difficult for me. I've posted my question in $LANGUAGE and English. I'll be glad to translate responses, if you only use one or the other. 【本章注释】 [13]Alan Cox:著名黑客,Linux 内的重...阅读全文

博文 2009-10-01 13:18:00 debian.cn

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

地化工作也是做得非常到位,而凭借着架构简单,开箱即用的特点,CAT 也是我们得物使用的第一个应用监控系统。 二、 0x01 第一阶段 从0~1基于CAT的实时应用监控 在得物五彩石项目交付之前,系统仅有基础设施层面的监控,CAT 的引入,很好地弥补了应用监控盲区。它支持提供各个维度的性能监控报表,健康状况检测,异常统计,对故障问题排查起到了积极推动的作用,同时也提供简单的实时告警的能力。 CAT 拥有指标分钟级别的聚合统计的能力,从 UI 上不难看出,它拥有丰富的报表统计能力和问题排障能力。 但随着公司业务规模逐步扩大,微服务粒度也不可避免地变小,我们发现,CAT 已经逐步无法满足我们的使用场景了: 无法直观呈现全链路视图: 问题排障与日常性能分析的场景也越来越复杂,对于一个心场景,其内部...阅读全文

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

协议介绍之深入了解 gRPC

大的提高一条连接上面的 stream 并发,可以考虑调大 SETTINGS_MAX_CONCURRENT_STREAMS,在 TiKV 里面,我们就遇到过这个值比较小,整体吞吐上不去的问题。 这里还需要注意,虽然一条连接上面能够处理更多的请求了,但一条连接远远是不够的。一条连接通常只有一个线程来处理,所以并不能充分利用服务器多的优势。同时,每个请求编解码还是有开销的,所以用一条连接还是会出现瓶颈。 在 TiKV 有一个版本中,我们就过分相信一条连接跑多 streams 这种方式没有问题,就让 client 只用一条连接跟 TiKV 交互,结果发现性能完全没法用,不光处理连接的线程 CPU 跑满,整体的性能也上不去,后来我们换成了多条连接,情况才好转。 Priority 因为一条连接允许多个...阅读全文

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

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

的 K8S 环境不矛盾。 另外一方面,如果说定制的概念是指基于 K8S 本身开发体系所提供的插件机制去做二次开发,那每家厂商都要定制,因为 K8S 本身不是一个产品级就绪的环境,需要使用者去适配网络和存储还有计算,因为每个公有云厂商基于自己的 IaaS 去提供 K8S 产品,必然要去开发插件。 综上,向用户应该提供原生的、标准的 K8S 产品,但底层应该基于自身 IaaS 平台去定制,本质还是为了提高用户使用 K8S 的效率,让用户开箱即用。 K8S 落地挑战:改造成本和人才问题 记者:你觉得目前国内云厂商提供的 K8S 集群编排服务在推广方面目前欠缺的是什么?是什么阻碍了客户进一步去使用这些容器集群服务? 叶理灯:K8S 以容器技术为心、以容器镜像为打包标准的特点,意味着如果要迁移到这个...阅读全文

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

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

API收集堆栈跟踪和跟踪内存分配,因而其可以和OpenJDK、Oracle JDK和其他基于HotSpot JVM的Java应用在运行时协同工作。 Github项目链接地址:https://github.com/jvm-profiling-tools/async-profiler Async-profiler可以跟踪以下类型的事件: CPU周期; 硬件和软件性能计数器,如缓存未命中、分支未命中、页面错误、上下文切换等; Java堆中的分配; 满足的锁定尝试,包括Java对象监视器和可重入锁; 支持的平台Linux / x64 / x86 / ARM / AArch64macOS / x64注意:macOS分析仅限于用户空间代码。 生成的火焰图,绿色代表用户栈,黄色代表jvm,红色代表内;横坐标...阅读全文

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

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

地页的问题就是随着时间的推移,页面可能会变的越来越乱,而且有些内容会失效,不过这些问题都好解决,做好定期的维护和整理就行。 落地页的技术难度不高,但要求内容的有效性、完整性和分类清晰。 ## 文档Review ## 在一个组织内,光靠个人去维护文档是不行的,必须得借助群体的智慧。在一个组织内部,文档的变更也应该像代码的变更一样,需要被其他人Review,以提前发现其中的问题并提升文档的质量。 如何Review文档: - **专业的视角来保证准确性**: 一般由团队里比较资深的人负责,他们关注的心点是文档写的对不对,专不专业。如果Code Review做的好的话,文档的Review也属于Code Review的一部分。 - **读者视角保证简洁性**: 一般由不熟悉这个领域的人来Review...阅读全文

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

从 Debian 安装 Proxmox VE,并配置网络和双硬盘

sudoer(嘛,死循环了1visudo 在文件最后加上一行1username ALL=(ALL:ALL) NOPASSWD:ALL username 是你当前的用户,你想从哪个用户免密切换到 root 在我这里是1customer ALL=(ALL:ALL) NOPASSWD:ALL visudo 命令使用的是 nano 编辑器 所以修改好了后,ctrl+x,y,回车 回到 customer 用户, sudo su,可以免密进入 root ,说明配置好了 开启 bbr因为内版本在 4.9 以上,可以直接开启 bbr。 修改系统参数12echo "net.core.default_qdisc=fq" >> /etc/sysctl.confecho "net.ipv4...阅读全文

博文 2021-03-01 20:20:31 驱蚊器喵的插座

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

System。后来他在说道 Debian 发行版的时候还曾提到, 「我开发这个版本时的灵感很大程度上来源于 SLS,因为我自己使用 SLS 时我曾对很多地方非常不满。我想着要去改善 SLS,但后来我意识到最好的方法就是从头开始。」 Murdock 在 1999 年那次访谈中曾告诉我: 「开发 SLS 的那个人败就败在他想一个人搞定所有事情。Linux 让我意识到的就是这样做出来的模型永远都不会是最佳的产品。我们真正要做的是找出 Linux 最超前的产品,然后围绕这个型号再打造新的系统。」 简单说,Murdock 的观点就是:Linux 的内完全可以应用到整个操作系统乃至应用上。 如果你想打造一个完整的操作系统,你该如何给员工分工,给他们每一个人都布置相应的任务,最后再拼凑成一个完整的系统呢...阅读全文

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

21款必不可少的Ubuntu桌面应用程序

Atom文本编辑器。 12. Steam Linux Gaming 如果你打算在Linux系统上玩游戏,那么确实值得花一番心思来安装Steam,这是一种大受欢迎的游戏发布平台。 有3000多款Steam游戏适用于Linux,包括众多知名游戏,比如《古墓丽影》、《杀出重围:人类分裂》和《战锤:全面战争》。还有大批的独立游戏和经典游戏值得探究一番。 13. NeoFetch系统信息工具 在寻找一种巧妙的方法来了解你运行的是什么窗口管理器、GTK主题、桌面环境、内和bash版本?你可以点击一大堆菜单来搞个明白,也可以运行一个命令:neofetch。 重要的事先说:你需要先安装这个应用程序,之后才可以运行它;为此,你需要从NeoFetch Github页面下载最新版本。 14. Corebird...阅读全文

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

三个技巧 大幅减少 Docker 镜像体积

? $ docker exec -ti 9d8e97e307d7 sh / # 成功了!现在可以 attach 到正在运行的容器中了。看起来很有希望,但还有一个问题。 Alpine 基础镜像是基于 muslc 的 —— C 语言的一个替代标准库,而大多数 Linux 发行版如 Ubuntu、Debian 和 CentOS 都是基于 glibc 的。这两个库应该实现相同的内接口。但它们的目的是不一样的: glibc 更常见,速度也更快; muslc 使用较少的空间,并侧重于安全性。 在编译应用程序时,大部分都是针对特定的 libc 进行编译的。如果你要将它们与另一个 libc 一起使用,则必须重新编译它们。 换句话说,基于 Alpine 基础镜像构建容器可能会导致非预期的行为,因为标准 C 库是不一样的。你可...阅读全文

博文 2018-09-06 10:50:29 debian.cn

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

架来兼容这种环境。 开发工具 - 在实现框架时,提供尽可能小的摩擦将会使开发人员更快捷。哪些工具可以帮助编码,本地测试端点,以及单元和集成测试的stubbing/mocking?当事情出错时,我们需要能够看到包括内容在内的请求信息。消息格式等因素也可以使调试更容易依赖于工具,例如JSON消息是人可读的,但是二进制消息将需要额外的努力来解码。 成熟度和采用 - 对于初创公司来说,资源是有限的,需要花费在公司的心业务上,而不是修复,测试和增强第三方框架。诸如框架的普及,大规模使用的例子,社区的活跃程度以及框架本身的成熟度等因素都是稳定性的良好指标。需要强调的是,选择一个解决具体问题的框架,而并非选择最新最热的。 多平台支持 - 在真正的微服务思维中,使用最适合其目的的语言编写企业的服务,目前包...阅读全文

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

大起底:揭开亚马逊云计算丰厚利润的秘密 - 电子商务

Kinsella)曾经创办帮助企业优化云计算部署的科技公司“云健康”,公司后来被虚拟机巨头VMware并购。金塞拉分析称,在AWS的数百万客户中,营收和利润并未均匀分布。如果两成的客户贡献了八成的收入,那么主要的盈利来自于剩下的八成客户,他们主要是中小企业。需要指出的是,云计算大客户往往能够获得不菲的折扣。贝尔斯登公司预测,在2019年,亚马逊云计算已经实现了61%的总体毛利率。对于本报道,亚马逊官方目前并未发表评论。心计算:EC2美国科技行业观察人士哈瓦·苏里(Bhavan Suri)表示,EC2(亚马逊弹性计算云,是一个让使用者可以租用云端电脑运行所需应用的系统)是亚马逊云计算最古老的产品,是毛利润和运营利润的发动机。苏里表示,EC2服务的毛利率应该在50%左右。迄今为止,亚马逊并未提供各个云计算产...阅读全文

博文 2021-09-07 11:41:54 cnBeta.COM

Web前端知识体系精简

程会形成一个全局执行环境,执行环境采用栈的方式将待执行任务按顺序依次来执行。 但在浏览器中有一些任务是非常耗时的,比如http请求、定时器、事件回调等,为了保证其他任务的执行效率不被影响,JS在执行环境中维护了一个异步队列(也叫工作线程),并将这些任务放入队列中进行等待,这些任务的执行时机并不确定,只有当主线程的任务执行完成以后,才会去检查异步队列中的任务是否需要开始执行。这就是为什么setTimeout(fn,0) 始终要等到最后执行的原因。关于单线程和异步队列问题请参考:setTimeout(0) 7、异步通讯 Ajax技术 Ajax是浏览器专门用来和服务器进行交互的异步通讯技术,其心对象是XMLHttpRequest,通过该对象可以创建一个Ajax请求。为了防止XSS攻击,浏览器对...阅读全文

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

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

基础架构 下面的小节讨论数据模型的细节以及如何生成内容。不会介绍服务内容的细节,因为我们使用了相对标准的搭建。 数据模型 Prodspec的声明式intent是通过一些抽象建模的,如图5、6所示: 资产(asset):每个asset描述生产环境的一个特定方面分区(partition):组织管理域中的asset。化身(incarnation):表示给定时间点的分区快照。 图5:Prodspec的数据模型 图6:Prodspec里Shakespeare服务的简化视图,LB代表负载均衡器 Asset asset是Prodspec数据模型的心。asset包含给定基础架构提供者某个特定资源的配置。比如,asset可以代表给定集群的资源或者如何配置某个特定job的指令。 在Shakespeare服务...阅读全文

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

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

易双方处理的数据类型非常复杂且在不断演进更迭,交易双方仅根据GDPR的定义或监管机构的指引,很难判断特定类型数据是否属于GDPR管辖的“个人数据”,导致实践中对于“个人数据”这一概念的解释弹性空间极大。例如:通讯网络和设备中(例如心网存储设备)存储或传输的IMSI、IMEI、ISDN等识别号码,虽也可与其它信息结合间接地识别到特定个人,但识别的过程复杂,需利用一定技术手段,并投入较多时间和成本。 这些成本及投入何时是“合理的”,何时是“不合理的”?对于广大交易双方而言很难判定,导致数据的控制者(譬如电信运营商)经常与数据处理者(如通讯设备和运维供应商)之间时常就上述IMSI、IMEI号等数据是否受GDPR管辖这一问题无法达成一致,进而无法在前述DPA《数据处理协议》、SCC《数据跨境转移协...阅读全文

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

1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪一种,需要看我们具体的实现类,在我们实际工作中,用到的最多的就是HDFS(分布式文件系统)以及LocalFileSystem(本地文件系统)了。 在现代的企业环境中,单机容量往往无法存储大量数据,需要跨机器存储。统一管理分布在集群上的文件系统称为分布式文件系统。 HDFS(Hadoop Distributed File System)是 Hadoop 项目的一个子项目。是 Hadoop 的心组件之一, Hadoop 非常适于存储大型数据 (比如 TB 和 PB),其就是使用 HDFS 作为存...阅读全文

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

于理论上的设计,也就是上面4个步骤的确定,一旦设计完成,实现部分就会非常简单。 使用动态规划求解问题,最重要的就是确定动态规划三要素: (1)问题的阶段 (2)每个阶段的状态 (3)从前一个阶段转化到后一个阶段之间的递推关系。 递推关系必须是从次小的问题开始到较大的问题之间的转化,从这个角度来说,动态规划往往可以用递归程序来实现,不过因为递推可以充分利用前面保存的子问题的解来减少重复计算,所以对于大规模问题来说,有递归不可比拟的优势,这也是动态规划算法的心之处。 确定了动态规划的这三要素,整个求解过程就可以用一个最优决策表来描述,最优决策表是一个二维表,其中行表示决策的阶段,列表示问题状态,表格需要填写的数据一般对应此问题的在某个阶段某个状态下的最优值(如最短路径,最长公共子序列,最大价值...阅读全文

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

最全的 DevOps 工具集合

它身上可以找到 Screw.Unit、JSSpec、JSpec 和 RSpec 等诸多单元测试框架的影子。 Cucumber Cucumber 是一种支持行为驱动开发的软件工具。 Cucumber BDD 方法的心是一种称为 Gherkin 的普通语言解析器。它能用客户可以理解的逻辑语言来指定预期的软件行为。 持续集成和部署(CI/CD) CI 工具的存在是为了快速反馈和减少缺陷、等待。目前业务比较常用的 CI 工具包括 Jenkins、CircleCI、Travis CI、Concourse、AWS CodePipeline 和 Azure Pipelines。 Jenkins Jenkins 是一个免费的开源自动化服务器。Jenkins 可用来自动化软件开发过程中非人类参与的工作,基于...阅读全文

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

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

以辅以其他手段保存多个时间点的快照(例如把每天0点的快照备份至其他存储媒介中),作为非常可靠的灾难恢复手段。 使用RDB文件进行数据恢复比使用AOF要快很多。 RDB的缺点: 快照是定期生成的,所以在Redis crash时或多或少会丢失一部分数据。 如果数据集非常大且CPU不够强(比如单CPU),Redis在fork子进程时可能会消耗相对较长的时间(长至1秒),影响这期间的客户端请求。 AOF 采用AOF持久方式时,Redis会把每一个写请求都记录在一个日志文件里。在Redis重启时,会把AOF文件中记录的所有写操作顺序执行一遍,确保数据恢复到最新。 AOF默认是关闭的,如要开启,进行如下配置: appendonly yes AOF提供了三种fsync配置,always/everysec...阅读全文

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