InfraPub 为您找到相关结果 484

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

火焰图(flame graph)是性能分析的利器。本文介绍它的基本用法。 一、perf 命令 让我们从 perf 命令(performance 的缩写)讲起,它是 Linux 系统原生提供的性能分析工具,会返回 CPU 正在执行的函数名以及调用栈(stack)。 通常,它的执行频率是 99Hz(每秒99次),如99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。 $ sudo perf record -F 99 -p 13204 -g -- sleep 30 上面的代码中,perf record表示记录,-F 99表示每秒99次,-p 13204是进程号,即对哪个进程进行分析,-g表示记录调用栈,sleep 30则是持续30秒。 运行后会产生一个庞大...阅读全文

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

Golang 操作 Kafka 样例

,可能是先从RSS数据源中抓取文章的内 容,然后将其丢入一个叫做“文章”的topic中;后续操作可能是需要对这个内容进行清理,比如回复正常数据或者删除重复数据,最后再将内容匹配的结返 还给用户。这就在一个独立的topic之外,产生了一系列的实时数据处理的流程。 日志聚合:使用Kafka代替日志聚合(log aggregation)。日志聚合一般来说是从服务器上收集日志文件,然后放到一个集中的位置(文件服务器或HDFS)进行处理。然而Kafka忽略掉 文件的细节,将其更清晰地抽象成一个个日志或事件的消息流。这就让Kafka处理过程延迟更低,更容易支持多数据源和分布式数据处理。比起以日志为中心的 系统比如Scribe或者Flume来说,Kafka提供同样高效的性能和因为复制导致的更高的耐用性保证...阅读全文

博文 2023-01-10 13:46:09 掘金

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

KEYS命令,严格禁止在生产环境中使用) Redis的数据结构和相关常用命令 本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令。本节只对Redis命令进行扼要的介绍,且只列出了较常用的命令。如想要了解完整的Redis命令集,或了解某个命令的详细使用方法,请参考官方文档:https://redis.io/commands Key Redis采用Key-Value型的基本数据结构,任何二进制序列都可以作为Redis的Key使用(例如普通的字符串或一张JPEG图片) 关于Key的一些注意事项: 不要使用过长的Key。例如使用一个1024字节的key就不是一个好主意,不仅会消耗更多的内存,还会导致查找的效率降低 Key短到缺失了可读性也是不好的,例如”u1000flw”比起...阅读全文

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

下一个LTS内核版本确定为 Linux Kernel 4.9

Linux内核维护者Greg Kroah-Hartman在私人Google+发布一条短消息,将Linux Kernel 4.9分支标记为“longterm”,意味着4.9版本将会作为长期支持版本。 事实上关于Linux Kernel 4.9是否是长期支持版本的故事要从2016年8月12日开始说起,当时Greg Kroah-Hartman在Google+上发布信息,说“4.9 == next LTS kernel”;去年9月6日,Greg Kroah-Hartman改变了这个想法,表示将会在Kernel.org网站上保留给4.9当作“长期支持”的权利。 在他的私人博客中写道:“因为很多人滥用这个通知这给我们造成了很大的困扰, 因此我保留是否选择4.9作为长期支持的权利。如是这样,我可能会重...阅读全文

Google用基于Debian的gLinux取代了基于Ubuntu的Goobuntu

了gLinux。 gLinux将遵循滚动发布模式 如你听DebConf17谈话(从12分钟开始),你会发现一些关于Goobuntu和gLinux的细节,比如前者仍然基于Ubuntu 14.04 LTS(Trusty Tahr),后者现在基于即将发布的Debian GNU/Linux 10 “Buster”操作系统,并且遵循滚动发布模式。 那么Google为什么要搬到Debian呢?那么,他们似乎打算推动他们到上游。换句话说,如他们修补任何安全缺陷或修复一些错误,这些将立即在Debian软件库中供所有Debian GNU/Linux用户在他们的计算机上安装。 当然,这对于Debian社区来说是个好消息,对于Linux社区的其他人来说,这也是一个更好的消息,因为Google是Linux操作系...阅读全文

Qt 5.12 将于 11 月发布,或弃用 Alpha/Beta 标签

由于 Qt 5.11 将于下个月月底发布,因此 Qt 开发人员已经开始讨论后续的 Qt 5.12 版本,并计划将于 2018 年年底发布。主管 Qt 发布的经理 Jani Heikkinen 一直在制定 Qt 5.12 的开发日程。关于这方面,Qt 5.12 将会在 8 月 20 日左右进行特性冻结,而最终版本计划在 11 月底发布。 Qt 5.12 有一个值得关注的变化就是停止使用 alpha/beta 版本,取而代之的是只发布“快照 (snapshots)”版本,直到他们准备好发布候选版本。Jani 几天前已经在邮件列表 提出 了有关这些更改的建议。 但也有其他 Qt 开发者表达了他们对从开发周期中移除”alpha” 或 “beta” 标签建议的不满,他们担心,如只是被简单地称为“快...阅读全文

