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修复及优化 升级与兼容性 目录...阅读全文
2.7 版本与低版本互操作性的问题上,我们增加了一些兼容性代码,典型如服务治理规则、Package 重命名、注册 URL 简化等。 Package 重命名 com.alibaba.dubbo -> org.apache.dubbo 注册 URL 简化服务治理规则配置 更新说明出处 下载地址: Source code(zip)Source code(tar.gz) 新增功能 Bug修复及优化 升级与兼容性 目录...阅读全文
跳出率 Bounce Rate 是指在只访问了入口页面就离开的访问量与所产生总访问量的百分比。跳出率计算公式: ``` 跳出率 = 访问一个页面后离开网站的次数/总访问次数 ``` 入口页面一般是用户通过搜索关键词,找到你的网站,并访问的页面。 通过观察关键词的跳出率,就可以得知用户对网站内容的认可度,或者说网站是否对用户有吸引力。而网站的内容能够对用户有所帮助,留住用户也可以直接在跳出率中看出来,所以跳出率是衡量网站内容质量的重要标准。...阅读全文
TimescaleDB 1.0 正式发布了,开发团队表示,自 9 月分宣布第一个候选版本以来,Timescale 的工程师团队合并了 50 多个 PR,以加强数据库,提高稳定性和易用性。 今天,TimescaleDB 1.0 宣布正式推出,官方表示该版本已可用于生产环境,是首个支持完整 SQL 和扩展的企业级时序数据库。TimescaleDB 是基于 PostgreSQL 数据库开发的一款时序数据库,以插件化的形式打包提供,随着 PostgreSQL 的版本升级而升级,不会因为另立分支带来麻烦。 TimescaleDB 架构 数据自动按时间和空间分片 (chunk) 更新亮点: 更广泛的可用性改进 后台作业自动化和调度的基础 增强了数据库强化和测试 构建开源监控堆栈:对 Grafana 和...阅读全文
尽管 Linux 桌面操作系统有着很高的生产力和安全性,但其在软件和功能的丰富程度上仍无法与 Windows 10 和 macOS Sierra 相比,比如 Microsoft Office 和 Adobe Photoshop。好消息是,微软刚刚发布了 Skype for Linux 1.13 版本,允许从该平台上发布文本短信。此前,尽管 Google Voice 之类的基于 web的解决方案可以实现同样的功能,但在浏览器上的使用体验并不完美。 在 Skype for Linux 的最新版本中,迎来了如下变动: 支持发送短信; 更新至 Electron 1.4.7; 支持远程群体会话; 改进崩溃报告; 增加对身份验证令牌撤销的支持; 其它bug修复与性能改进。 Skype for...阅读全文
Debian.cn 正式更名为 Debian中国。相比我们之前使用的名字”Debian社区“,这个名字更中性一些,也避免了歧义。 Debian.cn 的内容风格还会和以前保持一致,不会有明显变化,我们会继续重点关注 Debian系统 在生产环境的基础设施上的广泛应用,包括容器化、业务环境、大数据、媒体智能等。 这次一同调整的还有论坛功能。由于论坛中的的内容很少,我们上线了独立的讨论平台 bbs.debian.cn,和主站的账号系统保持独立,并简化了注册。论坛的后台系统使用Discuz! Q 这个刚推出不久的开源的系统,欢迎注册。...阅读全文
开源操作系统年度技术会议(简称 OS2ATC)是为了促进我国操作系统相关教学、研究与产业的发展,加强学术研究,展开跨学科的交流等。本届 OS2ATC 会议 2019 年 12 月 14 日 在深圳鹏城实验室举办,邀请了国内一线的操作系统专家和团队领导围绕如何“开源协作”进行深入探讨。 本次除了邀请操作系统及相关领域的知名专家学者做大会的演讲,还围绕了“内核技术”、“全栈及应用生态”、“编程语言及编译器”、“架构及芯片技术”、“虚拟化技术”等专题进行讨论。会议资料下载地址: 地址一: https://www.atzlinux.com/debian/doc/os2atc2019/地址二:https://debian.cn/files/os2atc2019/...阅读全文
Debian的官方源以稳定为主,所以软件版本相对比较老。dotdeb.org的源更新比较快,里面的软件包也是最新稳定版本,可用于 Debian 的生产服务器,类似 CentOS/RHEL 发行版的 EPEL 源的角色。一些常用的软件包,均可找到较新的版本,例如: Nginx, (1.10+的版本) PHP 7.0,5.6,5.5,包括对应的扩展:php7.0-gd, apcu, imagick, mongo, Pinba, xcache, Xdebug, XHprof MySQL 5.6,Redis等 当前 Dotdeb 支持以下版本, Debian 8.x “Jessie” 和 Debian 7.x “Wheezy“ 两种 CPU 架构:amd64 和 i386 如何使用 Dotdeb...阅读全文
AWS 在 EC2 关机后,不会再对计算资源计费;其他资源 比如EBS、Elastic IP 这些还会产生费用。如果你使用了预留实例,还需要考虑预留实例对计费方式的影响,会按照预留实例的计费标准计费。 这种灵活的计费方式,是 AWS EC2 默认就支持的,相比之下,国内绝大多数云主机厂商是不支持的。在开机、关机时(即主机状态发送转变时),AWS 会收取最少一分钟的计费费用。 如果你关机过程用了20秒,AWS会按照一分钟来收费;如果你关机过程用时 1分30秒,则AWS会按照1分30秒收取费用。很良心吧,很灵活吧。 AWS的文档还是要多看的,计费方式和九年前的AWS变化很大。最新版的文档可以从这里下载: https://docs.aws.amazon.com/AWSEC2/latest...阅读全文
个。 镜像的层就像 Git 的提交(commit)一样。Docker 的层用于保存镜像的上一版本和当前版本之间的差异。就像 Git 的提交一样,如果你与其他存储库或镜像共享它们,就会很方便。 实际上,当你向注册表请求镜像时,只是下载你尚未拥有的层。这是一种非常高效地共享镜像的方式。但额外的层并不是没有代价的。层仍然会占用空间,你拥有的层越多,最终的镜像就越大。Git 存储库在这方面也是类似的,存储库的大小随着层数的增加而增加,因为 Git 必须保存提交之间的所有变更。 过去,将多个 RUN 语句组合在一行命令中或许是一种很好的做法,就像上面的第一个例子那样,但在现在看来,这样做并不妥。 1. 通过 Docker 多阶段构建将多个层压缩为一个 当 Git 存储库变大时,你可以选择将历史提交记录...阅读全文
Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录到远程主机并运行前台程序,那么这个窗口等于就被占用了,想要看一下 CPU 的使用率,就得再连接一次。但是如果在远程主机上运行 tmux,那么就可以开启多个控制台(类似于窗口),相当高效,比方说可以像下面这样: 需要注意的是,这里是在我本地使用 tmux,最好在远程主机也安装 tmux,这样就只需要连接一次。 Hello World 前面提到的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作,下次登录可以查看。其他的功能还有: 窗口切换,每个窗口里还可以分割面板 配置方便,可以使用脚本 类似 vim 的双层操...阅读全文
Chrony 是一个多功能的 NTP (Network Time Protocol) 实现,类 Unix 系统上 NTP 客户端和服务器的替代品。它可以通过 NTP 服务或者类似 GPS 时钟接收器的硬件级参考时钟来同步系统时钟,具有更好的时钟准确度,并且对于那些间歇性互联网连接的系统很有帮助。Chrony 是免费开源的,并且支持 GNU/Linux 和 BSD 衍生版、Solaris 等。 Chrony 有两个核心程序:一个是 chronyd 守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。另一个是 chronyc,它提供一个用户界面,用于监控性能并进行多样化的配置。chronyc 可以在 chronyd 实例控制的计算机上工作...阅读全文
。 我们还可以在其中找到“Create New Document”选项,借此在~/Templates目录中创建一个文档模板并列出现有模板选项。它使用的是用户默认的办公应用,我个人选择了LibreOffice。 8. 多工作区。Cinnamon与其他桌面环境一样提供多桌面功能,并将其称为“工作区”。工作区选择器位于Cinnamon面板中,且会显示每个工作区的窗口缩略图。不过,我发现工作区选择器有时候无法及时跟上窗口的显示位置,所以我通过调整让选择器仅显示工作区数量,而非工作区内的具体窗口。 9. Nemo。大多数桌面都会使用自己的默认应用,Cinnamon也是如此。我个人最喜爱的桌面文件管理器是Krusader,但Cinnamon默认使用Nemo,所以我对它进行了测试。Nemo确实相当出色,界面干...阅读全文
。 Netpoll Netpoll 是字节跳动内部的 Golang 高性能、I/O 非阻塞的网络库,专注于 RPC 场景。 RPC 通常有较重的处理逻辑(业务逻辑、编解码),耗时长,不能像 Redis 一样采用串行处理(必须异步)。而 Go 的标准库 net 设计了 BIO(Blocking I/O) 模式的 API,为了保证异步处理,RPC 框架设计上需要为每个连接都分配一个 goroutine,这在空闲连接较多时,产生大量的空闲 goroutine,增加调度开销。此外,net.Conn 没有提供检查连接活性的 API,很难设计出高效的连接池,池中的失效连接无法及时清理,复用低效。开源社区目前缺少专注于 RPC 方案的 Go 网络库。类似的项目如:evio、gnet 等,均面向 Redis、Haproxy...阅读全文
1.新的问题influxdb目前支持内存型索引inmem及文件型索引tsi1。之前追踪篇将influxd索引修改为tsi1之后,经过一段时间的运行,从监控观察到,由于调用方采用异步队列+批处理的方案将数据写入influxdb,会在某些时刻调用方内部出现数据堆积,指标如图:横坐标: 时间轴,从12-29 00:00 到 12-30 00:00纵坐标: 队列中数据堆积长度,坐标最大值250k,即最大25w个数据堆积从上图可以看到,当天监控出现数次堆积,上午7:00-10:00尤为严重。在堆积时,登录influxdb服务器,查看机器状态如下:top - 09:40:58 up 120 days, 19:18, 1 user, load average: 32.29, 32.32, 29.82...阅读全文
、NVIDIA显卡将加入其中,进度会稍后一些。 五、改善免费Wifi连接 大家外出工作,经常需要连接咖啡店、机场等免费WiFi,新版系统将支持captive portal的系统,连接WiFi更容易。 六、蓝牙和音频 在GNOME桌面环境上,无法通过键盘方式突破音量100%的上限。Ubuntu系统可通过物理键盘突破的限制。采用Gnome为默认桌面后,17.10 开发团队也将解决该问题。 蓝牙音箱设备连接的稳定性、可用性提升。比如在登录系统前可使用蓝牙音箱设备。如对屏幕阅读器有需求的人来说,这个功能将提高系统的使用体验。...阅读全文
-client status 需要查看 sshd 封禁情况可以运行: fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 0 | |- Total failed: 0 | - File list: /var/log/auth.log - Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: 一般针对 OpenSSH 的加固,还可以修改默认的 22 号端口,并且禁止使用 root 帐号远程登录;有了 fail2ban,系统安全系数会明显提高。...阅读全文
在安装 Debian 10 的时候提示没有iwlwifi驱动,因为当时没有安装有 iwlwifi 的驱动盘,跳过后开机发现没有 wifi。这里我们将介绍,有线网正常的状态下,如何下载安装 iwlwifi 驱动,并开启 wifi 。 因为我用的是 Intel Wireless-N 的无线网卡,所以本教程以 Intel Wireless-N 为例说明。如果你使用的是其他厂商的无线网卡,请参考 Debian wiki,查找相应的配置方法。如果不确定无线网卡的型号,可以通过命令 lspci 查询,或者在 dmesg 的命令输出中找到线索。 更新安装源 我们需要添加 non-free 的安装源,到系统中,更新 /etc/apt/sources.list,添加以下记录: deb http...阅读全文
:更新了 42821 个软件包(占 buster 软件包总数的 72%)。而且,由于各种原因,有相当数量的软件包(9519 个,占 buster 软件包总数的 16%)从这次发行中被删除了。您将不会看到这些包有任何更新,而且在包管理软件中它们会被标记为“过时的”;桌面程序和软件包如往常一样,Debian 也提供了多个桌面程序和环境。提供的桌面环境包括 GNOME 3.38,KDE Plasma 5.20,LXDE 11,LXQt 0.16,MATE 1.24,以及 Xfce 4.16。生产力应用也得到了升级,包括办公套件:LibreOffice 已升级到 7.0 版;Calligra 已升级到 3.2 版;GNUcash 已升级到 4.4 版;这次发行包含了许多软件的更新,其中包括:无驱动扫...阅读全文
可以提供一个可选的整型参数,用于设置该channel的缓冲区大小。该值缺省为0,用来构建默认的“无缓冲channel”,也称为“同步channel”。 Channel作为goroutine间的一种通信机制,与操作系统的其它通信机制类似,一般有两个目的:同步,或者传递消息。 2. 同步 c := make(chan int) // Allocate a channel. // Start the sort in a goroutine; when it completes, signal on the channel. go func() { list.Sort() c <- 1 // Send a signal; value does not matter...阅读全文
Redis 6 是有史以来改变最大的 Redis版本,因此即使稳定,也要小心处理,并在投入生产之前对其进行测试,以进行工作量测试。到目前为止,我们从未发现重大问题,但请务必小心。在收集错误报告时,我们将准备尽快发布Redis 6.0.1。 变化如下:除了稳定性之外,RC1和今天之间还有什么变化? 1. 在某些方面对客户端缓存进行了重新设计,尤其是放弃了缓存插槽方法,而只使用键名。在分析了替代方案之后,在其他Redis核心团队成员的帮助下,这种方法最终看起来更好。除此之外,尤其是“广播模式”,我相信它将成为该功能最流行的使用模式之一。 使用广播时,服务器不再尝试记住每个客户端请求的密钥。相反,客户端订阅密钥前缀:每当与该前缀匹配的密钥被修改时,它们就会收到通知。这意味着可广播更多消息(但仅适...阅读全文
"Linux 内核 “社区” 对待安全的优先级并不高,虽然经历了 2000 年代的多次大规模漏洞利用事件但并没有让 Linus Torvalds 本人改变 "A bug is bug" 的哲学,由于 Linux 内核的安全问题逐渐影响到了 Android 和 IoT 设备,一次 华盛顿邮报的曝光促使了 KSPP(Linux 内核自防护项目)的成立。 KSPP 是由 Linux 基金会旗下的 CII(基础架构联盟)管理,其吸纳了来自诸多大厂商(Google, RedHat, Intel, ARM 等)的工程师进行联合工作,可惜的是两年的时间过去了,KSPP 大多时候只是在重复的抄袭 PaX/Grsecurity 的各种特性以获得各自雇主那里的 KPI 和 credit,各种混乱的代码合并到了...阅读全文
的证书颁发机构带来巨大压力。 Hollebeek 称: 将证书寿命迅速缩短到一年,甚至更少,对于许多依赖数字证书保护系统的公司来说,这将带来巨大的成本。这些费用不会换来更加安全的改进,并且这项提案对从事非法活动或冒充合法公司的非法分子不会有任何影响。最主要的一点是,减少证书寿命的任何好处都是属于理论性的,在短期内要付诸实际的话,产生的风险和成本也将难以预测。 该提案于今年早些时候在谷歌员工 Ryan Sleevi 的一次会议上提出,目前仍处于草案阶段,还没有关于何时进行表决的消息。...阅读全文
Go 语言设计者 Robert Griesemer 和 Ian Lance Taylor 近日在 Golang 官方论坛发帖讨论关于泛型及其括号使用的问题。 他们提到很多人表达了对泛型语法的担忧,特别是在类型参数声明和函数实例以及泛型的括号选择方面。 常见的计算机键盘提供了四对单字符对称括号,分别是小括号 ( )、方括号 [ ]、花括号 { } 以及尖括号 < >。基于此,他们解释了目前泛型草案在示例代码中使用小括号的原因。首先,Go 使用花括号来划分代码块、复合字面量(composite literals)和一些复合类型,因此几乎不可能在没有严重语法问题的情况下将花括号用于泛型。至于尖括号,解析器在某些情况下要求 <> 需要 unbounded lookahead。 所以只剩下...阅读全文
在使用 Docker 时,我们可以使用 docker restart container_id 来非常方便的重启容器,但是在 kubernetes 中并没有重启 pod 的命令。有时 Pod 意外终止时,我们希望重启 pod,来进行排障或者尝试恢复服务。这时我们会发现蛋有点疼,没有一个很直观的方式来重启 pod。 这里我总结了几种重启 Pod 的方式,分两种情况讨论如何重启 K8S 中的 Pod,希望对大家有所帮助。 第一种方式:Deployment方式下重启Pod 大多数生产环境,使用的是 Deployment 方式部署应用。这种场景下,我们可以直接删除对应的 Pod,让k8s去完成 pod 重建,命令: kubectl delete pod {podname} -n...阅读全文
、微服务实践、高并发服务优化。 • 提供详细的架构图和实际场景的技术实践,适合学习真实生产系统。📌 3. Airbnb Engineering & Data Science • 网址:https://medium.com/airbnb-engineering • 特点: • Airbnb官方工程博客,详细分析其系统架构、高性能系统设计、云基础设施。 • 内容翔实,实践导向,架构图丰富。📌 4. AWS Architecture Center • 网址:https://aws.amazon.com/architecture/ • 特点: • Amazon官方架构中心,提供各种AWS云原生架构的设计和实施最佳实践。 • 架构图清晰、细节丰富,具有极高参考价值。📌 5. Facebook...阅读全文
CentOS 7.4 发布了。CentOS 是 RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在 RHEL 的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。 自从版本1503(abrt> = 2.1.11-19.el7.centos.0.1)以来,CentOS-7 可以直接向 bugs.centos.org 报告错误。关于该特性可以从这个页面了解更多。 带来各种新软件包其中包括:python-gssapi,python-netifaces,mod_auth_openidc,pidgin 和 Qt5。 SSH1 支持已从 SSH 服务器中删除。所有被认为是不安全的加密协议和算法已被废弃。了解更多可以看 这里and 这...阅读全文
美国当地时间 8 月 16 日(即今天),Debian 在官网发文庆祝诞生26周年。文中说到,26 年前的今天,Ian Murdock 在 comp.os.linux.development 新闻组中宣布完成了一个全新的 Linux 发行版,将其称为"Debian"。 从那天起,Debian 产生了超过 1,288,688,830 行代码,生成了超过 300 个衍生版本,增加了 6155 个已知贡献者,并提交了 975,619 个bug报告。 Debian 在全球拥有数千个用户社区,大家聚集在一起主办 Debian 开发者年度大会,每年在不同的国家举办一次 Debian 开发者年度大会 DebConf,当然,今天在世界各地举办了许多 Debianday 庆祝活动。 现在就去开展一个即兴的...阅读全文
、dynamic_cast、try/ catch、虚拟constexpr 向量和字符串计时:日历、时区支持std::formatstd::spanstd::jthread 预计这些新特性将会对开发者及 C++ 生态产生不小影响,特别是像协程这种巨大的变化。 同时,在此次会议期间,委员会还通过了 C++ 23 计划,其中包括优先考虑模块化标准库、对协程、执行程序和网络的库支持。...阅读全文
-json option, which includes node content in the output In partial mode, Hack no longer assumes that any unknown definitions must be defined in PHP 更新内容较多,详情请参阅 发布主页 。 HipHopVM(HHVM) 是 Facebook 推出的用来执行 PHP 代码的虚拟机,它是一个 PHP 的 JIT(Just-In-Time) 编译器,同时具有产生快速代码和即时编译的优点。...阅读全文
据最新消息,AMD B550芯片组将在5月21日正式发布,但是要到6月16日,各家厂商的B550主板才会开始上市。早有消息称,AMD已经在今年第一季度量产B550、A520芯片组,在第二季度正式发布,之前甚至已有B550主板谍照和规格表曝出。 顺带一说,在那之前还会有新的锐龙处理器面世,但是现在啥都不能说… AMD B550主板最诱人的地方就在于搭配三代锐龙,可以启用来自处理器的24条PCIe 4.0,分配给M.2接口、PCIe插槽,从而支持PCIe 4.0 SSD、显卡,尤其是随着PCIe 4.0 SSD价格越来越低,主流用户也可以体验更加飞一般的速度了。 此外,B550本身相对于B450也有了巨大的提升,比如支持10条PCIe 3.0、两个USB 3.1、十六个USB 2.0,甚至保留...阅读全文
WordPress 开发团队刚刚发布了 WordPress 4.8 正式版,现在已经可以下载了。该版本以爵士乐钢琴家和作曲家 William John “Bill” Evans 的名字命名。WordPress 4.8 的新功能,讲给你提供更多的方式,让你来在网上表达自我和展现品牌。 虽然 WordPress 4.8 都是一些小的改进,但这些改进都是用户们所关注的,由数以百计的开发者共同完成的。现在,我们来一起看看这些关注已久的新功能:链接功能改进;三个媒体挂件(小工具)包括:图片、音频、和视频;文本挂件(小工具)增加了可视化编辑功能;管理后台增加了新模块,显示附近即将举行的 WordPress 活动。 令人激动的挂件更新 图片挂件(小工具) 往挂件里添加图片,现在可以说是非常简单了...阅读全文
来看,DevOps 的采用率从 2015 年到 2016 年增加了约 8%,预计这一数字将在 2019 年大幅增长。 根据 Statista 的报告,很多商业组织正在采用 DevOps,2018 年增长率高达 17%,而 2017 年则为 10%左右。 你可以在 RightScale 上查看完整的报告。Forrester 的报告中也明确提到了 2018 年将是 DevOps 年。我们看到了将影响来年 DevOps 发展的八个事实。 焦点从 CI 管道转到 DevOps 装配线 管道为应用程序提供了从源码控制到生产环境的一套完整的可视化视图。你可以在某个地方看到所有的内容。现在不仅要做 CI(持续集成),还要做 CD(持续交付)。企业正投入时间和精力,以便更多地了解如何自动化完整的软件开发过程...阅读全文
随着 Debian Buster 10.3 的发布,Debian Buster 日趋稳定。如果在生产上使用了 Debian 9 的系统,现在是可以安全的,灰度升级到 Debian Buster 做前期验证了。这里我们整理一下国内较知名的镜像站点,共大家在生产环境中使用。 如何更新系统安装源 一般我们修改 /etc/apt/sources.list 文件,将 Debian 的默认源地址改成新的地址即可,比如将 http://deb.debian.org 改成 https://mirrors.163.com,可使用以下这条命令: sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list 注意...阅读全文
Apache 软件基金会发布了包含许多新特性和改进的 Kafka 3.3.1。这是第一个标志着可以在生产环境中使用KRaft(Kafka Raft)共识协议的版本。在几年的开发过程中,它先是在 Kafka 2.8 早期访问版本中发布,然后又在 Kafka 3.0 预览版本中发布。KRaft 是一种共识协议,可以直接在 Kafka 中管理元数据。元数据的管理被整合到了Kafka当中,而不需要使用像ZooKeeper这样的第三方工具,这大大简化了 Kafka 的架构。这种新的 KRaft 模式提高了分区的可伸缩性和弹性,同时简化了 Kafka 的部署,现在可以不依赖 ZooKeeper 单独部署 Kafka 了。KRaft 使用了Raft共识算法的一种基于事件的变体,因此得名。随 KRaft...阅读全文
索容易许多。 创建大文档集合 MongoDB 乐于把最大 16MB 的文档置于集合中,而 GridFS 设计用于超过 16MB 的大文档。但是,可以容纳大文档并不意味着那是一个好主意。MongoDB 在单个文档的大小为几 KB 时表现最好,处理它们的方式更像宽 SQL 表的行。大文档会导致 多种性能问题 。 使用大数组创建文档 文档可以包含数组。最好是把数组元素的数量保持在四位数以下。如果数组频繁添加,会使得包含它的文档过大,那样, 它在磁盘上的位置就需要移动 ,反过来,这意味着 每个索引都必须更新 。当一个包含大数组的文档重新索引时,由于 每个数组元素都有一个单独的索引条目 ,所以会发生大量的索引重写。此外,这种重新索引在这类文档插入或删除时也会发生。 为了最小化这个问题,MongoDB...阅读全文
的最细粒度的身份验证和授权。虽然服务网格可以提供帮助,但 Kubernetes 安全性仍然是一个复杂而微妙的话题,需要从多个层次进行了解。零信任是一种位于现代安全实践前沿的强大的安全模型。这也是一个容易引起轰动和炒作的术语,因此很难消除噪音。那么,究竟什么是零信任,对于 Kubernetes,它究竟意味着什么?在本文中,我们将从工程的角度探讨什么是零信任,并构建一个基本框架来理解它对 Kubernetes 运维和安全团队等的影响。介绍如果你正在构建现代云软件,无论是采用 Kubernetes 还是其他软件,可能都听说过“零信任”一词。零信任的安全模式变得如此重要,以至于美国联邦政府已经注意到:白宫最近发布了一份联邦零信任战略的备忘录,要求所有美国联邦机构在年底前满足特定的零信任安全标准...阅读全文
。 现在,核心互联网协议的重要改变已经开始了。虽然它们意图与互联网大部分兼容(因为,如果不兼容的话,它们不会被采纳),但是它们可能会破坏那些在协议中没有规定的地方,或者根本就假设那些地方不存在变化。 为什么我们需要去改变互联网 有大量的因素推动这些变化。 首先,核心互联网协议的局限性越来越明显,尤其是考虑到性能的时候。由于在应用和传输协议方面的结构性问题,网络没有得到高效使用,导致终端用户认为性能不能满足要求(特别是,网络延迟)。 这就意味着人们有强烈的动机来演进或者替换这些协议,因为有 大量的经验表明,即便是很小的性能改善也会产生影响。 其次,演进互联网协议的能力 —— 无论在任何层面上 —— 会随着时间的推移变得更加困难,这主要是因为上面所讨论的对网络的非预期使用。例如,尝试去压缩响应的...阅读全文
-bindata/go-bindata 这类第三方开源库来实现。 而从 Go1.16 起,通过 go:embed 就可以快速实现这个功能: import _ "embed" //go:embed hello.txt var s string print(s) 通过对变量 s 声明 go:embed 指令,使其在编译时读取当前目录下的 hello.txt 文件。 最终变量 s 就会输出 hello.txt 文件中的字符串内容。 新增 io/fs 的支持 新增了标准库 io/fs,正式将文件系统相关的基础接口抽象到了该标准库中。 以前的话大多是在 os 标准库中,这一步抽离更进一步的抽象了文件树的接口。在后续的版本中,大家可以优先考虑使用 io/fs 标准库。 调整切片扩容策略 Go1.16 以前的...阅读全文
本文翻译自 Jack Roper 的文章 Kubernetes Best Practice。译者:文章中作者从应用程序开发、治理和集群配置三个方面给出了一些 Kubernetes 的最佳实践,同时翻译过程中也加入了我过往的一些使用经验。有误的地方,也欢迎大家指正。在这篇文章中,我将介绍一些使用 Kubernetes (K8s) 时的最佳实践。作为最流行的容器编排系统,K8s 是现代云工程师掌握的事实标准。众所周知,不管使用还是维护 K8s 复杂的系统,因此很好地掌握它应该做什么和不应该做什么,并知道什么是可能的,将是一个好的开局。这些建议包含 3 大类中的常见问题,即应用程序开发、治理和集群配置。最佳实践目录使用命名空间使用就绪和存活探针(译者注:还有启动探针)使用自动缩放使用资源请求和约...阅读全文
Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源工具,目前已经更新到 v1.3 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。 长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会占用管理员不少的时间。 Cert Manager 是一款致力...阅读全文
(SSL)的进化版本,SSL是由Netscape公司在1990年代研发的。国际互联网工程任务组(IETF)做为一个标准化组织,负责定义该协议,该协议已经历了多次修订。最新版本 TLS1.2 在 2008 年被确立为标准,目前被大多数浏览器和启用 HTTPS 的 web 服务所支持。 在配置正常的情况下,TLS 1.2 会很安全,但如今它却显得有些过时了。在过去几年中,几次引人注目的攻击暴露出该协议的一些漏洞。在计算机安全领域,8年是一段很长的时间,因此 IETF 已经在着手开发该协议的新版本 TLS 1.3。TLS1.3 是一次全面升级,与此前版本相比,它有两个主要优势: 增强安全性 提升速度 增强安全性 过去几年来,大部分针对TLS的攻击都是以该协议90年代遗留下来的残余部分为目标的...阅读全文
今天,Debian开发者兼Ububtu成员Julian Andres Klode宣布,他计划在2017年1月1日关闭对APT资源库的SHA-1支持。业界反对SHA-1(安全散列算法)加密已有多时,其被普遍用于签发数字内容、证书吊销列表(CRL)和数字证书。但到2017年1月1日的时候,事情可能会对浏览互联网的老用户产生影响。 需要指出的是,SHA-1加密也被用于签发基于Debian的操作系统的高级包工具(APT)资源库,比如热门的Ubuntu和Linux Mint。 这些经过SHA-1签名的资源,将于明年年初自动被Ubuntu 16.04 LTS(Xenial Xerus)和Ubuntu 16.10(Yakkety Yak)给拒绝。 Julian Andres Klode在邮件公告中称...阅读全文
在去年年初,SUSE 的开发者向 Linux 内核提交了一个 v2 补丁,该补丁将 ReiserFS 文件系统标记为已弃用,并将会在 2025 年从内核中正式删除它。删除的原因主要是过去十多年该文件系统都不再活跃,并且在现代内核的生产用例中也不太可能再使用。基于差不多的原因,日前开发者也开始着眼讨论 Journaled File-System(JFS)文件系统是否还应该在内核中继续保留的问题。内核开发者 Christoph Hellwig 在邮件列表中表示:不久前,我们已经弃用了 ReiserFS,并计划将其删除。看着 JFS 中的代码,我想知道我们是否也应该这样做。虽然 JFS 不像 ReiserFS 那么复杂,但它的使用率也很低,而且从未成为任何主要发行版中的默认文件系统。1990...阅读全文
今年 1 月 1 日的时候,Python 2.7 正式停止维护,但是实际上还遗留有一个版本 2.7.18 没发布。4月20 日,官方发布了最后的这一个版本,为 Python 2 划下了圆满的句号。 注:Python 2.7 在 2019 年的最后一个版本是 10 月 19 日发布的 2.7.17 版本,在它之后直到 2020 年 1 月 1 日之间产生的问题会合入最后一个版本 2.7.18。 Python 核心开发团队宣布了这一消息,“自 11 年前发布 Python 2.6 以来,Python 2.7 一直处于积极开发中。这些年来,CPython 的核心开发人员和贡献者认真地将 bug 修复应用到 2.7 分支,这是一项艰巨的任务,因为 Python 2 和 3 分支有所不同。”官方感谢...阅读全文
本章将介绍如何在Apollo配置中心中删除已经发布的项目。 专栏目录: 携程 Apollo 配置中心 | 学习笔记 序章 欢迎关注个人公众号: Coder编程 欢迎关注个人网站:https://coder-programming.cn/ 一、前言 之前一直学习SpringCloud, 对于配置中心,一直也是采用的Spring Cloud Config,但是用久了,发现很多地方满足不了要求,同时也感觉很low(个人看法勿喷)。在学习Spring cloud config 的时候也有听到过携程的apollo,但一直没时间去弄。直到昨天看了一张图,如下:使我下定决心去看看携程的apollo配置中心。 这张图也算是综合对比了spring cloud config,netflix archaius...阅读全文
){ pollfds[0].revents = 0; ret = recv(connfd,buff,sizeof(buff)-1,0); printf("receive %d bytes from client: %s \n",ret,buff); } } 由于源码中,我做了比较详细的注释,同时将和select模型不一样的地方都列了出来,这里就不再详细解释了。总体说来,poll模型比select模型要好用一些,去掉了一些限制,但是仍然避免不了如下的问题: 用户态和内核态仍需要频繁切换,因为revents的赋值是在内核态进行的,然后再推送到用户态,和select类似,整体开销较大。 仍需要遍历数组,时间复杂度为O(N)。 epoll模型 如果说select模型和poll模型是早期的产物,在性能上有诸多不尽人意之...阅读全文
>
iptables在Linux发行版本如Centos、Debian、Ubuntu、Redhat等的配置内容基本一致,但是配置方式有所不同。由于工作日常用的是Centos 6.x,它的配置较简单。下面对Debian上配置iptables做一个说明。 配置步骤 使用用户名/密码登录系统 root@localhost:~# 安装iptables root@localhost:~# apt-get install iptables 安装成功后查看iptables端口开放情况 root@localhost:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy...阅读全文
树莓派4B使用国内源(buster版本) 之前一直找的是网上现成的源,结果后面发现树莓派4B早已不是stretch版本,而是buster版本,踩了许许多多坑,希望后来的人不要重蹈覆辙。下面就来手把手教你如何将树莓派4B切换为国内源。 1.使用ssh或者VNC登录到树莓派,然后打开终端,修改软件更新源,执行如下命令: sudo nano /etc/apt/sources.list 2.在第一行复制粘贴以下代码,在这里使用中科大官方镜像源。 deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi !!!(2020年8月18日更新,5月份以来在官网下载的镜像已经是Raspberry Pi...阅读全文
项。 sudo chfn -w 0173-222222 himanshu 问题5:如何验证通过chfn完成的更改? 要验证您通过chfn完成的所有更改是否已成功保存,请使用finger命令。 例如,这是我执行所有前面部分命令后该命令在我的系统上显示的内容。 因此,您可以看到通过chfn所做的所有更改都已保存。 请注意,如果您的系统上未安装finger,请使用以下命令进行安装: sudo apt-get install finger 问题6:如何一次性更改所有信息? 如果要一次更改所有用户相关信息,请使用chfn命令sans any选项(如果要为当前登录用户以外的用户执行此操作,请指定用户名)。 chfn 结论: 无论您只是想要更改相关信息的用户,还是想要为多个用户更改信息的系统管理员...阅读全文