InfraPub 为您找到相关结果 61

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

望的唯一方式是把它直接和另一种类型的数据库如 RDBMS 比较,或者对它有特别的期待。这就像把桔子和叉子比较。数据库系统有它们的用途。最好是理解并领会这些差别。强迫 MongoDB 开发人员按照 RDBMS 的方式做事就太遗憾了,我希望继续看到解决旧问题的有趣的新方法,如确保数据完整性、使数据系统具有从故障和恶意破坏中恢复的能力。 在 4.0 版本中,MongoDB 引入了 ACID 事务处理,这是以创新方式引入重大改善的一个很好的例子。多文档、多语句事务现在是原子的了,它允许开发人员调整用于获取锁的时间,过期挂起事务以及修改隔离级别。 关于作者 Phil Factor(为保护作者去真名),又称数据库摩尔,他有将近四十年的数据库密集型应用程序经验。在 20 世纪 80 年代初的一次展览会上...阅读全文

案例: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

的job,则需要测试的提交应该在克隆的Git历史记录中存在。设置GIT_DEPTH太小的值可能会导致无法运行哪些旧的commits。在job日志中可以查看unresolved reference。你应该考虑设置GIT_DEPTH为一个更大的值。 当GIT_DEPTH只设置了部分存在的记录时,哪些依赖于git describe的jobs也许不能正确的工作。 只抓取或克隆最后的3次commits: variables: GIT_DEPTH: "3" Hidden keys GitLab 8.6 和 GitLab Runner v1.1.1引入。 Key 是以.开始的,GitLab CI 将不会处理它。你可以使用这个功能来忽略jobs,或者用Special YAML features 转换藏键为...阅读全文

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

处理器架构消亡史

扩展到完整的64位体系架构。于是,Alpha架构应运而生。Alpha于1992年末推出,是专为高端台式机,工作站和服务器设计的微处理器架构,这也使得他们成为首批实现64位体系架构的企业之一。Alpha对于产业的贡献或许不是有多少产品采用了这种架构,而是他在理论上为产业的发展提供了一种新思路。有人认为,Alpha,MIPS两种RISC架构都比较早的考虑了64位、和引入了很多超前的微架构设计概念,以至于影响了以后英特尔在微架构(uops)、超线程方面的发展,这些在英特尔处理器微架构设计约能看到Alpha架构的一些影子。除此之外,艾康电脑公司于1983年开始的开发项目——ARM也是值得一提的架构。1980年代晚期,苹果电脑开始与艾康电脑合作开发新版的ARM核心。由于这项目非常重要,艾康电脑甚至于...阅读全文

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

注释、类注释、方法注释,要求都是能准确说明其用法。 ## 设计文档 ## 很多公司或者团队在项目开始前都要求有设计文档,设计是项目实施的第一步,所以在设计文档书写的过程中要求尽可能考虑周全,例如该项目的存储、交互、私…… 好的设计文档应该包含以下几个部分: 1. 设计目标 2. 实现的策略 3. 各种利弊权衡和具体决策 4. 替代方案 5. 各种方案的优缺点 写设计文档的过程也你对整个项目做规划、思考可能出现问题的过程,设计的越详细、思考的越多,未来遇到问题的可能性就会越小。 ## 引导类文档 ## 引导类文档也很常见,一般都是Step by Step的形式。比如我们在使用某个框架或者工具的时候,一般都会有个引导类的文档一步一步帮助你快速上手。 大家写引导类文章大家非常容易犯的一个错误就是...阅读全文

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

Debian 向左:或将迎来根本性改革 - OSCHINA

决定离开贡献18年之久的 Debian。促使他离开的直接原因是,Debian 社区对于是否接受 systemd(一种 init 进程)争执不下。这件事引起了 Debian 内部长达数年的争论,至今仍然没有定论。 当然,systemd 事件仅仅是一个引子,Joey 已经感受到了 Debian 社区背后所藏的某种“病态”。 “ 我第一次感觉到 Debian 的这种(病态),是在 Debian 改变‘ /usr/doc’这一错误的文件保存路径(系统文件的标准要求被保存在‘usr/share/doc’中)的时候,完成这样一个再简单不过的操作更改,Debian 居然花了6年之久。” 在 Joey Hess 看来,这实在太荒诞了。 要知道,Joey 并不是为此离开的第一位前辈。此前,Matthew...阅读全文

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

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