Red Hat Enterprise Linux 8 Beta 已发布

iptables,MySQL 8.0,MariaDB 10.3,PostgreSQL 10 和 9.6,Redis 4.0等等。主要特性有: 简化应用程序开发 —— 通过减少设置和配置工作,可以更快地编写代码 对于刚接触 Linux 的开发者来说,这是最简单的 RHEL 适用于传统和云/容器的应用程序,两者都有许多新工具 已经提供了许多工具来构建和测试应用程序 下载: 有三种方法可以访问 RHEL 8 beta,这取决于与 Red Hat 的现有关系: 当前的Red Hat开发会员可以通过Red Hat Developer下载。 如不是开发会员,只需要在上面的链接注册一下即可,不需要费用。 如是Red Hat Enterprise Linux的合作客户,登录Customer Portal就可以获取客户...阅读全文

博文 2018-11-17 21:01:26 debian.cn

使用 cURL 对Web请求进行性能测试

在做 Web 开发的时候,经常需要对 Web Page 或者 REST-ful API 做简单的 Benchmark。本文将介绍如何使用 cURL 进行简单快速的性能评测。本文内容分为以下两部分: 使用 curl 查看加载时间 使用 curl -w 查看更多的网络情况 使用 curl 查看加载时间 curl -s -w "%{time_total}\n" -o /dev/null http://www.github.com/ 1.492 可以看到请求时间为 1.492 秒。此时: -s, --silent: 让 curl 保持静默模式,不会输出进度条 -w "%{time_total\n}":输出使用时间 -o /dev/null: 这个参数用来隐藏 response 的内容 如使用...阅读全文

博文 2018-11-28 18:40:47 debian.cn

W3C 宣布:WebAuthn 成为正式 Web 标准

万维网联盟(W3C)与 FIDO 联盟近日宣布,Web 认证(Web Authentication,简称 WebAuthn)现已成为正式 Web 标准。 WebAuthn 于 2015 年 11 月由 W3C 和 Fido 联盟宣布,现已成为网上无密码登录的开放标准。它由 W3C 贡献者支持,其中包括 Airbnb、阿里巴巴、苹、谷歌、IBM、英特尔、微软、Mozilla、PayPal、软银、腾讯和 Yubico。 WebAuthn 允许用户使用生物特征、移动设备或 FIDO 安全密钥登录在线帐户,而不是在账号密码框中键入一串串字符。Android 和 Windows10 已经支持 WebAuthn。浏览器方面,谷歌 Chrome、Mozilla Firefox 和 微软 Edge 浏览...阅读全文

博文 2019-03-05 09:03:12 debian.cn

谷歌多项服务大规模宕机:涵盖YouTube、Gmail等

本周日,谷歌在全球范围内遭遇了大规模中断,包括Gmail、YouTube和Google Drive在内基于谷歌云架构服务的诸多谷歌服务均受到影响。本次宕机北京时间6月3日凌晨2点58分开始,用户访问谷歌服务出现各种错误提醒,并且用户无法访问电子邮件、上传YouTube视频等。 根据谷歌官方状态页面显示,包括Gmail, Calendar, Drive, Docs, Sheets, Slides, Hangouts, Meet, Chat和Voice在内的谷歌服务均无法使用。那些依赖于谷歌云架构的第三方服务同时也受到影响,目前谷歌官方并没有完全恢复的预估时间,也没有公布关于本次宕机事件的根本原因。 苹的iCloud服务也受到轻微影响,苹报告称有不到1%的用户出现了响应时间低于正常值的情况...阅读全文

博文 2019-06-03 14:03:32 debian.cn

基于 Debian 的 MX Linux 19.1 正式版发布

你想要尝试下更有新鲜感的 GNU/Linux 系统,那么不妨来体验下最新发布的MX Linux 19.1版本更新版。 MX Linux同样是一款非常出色的GNU/Linux发行版本,而且在社区中的人气也处于快速升温状态,不过在普通用户群体中的知名度还不是很高。MX Linux基于Debian,并使用Xfce轻量级桌面环境,预装Firefox、LibreOffice等卓越应用程序。 MX开发团队今天表示:“我们非常欢迎你来使用MX 19.1版本。MX-19.1是MX-19分支的全新版本,包含了大量的BUG修复和软件更新。如你已安装了MX-19,那么不需要重新安装。所有软件均可通过常规更新渠道获得更新。” 开发团队进一步表示:“由于使用此更新版本的用户(使用更新的硬件,尤其是较新的AMD...阅读全文

Bash Shell 中的 PROMPT_COMMAND

; echo $y; }? 于是msg=$(history 1 | { read x y; echo $y; });,$msg 变量总是表示当前执行的命令? 上面是我的理解,结是明显的,就是 $msg 变量保存的是 bash 最后执行的命令。 但还是觉得讲不明白,history 1 和管道结合还是感觉没太理解。 如那个高手看到了,麻烦指点下到底怎么理解它。...阅读全文

https:// 和 www 将在 Chrome 83 中重返地址栏

中提供了一个内置选项,可通过启用它来显示网页完整 URL。 具体操作方式如下: 使用 Chrome 83 Canary 或更高版本;前往 chrome://flags 页面;加载 chrome://flags/#omnibox-context-menu-show-full-urls; 选择启用,然后重新启动浏览器;重新启动 Chrome 后,访问任意网站,在 Omnibox 中选择域,然后右键单击并选中 “Show URL” 选项,最后单击网页上的任何其他区域以恢复 URL 的默认状态。 不得不说这个设计看起来有点“蛋疼”,这效和双击地址栏没多大差别吧?还是等Chrome 83 发布后看看效。...阅读全文

博文 2020-03-22 09:21:25 debian.cn

微服务网关 APISIX 发布新版本 0.9

流量,也可以处理服务间的东西向流量。它是基于 Nginx 和 etcd 来实现,和传统 API 网关相比,Apache APISIX 具备动态路由和插件热加载,特别适合微服务体系下的 API 管理。 这次发布的0.9版本,带来了很多新特性: 支持使用 Tengine 来运行 APISIX增加了对开发人员更友好的高级调试模式配合 redis,实现集群内限流限速功能新增 URI 重定向插件使用全新的 jsonschema,性能提升一个数量级启用 HTTP2 并支持设置 ssl_protocols 加入 Apache APISIX 如你希望使用修改任意配置都无需重启的 web 服务器,如你希望使用代码简洁、云原生友好的微服务网关,那么 Apache APISIX 就是你不二的选择。 你可以加入...阅读全文

博文 2019-11-27 20:17:00 debian.cn

Vultr最新活动 新用户免费送50美元 有效期半年 最低2.5美元/月

.1000MB.bin 东京(日本) http://hnd-jp-ping.vultr.com/vultr.com.1000MB.bin 注意:一个支付方式,比如一个paypal,或者一张信用卡,那就只能注册一个账号,而且只能给这个账号付款,你如用不同的邮箱去注册多个账号,然后用这个paypal去付款,最后的结是这个paypal付过款的所有在vultr的关联账号会被官方通杀,不退款!...阅读全文

博文 2017-06-19 16:54:34 debian.cn

树莓派4B修复USB

树莓派4B因为性能的巨大提升,采用电源性能更好的 type c 作为供电口。令人不可思议的是树莓派4B的 USB-C 居然缺少一个 5.1k 欧姆的电阻:原本有两个电阻,分别是R1和R79,结变成了共用一个电阻。于是所有带有 e-mark 的 type c 电源(可以简单的理解为pd标准的电源)连接树莓派4B的时候都会被当作非供电设备,比如耳机等。 树莓派4B的初始版本是v1.1,包括 1G/2G/4G,revision code 分别是a03111 / b03111 / c03111 。当时树莓派基金会只表示会在后期修复这个硬件bug,但是并没有明确的时间。但是在2019年12月时,已经有明确的案例报道4G版本的树莓派4B已经有v1.2了,这个版本已经增加了电阻。pd标准的...阅读全文

博文 2020-01-28 11:17:21 C供电问题的新版已出货

Web前端知识体系精简

,但Javascript在函数Function对象中建立了原型对象prototype,并以Function对象为主线,从上至下,在内部构建了一条原型链。 简单来说就是建立了变量查找机制,当访问一个对象的属性时,先查找对象本身是否存在,如不存在就去该对象所在的原型连上去找,直到Object对象为止,如都没有找到该属性才会返回undefined。 因此我们经常会利用函数的原型机制来实现JS继承。关于函数原型链可参考博客:JS原型对象和原型链 2、函数作用域 函数作用域就是变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。在JS中没有会块级作用域,只有函数作用域,因此JS中还存在着另外一种怪异现象,那就是变量提升。关于作用域的介绍请参考博客:函数的作用域和作用域链 3、函数指针...阅读全文

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

细数k8s支持的4种类型的container - 侃豺小哥

:9f1003c480699be56815db0f8146ad2e22efea85129b5b5983d0e0fb52d9ab70 Port: Host Port: Command: sh State: Running Started: Thu, 29 Aug 2019 06:42:21 +0000 Ready: False Restart Count: 0 Environment: Mounts: ... 可以使用以下命令连接到新的临时容器: kubectl attach -it example-pod -c debugger 如启用了进程命名空间共享,则可以查看该 Pod 所有容器中的进程。 例如,运行上述 attach 操作后,在调试器容器中运行 ps 操作: # 在 "debugger" 临时容器内中运行此 shell 命令 ps auxww 运行命令...阅读全文