statsmaster:password 3.12 stats hide-version stats hide-version 启用统计报告并藏HAProxy版本报告,不能用于“frontend”区段。默认情况下,统计页面会显示一些有用信息,包括HAProxy的版本号,然而,向所有人公开HAProxy的精确版本号是非常有风险的,因为它能帮助恶意用户快速定位版本的缺陷和漏洞。尽管“stats hide-version”一条就能够启用统计报告,但还是建议设定其它所有的参数,以免其依赖于默认设定而带来非期后果。具体请参照“stats enable”一节的说明。 3.13 stats realm stats realm 启用统计报告并高精认证领域,不能用于“frontend”区段。haproxy在读取realm时会将其...阅读全文

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

提问的智慧 – 全文

么导致了这个问题?仅仅是鼠标光标出问题或者还有其它原因?只在X.org中出现抑或是在6.8.1的版本中?是针对某显卡芯片组还是或者只是其中的 MV1005 型号?一个黑客只需瞄一眼就能够立即知道你遇到的什么问题和解决方案。 为了方便索引查找,你需要正确地用标题来描述你的问题,以便下一个搜索类似主题的人能够迅速定位到你的答案中来,无须再发帖提问。 如果你想在回复中提问,请修改主题名称,以注明你是在问一个问题,例如「Re: 测试」或者「Re: 新bug反馈」这样的信息就不能引起足够的注意,同时,请注意删除与新主题无关的引用内容。 对于论坛消息,请不要直接点击回复(按钮)来开始一个全新的主题索引,这将限制主题的参与者。例如有些论坛允许藏消息,如果你这样做的话,别人就永远看不到你发的消息了。 有时...阅读全文

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

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

和复杂调用情况下(如异步)采样策略的回溯,且无法保证发生每个高耗时,错误操作时能还原整个完整的调用链路。‍ 集成方式:业务和基础框架均采用 Maven 来构建项目,使用 Spring Boot Starter "all in one"开箱即用方式集成,极大降低了集成成本的同时,也给依赖冲突问题埋下了患。‍ 项目迭代层面 迭代周期分化矛盾,与基础框架的集成是当时快速推广落地全链路监控的不二选择,通过这种方式,Java 服务的接入率曾一度接近100%,但在业务高速发展的背景下,基础框架的迭代速度已经远远跟不上业务迭代速度了,这也间接制约了整个监控系统的迭代。 数据治理层面 数据治理成本逐步偏高,由于基础框架和业务系统的迭代节奏天然的不一致,且每个业务系统也有自身的迭代节奏,放眼全网后端服务上看...阅读全文

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

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

序迁出,就很难总结出共同的部分。 工作流也很脆弱。原生工作流有很多关于生产状态的性假设,这会导致不可预期的故障。要避免错误,我们添加了前提条件:金丝雀集群是否服务于真实流量?底层有没有运行中断?但是因为我们需要扩展到数十个基础架构提供者和上百个服务,这些Web的前提条件变得非常tricky。每个工作流都需要知道其他工作流的状态。 交互变成了N²问题,这里N是组成服务基础架构的asset数量。当你更新单个asset时,需要考虑它可能带给别的asset或者工作流的影响。比如,现在是否能够重启缓存,或者是否需要等待另一个缓存稳定了之后?如果需要手动变更某个在线的工作流,有没有哪些别的工作流也需要操作的? — 3 — 我们的方案:Prodspec和Annealing 手动设计每个工作流变得不太可能...阅读全文

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

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

deployments,而背后的复杂性被藏在简单的抽象中。但为了充分理解它为我们提供的价值,我们需要理解它的内部原理。 本指南将引导您理解从 client 到 Kubelet 的请求的完整生命周期,必要时会通过源代码来说明背后发生了什么。 这是一份可以在线修改的文档,如果你发现有什么可以改进或重写的,欢迎提供帮助! 1. kubectl 验证和生成器 当敲下回车键以后,kubectl 首先会执行一些客户端验证操作,以确保不合法的请求(例如,创建不支持的资源或使用格式错误的镜像名称)将会快速失败,也不会发送给 kube-apiserver。通过减少不必要的负载来提高系统性能。 验证通过之后, kubectl 开始将发送给 kube-apiserver 的 HTTP 请求进行封装。kube-apiserver 与...阅读全文

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