博文 2021-08-20 11:45:32 博客园

WebAssembly:无需容器的 Docker (下)

解在 Docker + Wasm 背景下的 Wasm container 有什么好处以及如何运行一个服务 WordPress 的 php.wasm 镜像。动手示例让我们开始吧! 在动手示例中,我们将使用编译为 Wasm 的 PHP 解释器。 我们会:构建一个 Wasm 容器。比较 Wasm 和原生二进制文件。比较传统容器和 Wasm 容器。展示 Wasm 的可移植性前期准备如想在本地重现这些示例,你需要使用以下部分或全部内容来准备你的环境:WASI SDK - 从构建 C 代码构建 WebAssembly 应用程序PHP - 为了比较而运行本机 PHP 二进制文件WasmEdge Runtime - 运行 WebAssembly 应用程序Docker Desktop + Wasm (本文写...阅读全文

博文 2023-01-03 06:39:46 spider

批量ssh时,如何自动 kill 超时的ssh链接?

除了 ConnectTimeout 参数外,我们还可以在外部包装一层, 当 ssh 执行超时时,自动 kill 掉超时的 ssh 链接,样例如下: $ cat /tmp/ip`; do echo -n ++++++++++++++ $i\ ; timeout -s 9 3s ssh -o ConnectTimeout=2s -o ConnectionAttempts=1 $i md5sum /etc/resolv.conf ; done 这里 timeout 的含义是,如3s没有返回,就发送signal 9,结束进程。...阅读全文

健康学习到150岁 - 人体系统调优不完全指南

去年 5 月曾经写了一篇文章介绍了下 [Lex Fridman 大佬的日常生活安排](https://zhuanlan.zhihu.com/p/371254789) ,后续我也根据他的方法对自己的日常生活做了一系列规范和改进。这一年整体实行下来,效还是非常显著的,本文的最后会对我的一些实践以及借助的工具做一些分享。...阅读全文

Node.js Vs. PHP:你应该选择哪一个

PHP 是一种编程语言,Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js VS PHP,哪一方可以赢得这场战争取决于你构建的网站类型。比方说,如你想构建一个实时的聊天应用程序,那么选择 Node.js 是明智的,因为它可以轻松处理大量的客户端请求。但是,这并不意味着PHP 不可以,请看完 Node.js VS PHP 后再决定用谁构建你的网站。 1.性能: 在性能方面,Node.js 显然赢了这一局。由于 Node.js 遵循事件驱动的非阻塞I/O模型,与传统的后端技术相比,Node.js 能够处理大量的服务器请求。PHP 遵循一个阻塞模型,其中在服务器端创建多个线程来处理多个客户端请求,如代码没有被优化,它会导致高服务器负载和响应时间...阅读全文

博文 2017-12-23 23:15:39 debian.cn

如何在 Linux 上安装 Intel 微代码固件

微代码就是由 Intel/AMD 提供的 CPU 固件。Linux 的内核可以在引导时更新 CPU 固件,而无需 BIOS 更新。处理器的微码保存在内存中,在每次启动系统时,内核可以更新这个微码。这些来自 Intel/AMD 的微码的更新可以去修复 bug 或者使用补丁来防范 bug。 如你是一个 Linux 系统管理方面的新手,如何在 Linux 上使用命令行方式去安装或者更新 Intel/AMD CPU 的微码固件呢? 如何查看当前的微码状态 以 root 用户运行下列命令: # dmesg | grep microcode 输出如下: 注意,你的 CPU 有可能出现没有可用的微码更新的情况。这时它的输出可能是如下这样的: [ 0.952699] microcode: sig...阅读全文

博文 2018-03-07 19:37:47 debian.cn

Stackstorm 入门介绍

发布到IM中,比如 HipChat、JIRA 或者 Slack 等。 自动修复 - 识别和验证OpenStack计算节点上的硬件故障,正确排空实例并向管理员发送关于潜在停机时间的电子邮件,但如出现任何问题 - 冻结工作流程并呼叫PagerDuty唤醒人员。 持续部署 - 与Jenkins一起构建和测试,配置新的AWS群集,基于NewRelic的应用程序性能数据,打开负载均衡器的一些流量,以及前滚或回滚。 Stackstorm工作原理 主要组件角色: 传感器(Sensors) 用于分别接收或监视事件的入站或出站集成的Python插件。 当来自外部系统的事件发生并由传感器处理时,StackStorm触发器将发射到系统中。 触发器(Triggers)外部事件的StackStorm表示形式...阅读全文

Prometheus 常用 PromQL 语句样例

PromQL 是 Prometheus 提供的一个函数式的表达式语言,可以使用户实时地查找和聚合时间序列数据。表达式计算结可以在图表中展示,也可以在 Prometheus表达式浏览器中以表格形式展示,或者作为数据源,以 HTTP API 的方式提供给外部系统使用。PromQL 虽然以 QL 结尾,但是它不是类似 SQL 的语言,因为在时间序列上执行计算类型时,SQL 语言相对缺乏表达能力。而 PromQL 语言表达能力非常丰富,可以使用标签进行任意聚合,还可以使用标签将不同的标签连接到一起进行算术运算操作。内置了时间和数学等很多函数可以使用 选择序列选择指定指标名称的序列最新样本: my_metric_name选择指定指标名称序列5分钟的样本范围: my_metric_name[5m]筛...阅读全文

博文 2021-02-09 11:07:15 51CTO博客

Systemd 及 Service 文件含义解析

# graceful stop. Normally, Systemd sendsSIGTERM signal right after the # ExecStop, which would kill httpd. We aresending useless SIGCONT here to give # httpd time to finish. KillSignal=SIGCONT PrivateTmp=true [Install] WantedBy=multi-user.target ``` 这个文件由三个部分组成:Unit、Service、Install。 [Unit] 主要是为了解决依赖关系。常见的添加 Requires、After,如这个依赖是可选的,那么是 Wants、After。依赖关系通常被用...阅读全文

博文 2021-02-17 10:02:50 joseph

高性能缓存服务器 Nuster

义一个 cache filter, 另外cache-rule也需要添加。 可以为多个代理添加,并单独设置某个代理的缓存是否开启。 如定义了多个 filter,需要把 cache filter 放在最后。 cache-rule syntax: cache-rule name [key KEY] [ttl TTL] [if|unless condition] default: none context: backend, listen 定义缓存规则。可以同时定义多个,但是需要注意顺序,匹配则会停止测试。 acl pathA path /a.html filter cache cache-rule all ttl 3600 cache-rule path01 ttl 60 if pathA...阅读全文

博文 2017-12-15 22:17:31 debian.cn

aptitude 与 apt

包列表是最新的。apt-get install packagename——安装一个新软件包(参见下文的 aptitude )apt-get remove packagename——卸载一个已安装的软件包(保留配置文件)apt-get –purge remove packagename——卸载一个已安装的软件包(删除配置文件)dpkg –force-all –purge packagename 有些软件很难卸载,而且还阻止了别的软件的应用 ,就可以用这个,不过有点冒险。apt-get autoclean apt会把已装或已卸的软件都备份在硬盘上,所以如需要空间 的话,可以让这个命令来删除你已经删掉的软件apt-get clean 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用...阅读全文

博文 2021-01-28 17:50:09 get 的区别与联系

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

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

Linux系统诊断-内存基础

数。从而达到“写资源”合理利用的效。然而,free命令所展示的buffer和cache 有点狭义的意思——free展示的buffer表示 块设备所占用的缓存 、free展示的cache表示普通文件占用的the page cache(缓存页) 。总之,buffer和cache使用的内存都是用来加速Linux读写性能,如有新的进程需要内存,系统会将buffer和cache占用的内存回收,并重新分配给进程使用。2.4 其他内存概念RSS & VSZ & PSS & USSRSS(Resident Set Size):进程实际使用的物理内存大小,包括sharedMem。VSZ(Virtual Memory Size):进程所有能够访问到的内存大小,包括因为缺页中断,被swap出去的内存大小,以及...阅读全文

博文 2021-02-11 14:22:42 SegmentFault 思否

SVN切换分支用法汇总

参考这些命令,来更好地管理自己的代码仓库。1. svn switchsvn switch URL [PATH] 该命令的作用是将工作副本切换到URL的版本。如指定了PATH,则该命令会将PATH指定的目录切换到URL的版本。如省略PATH,则该命令将当前工作目录切换到URL的版本。2. svn checkoutsvn checkout URL [PATH] 该命令的作用是将URL指定的版本库checkout到PATH指定的本地目录。如省略PATH,则该命令会在当前目录下创建一个与URL同名的本地目录,并在其中checkout版本库。3. svn listsvn list URL 该命令的作用是查看URL指定的版本库中的文件和目录。4. svn movesvn move old_URL...阅读全文

博文 2023-06-09 14:22:35 infras

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

Python的闭包和装饰器

什么是装饰器? 装饰器(Decorator)相对简单,咱们先介绍它:“装饰器的功能是将被装饰的函数当作参数传递给与装饰器对应的函数(名称相同的函数),并返回包装后的被装饰的函数”,听起来有点绕,没关系,直接看示意图,其中 a 为与装饰器 @a 对应的函数, b 为装饰器修饰的函数,装饰器@a的作用是: 简而言之:@a 就是将 b 传递给 a(),并返回新的 b = a(b) 栗子: 上面使用@dobi来表示装饰器,其等同于:qinfeng = dobi(qinfeng)因此装饰器本质上就是个语法糖,其作用为简化代码,以提高代码可读性,运行上段代码的结为: 解析过程是这样子的: 1.python 解释器发现@dobi,就去调用与其对应的函数( dobi 函数) 2.dobi 函数调用前要指...阅读全文

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

Debian 10 Buster 正式版即将发布

Debian 10 Buster 即将发布。第一个发布候选版已经发布,我们预期可以在接下来几周内,会见到最终版。如你期待对 Debian 10 Buster 的新版本有所期待,那么让我告诉你这个版本里面会有什么。 Debian 10 Buster 发布计划 Debian 10 Buster 的发布日期并没有确定。为什么这样呢?不像其他分发版,Debian 并不基于时间发布。相反地它主要关注于修复 release-critical bug。发布版重要 Bug 要么是严重的安全问题(CVE),要么是一些其他阻止 Debian 发布的严重问题。 Debian 在它的软件归档中分为三个部分,叫做 main、contrib 和 non-free。在这三者之中,Debian 开发者和发布管理者最关心...阅读全文

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

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

网线即可交换机或路由器,以便将所有树莓派连接到一个内网中 安装的大部分工作都依赖网络,因此还需要能访问公网网络。 集群概览 在这个集群里,我们会使用三个树莓派。其中一个树莓派作为主节点,我们将它命名为 kmaster,并为其分配一个静态 IP 192.168.0.50(注:假设使用的私有网段是 192.168.0.0/24),而另外两个树莓派作为工作节点,分别命名为 knode1 和 knode2,也分别分配 192.168.0.51 和 192.168.0.52 两个 IP 地址。 当然,如你的内网网段和我的不一样,注意 IP 与集群个节点角色的对应关系。 为了能通过主机名直接访问节点,我们会更新每个节点的 /etc/hosts 文件,记录IP到主机名的对应关系: echo -e...阅读全文

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

项目总结报告应该怎么写

每次项目进度都很紧张、项目发版时间总是一延再延、每个版本bug数量堆积成山、测试期间各种bug总是层出不穷、临近上线发现严重bug,如项目经理总是被这些问题围绕,那么项目总结迫在眉睫。项目经理如何进行项目总结才能让项目顺利进行,让领导一看就喜欢,今天把经验分享给大家,帮助你做好项目总结。总结的思维模式想写好一份项目总结,总结人员必须具备一定的结构化思维,对问题、数据进行结构分析,且能够通过结构化思维表达出来。结构化思维具备以下四个特点。​结论:问题比较多的时候,要进行抽象归纳,做到抓大放小,先解决当前最主要的问题。总结的目的✤对项目进行复盘,发现项目中存在的问题,针对问题找到根本原因并提出解决方案;✤提高项目质量,让项目“健康”前行;✤通过数据衡量当前版本的质量,对项目整体情况进行评估...阅读全文

DevOps 越来越流行,2019 年这八大趋势值得关注

。 在 2019 年,将会发生从 CI 管道到 DevOps 装配线的转变。DevOps 装配线专注于自动化和连接多个团队执行的活动,例如开发人员的 CI,运维人员的基础架构配置和配置管理,测试人员的测试自动化,SecOps 的安全补丁,发布负责人的语义版本控制和部署到多种环境,等等。 下图展示了单个应用程序或服务的典型装配线: 自动化将成为主要焦点 关于 DevOps,我们谈论了很多自动化方面的内容。如可能的话,零接触(zero-touch)自动化就是未来的发展方向。这并不是说你一定要自动化一切,只是说如有必要,你就应该能够做到。了解 DevOps 周期的六个“C”,并确保在这些阶段之间应用自动化,这才是关键,这将是 2019 年的主要目标。 测试人员要学习编码 DevOps 对知道如何编...阅读全文

博文 2018-12-10 22:49:57 debian.cn

六个开源软件开发的潜规则

代码、撰写文档、修正错误。所有的这些不受待见的任务在一个健康的社区中都是必要的。 为什么要在优雅地写代码前做这些呢?这是一种信任,更重要的是,不要只关注自己开发的功能,而是要关注整个社区的动向。 博闻强识,敦善不怠 当你在某个社区中建立起自己的声望,那么很有必要全面了解该项目和代码。不要停留于任务状态上,而是要去钻研项目本身,理解那些超出你擅长范围之外的知识。不要只把自己的理解局限于开发者,这样会让你着眼于让你的代码有更大的影响,而不只是你那一亩三分地。 打个比方,你已经完成了一个网络模块的测试版本。你测试了一下,觉得不错。然后你把它开放到社区,想要更多的人测试。结发现,当它以特定的方式部署时,有可能会破坏安全设置,还可能导致主存储泄露。如你将代码视为一个整体时问题就可以迎刃而解,而不是...阅读全文

博文 2017-05-20 10:27:11 debian.cn

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] 作用 : 以...阅读全文

Ubuntu 17.04(Zesty Zapus)正式版发布

今天,2017 年 4 月 13 日,Canonical 官方发布了 Ubuntu 17.04(Zesty Zapus)的最终版。自从去年十月发布 Ubuntu 16.10(Yakkety Yak)起,它已经开发了将近 6 个月。 如直到今天,你一直在你的电脑上使用 Ubuntu 16.10,那么是时候升级到 Ubuntu 17.04 了,它是一个强大的发行版,“内外兼修”。它由最新的稳定的 Linux 4.10 内核驱动,并使用最新的基于 X.org 服务器 1.19.3 和 Mesa 17.0.3 的图形 Stack 进行配备。 上面提到的三个新技术,是那些使用 AMD 的 Radeon 显卡来玩游戏的人们需要立刻升级到 Ubuntu 17.04(Zesty Zapus)的唯一原因...阅读全文

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

如何在一个U盘上安装多个Linux发行版

本教程介绍如何在一个 U 盘上安装多个 Linux 发行版。这样,你可以在单个 U 盘上享受多个现场版live Linux 发行版了。 我喜欢通过 U 盘尝试不同的 Linux 发行版。它让我可以在真实的硬件上测试操作系统,而不是虚拟化的环境中。此外,我可以将 USB 插入任何系统(比如 Windows 系统),做任何我想要的事情,以及享受相同的 Linux 体验。而且,如我的系统出现问题,我可以使用 U 盘恢复! 创建单个可启动的现场版 Linux USB 很简单,你只需下载一个 ISO 文件并将其刻录到 U 盘。但是,如你想尝试多个 Linux 发行版呢?你可以使用多个 U 盘,也可以覆盖同一个 U 盘以尝试其他 Linux 发行版。但这两种方法都不是很方便。 那么,有没有在单个...阅读全文

博文 2017-10-18 13:42:20 debian.cn

Harbor项目发布v1.7 2018圆满收官

2018年,Harbor开源镜像仓库项目取得了长足的进步,硕累累:全年共发布了5个大版本,28 个小版本,社区代码贡献者超过110名,Github 上的星星从年初 3000+ 增至 6400+。全球范围内,将 Harbor 应用于生产系统的用户更是数以千计。 Harbor 开源项目于今年8月捐献给云原生计算基金会(CNCF),成为首个源创于中国的CNCF项目。 不久前,Harbor在中国首届 KubeCon + CloudNativeCon 上,再度晋级,成为 CNCF 第19个孵化级(incubating)项目,项目团队还登上大会主场舞台,和用户分享这一激动人心的历史时刻。于此同时,该大会上,Harbor 社区还联合 CNCF 举办了 Harbor 社区线下活动,并为 Harbor 项...阅读全文

博文 2018-12-30 09:35:15 debian.cn

Golang 之禅: 如何写优质代码

减少耦合的操作,需要通过提供类型需要的依赖项作为该类型上的字段,而不是使用包变量。 简单性很重要 简单性不是老练的代名词。简单并不意味着粗糙,它意味着可读性和可维护性。如可以选择,请遵循较简单的解决方案。 编写测试以确认包 API 的行为 软件包的 API 是与使用者的一份合约,不管先后,不管多少,一定要进行测试。测试是确定合约的保证。要确保测试使用者可以观察和依赖的行为。 如你认为速度缓慢,先通过基准测试进行验证 以性能之名会犯下许多危害可维护性的罪行。优化会破坏抽象、暴露内部和紧密耦合。如要付出这样的代价,请确保有充分理由这样做。 节制是一种美德 适度使用 goroutine、通道、锁、接口与嵌套。...阅读全文

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

分布式 NewSQL 数据库 TiDB

TiDB 3.1.0 GA 版本现已发布,该版本的更新集中在 Bug 修复。具体的更新有如下内容: 兼容性变化 TiDB支持 TiDB 在启动服务时,在开启 report-status 配置项情况下,如发现 HTTP 监听端口不可用,则直接退出启动 #16291ToolsBackup & Restore (BR)BR 不支持在 3.1 GA 版本之前的 TiKV 集群上进行恢复 #233 新功能 TiDB支持在 explain format = "dot" 中展示 coprocessor 任务的信息 #16125通过 disable-error-stack 配置项减少日志的冗余 stack 信息 #16182Placement Driver (PD)优化热点 Region 调度...阅读全文

博文 2020-04-18 22:05:02 3.1.0 发布

Saltstack极高危漏洞: 可获取master权限

这两天开源配置管理工具 saltstack 爆出了CVSS得分为10分的漏洞。如你对CVSS的评分没有概念,那么前几年震惊互联网的 openssl心脏滴血漏洞,CVSS base评分是5.0,由此可知这次爆出来的 saltsatck 漏洞是多么严重。 漏洞信息: 该漏洞是 F-secure 研究人员在3月份发现的,目前该漏洞已经在最新版本中修复。本次极高危漏洞,是由两个不同的漏洞引起的,一个是身份验证绕过漏洞 CVE-2020-11651,一个是目录遍历漏洞没有过滤掉不受信任的输入 CVE-2020-11652,从而导致攻击者可以不受限制的访问 salt-master 的整个文件系统。 攻击者获取salt-master的权限后,便可以控制整个被salt-master管理的数据中心的各主机...阅读全文

博文 2020-05-05 18:32:44 debian.cn

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

经过 3 年的开发,17 个 alpha 版本,2 个 beta 版本,超过 7500 个提交,以及来自 350 位不同开发者的贡献,OpenSSL 3.0 终于正式发布了。OpenSSL 1.1.1 以来的主要变化主要版本开发者可以从这里下载 OpenSSL 3.0,并升级你的应用程序使之兼容。OpenSSL 3.0 是一个大版本升级,并不完全向后兼容以前的版本。大多数使用 OpenSSL 1.1.1 的应用程序仍然可以正常工作,只是需要重新编译(可能会有关于使用废弃的 API 的编译警告)。还有一些不能完全兼容的应用可能需要进行修改才能正确编译和使用。如应用程序需要利用 OpenSSL 3.0 中的一些新功能(例如 FIPS 模块),也需要对应用进行更改。许可证变更在以前的版本中...阅读全文

OpenJDK 14 性能提升,但 OpenJDK 8 仍是王者

工作负载。 测试环境以及测试机器配置: 首先通过使用 Java 2D 基准测试对 Java 图形管道的性能进行压测,可以看到文本渲染性能一直稳步提升,直到第 12 版达到最高点,然后逐渐下降为目前 13 和 14 的水平,与 OpenJDK 8 比较相似。 而在 Java 2D 的图像渲染性能方面,它们的水平基本保持一致,但是 OpenJDK 14 以微弱的的性能优势成为了最好性能的那个。 这里还测试了使用矢量图形的渲染效,水平基本保持一致。 通过进行非常基本的 Java SciMark 微基准测试,可以看到 OpenJDK 8 目前为止是最快的,并且自 OpenJDK 9 至 14 以来,性能基本上持平。OpenJDK 的运行速度约为 OpenJDK 8 的 88%。 通过使用 Java...阅读全文

博文 2020-03-22 08:46:01 debian.cn

Go 1.9 的新特性介绍

可能有问题。自go 1.6之后, 并发地读写map会报错,这在一些知名的开源库中都存在这个问题,所以go 1.9之前的解决方案是额外绑定一个锁,封装成一个新的struct或者单独使用锁都可以。 群众的呼声是响亮的,并发map在项目中大量使用,所以Go 1.9中在包sync加入了新的map, 查询、存储和删除都是平均常数时间,可以并发访问。 Monotonic Time 先前的time包的实现都是基于wall time的,但是当机器的时钟调整后会有问题。 比如在计算duration的时候,如时钟往回拨,可能导致end时间比start时间还早。 所以Go 1.9使用monotonic Time来实现大部分的time中的函数,在计算duration的时候不会出现因为时钟调整出现的误差了。 设计文...阅读全文

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

历数2017年五大Linux痛点

Linux操作系统为许许多多用户安装和使用,难免会遇到一些问题。正如2016年我们总结过5大Linux故障排除技巧一样,在即将过去的2017年里,我们依然搜集了用户在使用Linux系统时发现的问题,在此总结综述为"2017年五大Linux痛点",直指用户使用的关键点,希望能对您有所帮助。 1.文档 文档的问题是你今年最大的痛点吗?开源的方式产生了大量优秀的代码,文档的质量也因此上升了一个台阶。随着越来越多的非技术用户采用Linux和开源软件,文件的质量和数量将变得至关重要。如您想为开源项目做贡献,但又不觉得自己有足够的技术来提供代码,那么改进文档是一个很好的参与方式。许多项目甚至将文档保存在它们的存储库中。因此你可以通过自己的贡献去改进工作的效率。 2.软件/版本不兼容 软件版本不兼容的...阅读全文

博文 2017-11-25 12:27:56 debian.cn

DNSCrypt简明教程

dnscrypt-proxy到这里还不行,因为你没有配置使用该DNS。如你使用的是NetworkManager,那么就编辑文件 /etc/NetworkManager/conf.d/rc-manager.conf :[main] rc-manager=resolvconf然后编辑 /etc/resolvconf.conf:# Configuration for resolvconf(8) # See resolvconf.conf(5) for details resolv_conf=/etc/resolv.conf # If you run a local name server, you should uncomment the below line and # configure your...阅读全文

博文 2021-02-06 19:55:08 知乎