InfraPub 为您找到相关结果 825

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

Gitlab CI 配置文件 .gitlab

: rspec: script: test cache: untracked: true 缓存binaries下没有被git跟踪的文件: rspec: script: test cache: untracked: true paths: - binaries/ job中优先级高于全局的。下面这个rspecjob中将只会缓存binaries/下的文件: cache: paths: - my/files rspec: script: test cache: key: rspec paths: - binaries/ 注意,缓存是在jobs之前行共享的。如果你不同的jobs缓存不同的文件路径,必须设置不同的cache:key,否则缓存内容将被重写。 缓存只是尽力而为之,所以别期望缓存会一直存在。查看更多详细...阅读全文

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

Cortex: 高可用和水平扩展Prometheus监控系统

询时必须提供相同的值。在下面的例子中,这个headers是使用nginx反向代理设置的。架构图Cortex架构(源)Nginx/gateway–一个位于cortex前面的反向代理,将收到的所有请求转发给相应的服务。分发服务器Distributor–处理传入的指标,将其拆分为多个批次,然后将其传递给Ingesters。如果复制因子replication factor设置为> 1,则数据将发送到多个实例。接收器Ingester–此服务负责将数据写入已配置的存储后端。Ingester是半状态的,因为它们保留了最后12个小时的样本。这些样本将被批处理并压缩,然后再写入块存储。查询前端Query Frontend–一个可选组件,用于对查询请求行排队,并在失败时重试它们。结果也被缓存以提高性能查询器...阅读全文

博文 2021-10-09 17:00:22 知乎

Redis 官网宕机:错误提示无法连接 Redis

Redis 官网 redis.io 昨日罕见地宕机了一段时间。宕机原本不是什么新鲜事,但戏剧性的是网站的报错信息居然是连接不上 Redis。 Redis::CannotConnectError at / Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED) ▲ 看到这,忍不住刷一句:禁止套娃! Redis 作者 Antirez 很快修复了问题,并解释了宕机的原因。原来是因为他最近在运行 redis.io 的实例上安装了 Try Redis(用于在线体验 Redis 数据库),可能是未能对 session key 行良好的垃圾回收,从而导致内存累积,最终因为内存溢出(OOM )引发宕机。对此,Antirez 表示...阅读全文

博文 2020-03-13 13:17:06 debian.cn

三种SSL证书之间有什么区别

书针对网站域名及所有权行严格书面审查,通过审核之后,证书上标示企业资料,让访问用户可以直接了解企业身份并强化信任感,为后续其他基于互联网的服务内容提供妥善保护。安全级别较高。 EV(扩展型/增强型)SSL证书:扩展验证网站所属单位身份,适合高度信任的企业级用户使用。如金融行业、银行、电子商务平台等;EVSSL的最大特点便是激活网站在浏览器的标签栏使其变绿,利用鲜明的标示告诉用户:这个网站正受到最严密的信息安全防护,同时通过证书标示增强机构信赖及网站真实合法认定。安全级别最高。...阅读全文

Debian GNU/Linux系统现支持64位 RISC

Montecelo在公告中说道。 现在有超过4000个Debian软件包可用于64位RISC-V 根据Montecelo的说法,目前在debian-ports基础架构中为RISC-V 64位(riscv64)架构成功构建了4000多个Debian软件包,这相当于Debian(不稳定)软件存储库中大约30%的包。 但是,目标是构建所有由维护人员上传到档案中的Debian软件包。目前,riscv64 Debian端口背后的团队几乎在上传完成后立即为RISC-V 64位体系结构构建这些软件包。 那些想在他们的64位RISC-V设备上运行Debian GNU/Linux的人现在可以下载rv64gc Debian软件包(.deb),这些软件包已经成功编译并针对riscv64体系结构行了优化。通常,您可以在上传到存档...阅读全文

Irssi: 命令行下的 IRC 客户端

IRSSI 是一款优秀的命令行下的 IRC 客户端,支持常见的操作系统,包括Windows、Mac OSX,Debian、RHEL等系统。本文介绍如何在Debian环境下安装、使用IRC客户端工具 irssi。 安装客户端irssi sudo apt-get install irssi 登陆服务器 irssi -c irc.freenode.net 设置昵称 /nick 注册或登陆 /msg nickserv register # 注册要验证发送到邮箱的key /msg nickserv identify # 验证登陆 入频道 /join ubuntu-cn # 中文频道 ubuntu-cn;linuxba...阅读全文

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

Debian 安装配置 v2ray 服务端

v3.5 is installed. ``` 看上面输出,里面有 UUID 和 PORT 字段,这两个字段加上 IP地址,就是我们连接服务器的关键,只需要把这几个字段填入客户端,我们就能通过这台服务器科学上网了。 启动v2ray服务程:`systemctl start v2ray` 如果远程服务器和本地的连接速度不满意,可以参考之前的[Debian升级内核开启TCP_BBR 实现网络单边加速](https://debian.cn/articles/62)。...阅读全文

博文 2021-03-11 16:49:32 diablo4

百度运维工程师挖矿实录:四个月用155台服务器挖矿赚10万判3年

资源,从而获取虚拟货币的一种程序,需要较高的硬件配置及用电量。 而单凭一个矿工的力量是挖不到比特币的。于是“安某”便想到可以利用自己的职务之便利用百度的服务器来开启自己的发家致富之路,只是他可能没想到的是事情会败露的这么快。 那么,他具体是怎么做的呢? 首先,他用自己的工作账户上传了一个压缩文件 miner.tar.gz ,其中包含一个名为 java_4u3 的脚本, 而这个脚本可以自动执行解压缩、创建目录、删除目录、自动连接代理行网络交换,达到控制服务器的目的。 然后,编译了一个挖矿程序,并将上述程序部署非法控制了百度的 155 台服务器上,利用公司为其配备的苹果电脑上的 iterm 软件控制所有服务器的中控机,通过中控机上传挖矿脚本,并通过 iterm 软件发出批量下载指令,让 200...阅读全文

博文 2020-03-17 20:42:41 debian.cn

Golang 中的 channel 通道详解

channel通道golang的并发模型是序列通信处理CSP(communicating sequential process)——使用通信来共享内存 ,避免goroutine因竞争共享内存频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先先出。channel数据结构源码在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对象代表着一个 chan。hchan 中包含一个缓冲区 buf,它表示已经发送但是还未被接收的数据缓存。buf 的大小由创建 chan 时的参数来决定。qcount 表示当前缓冲区中有效数据的总量...阅读全文

十个增加 Linux Shell 脚本趣味的小工具

很多人误以为shell脚本只能在命令行下使用。其实shell也可以调用一些GUI组件,例如菜单,警告框,度条等等。你可以控制最终的输出,光标位置还有各种输出效果。下面我将介绍一些工具,帮助你创建强大的,互动的,用户友好的 Unix/Linux shell脚本。我在FreeBSD和Linux下测试过这些工具,不过其他UNIX系列的操作系统应该都支持的。 1. notify-send 命令 这个命令可以让你通过通知程发送一个桌面通知给用户。这可以用来向用户发送提示,或者显示一些信息而不用打断用户工作。你需要安装如下软件包: $ sudo apt-get install libnotify-bin 下面这个例子展示了如何从命令行向桌面发送一个简单的消息: notify-send...阅读全文

博文 2018-04-09 09:38:50 debian.cn

使用 Go 语言的三个原因

,Go 超越了那些暴露操作系统的多程或多线程并行模型的语言。goroutines 允许程序员避开复杂的回调,而语言运行时确保有足够的线程来保持你的内核的活跃。 总结 我给朋友推荐 Go 有三个原因:安全性、生产力和并发性。有些语言可以涵盖一个也有可能是两个方面,但是这三个方面的结合使得 Go 成为主流程序员的绝佳选择。 原文: https://dave.cheney.net/2017/03/20/why-go 作者:Dave Cheney 译者:geekpi 校对:jasminepeng...阅读全文

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

钉钉发送报警消息的Python实现

] else: return '' access token 在2小时内有效,有效期内重复获取返回相同结果,重复获取会使有效期会自动顺延。corp_id 和corp_secret 是企业的 id 和 secret,在钉钉的管理后台可以找到。另外,上面用到了 urllib2 和 json,需要在脚本中引用。 消息类型 钉钉的消息类型分为:text,image,voice,file,link和OA。下面以发送文本,链接和文件消息为例行说明。 给用户发送消息 发送文本 def send_text_to_users(access_token, users, text): msg_type, msg = _gen_text_msg(text) return _send_msg_to_users...阅读全文

博文 2018-04-27 08:51:33 debian.cn

Golang 面试题搜集

](https://github.com/lifei6671/interview-go/blob/master/question/q015.md) - [记一道字节跳动的算法面试题](https://github.com/lifei6671/interview-go/blob/master/question/q016.md) - [多协程查询切片问题](https://github.com/lifei6671/interview-go/blob/master/question/q017.md) - [对已经关闭的的chan行读写,会怎么样?为什么?](https://github.com/lifei6671/interview-go/blob/master/question/q018.md...阅读全文

个人信息保护新规将出台 消费者被短信轰炸将成为历史

,App开发运营者加强前端和后端安全防护、访问控制、技术加密、安全审计等工作,主动监测发现个人信息泄露等违规行为,及时响应处置要求。App开发运营者还要履行国家规定的其他个人信息保护义务。 尽管《规定》尚未正式发布实施,但是主流平台企业已经用实际行动认可了各自的信息保护义务。 7月6日,阿里巴巴开放平台发布《依法加强消费者订单中敏感信息保护的公告》,称将启动订单处理链路的消费者敏感信息保护方案,对涉及消费者个人敏感信息采取加密、去标识化等安全技术措施。 7月9日,京东发布《JD用户订单隐私安全方案》,称为保障京东用户和商家数据信息安全,京东商家开放平台将对订单中手机号和座机号行脱敏。 7月20日,抖音电商运营团队发布公告,为防止消费者隐私信息泄露,抖店将启动消费者隐私数据...阅读全文

总结系统设计中的33个黄金法则

Refer to https://www.linkedin.com/pulse/system-design-rules-navneet-kumar-p6n7f/ 系统设计很复杂,它需要设计者有深厚的计算机知识和专业知识,没有一种通用的设计可以适应所有业务场景。尽管如此,还是有一些比较通用的规则可以供你设计系统时参考,也能帮助你在面试中摆脱困境。 1. 对于数据密集型系统 — 考虑使用缓存。 2. 对于写入量大的系统 — 使用消息队列行异步处理 3. 对于低延迟要求 — 考虑使用缓存和 CDN。 4. 需要𝐀原子性、𝐂一致性、𝐈隔离性、𝐃耐用性兼容数据库 — 选择 RDBMS/SQL 数据库。 5. 对于非结构化数据——可以选择NoSQL...阅读全文

岗位需求: CTO

工作规范和工作流程,并跟踪开发过程实际合规性; 8. 指导. 审核项目总体技术方案,对各项目行最后的质量评估; 9. 负责技术团队建设和管理,注重人才培养和营造创新的研发文化; 10. 完成各项技术工作相关数据统计分析报告,并据此对公司发展提出合理化建议。 ** 岗位要求:** 1. 本科及以上学历,计算机. 软件工程相关专业,互联网行业优先考虑; 2. 10年及以上技术研发. 软件开发相关行业工作经验,5年以上互联网行业技术研发团队管理经验, 精通基于Java. PHP等语言的开发,熟悉服务端软件架构设计与开发流程;有互联网CTO或技术总监工作经验,带过百人以上团队; 3. 熟悉互联网领域业务,深刻理解产业发展方向,具备敏锐准确的洞察力和缜密的逻...阅读全文

10年来最重要创新 ARM发布AMRv9指令集:IPC性能大涨30%

,ARM会增加更多高级功能,比如VRS可变帧率渲染、RT光线追踪及其他高级渲染技术等。在ARMv9中,最重要的一项挑战其实是数据安全,这一次ARM推出了全新的CCA机密计算体系架构,基于之前的TrustZone安全技术,但引入了动态域技术,它对操作系统及管理程序来说是完全不透明的,不会被系统或者软件提权攻击,而且依然可以接受管理及调度。总之,ARM今天公布的ARMv9指令集极具创新,是未来10年3000多亿ARM芯片的基础,不过现在具体的细节还很少,只是一个初步的路线图,今年夏天还会公布更多详细内容。至于ARMv9处理器的商业化,预计会在2022年早些时候入市场。...阅读全文

如何重启 Kubernetes 中的 Pods

在使用 Docker 时,我们可以使用 docker restart container_id 来非常方便的重启容器,但是在 kubernetes 中并没有重启 pod 的命令。有时 Pod 意外终止时,我们希望重启 pod,来行排障或者尝试恢复服务。这时我们会发现蛋有点疼,没有一个很直观的方式来重启 pod。 这里我总结了几种重启 Pod 的方式,分两种情况讨论如何重启 K8S 中的 Pod,希望对大家有所帮助。 第一种方式:Deployment方式下重启Pod 大多数生产环境,使用的是 Deployment 方式部署应用。这种场景下,我们可以直接删除对应的 Pod,让k8s去完成 pod 重建,命令: kubectl delete pod {podname} -n...阅读全文

博文 2020-07-13 21:23:30 debian.cn

五种绕过 Linux 命令别名的方法

下命令暂时绕过名为 mount 的 bash 别名:\mount 方法 2 - 使用引号: "command" 或 'command' 如下引用 mount 命令调用实际的 /bin/mount:"mount" 这里单引号和双引号都可以。 方法 3 - 使用命令的完全路径 使用完整的二制路径,如 /bin/mount: 方法 4 - 使用内部命令 command 就是在执行的命令前加上 command 命令,样例如下: command cmd command cmd arg1 arg2 要绕过 .bash_aliases 中设置的别名,例如 mount: command mount command mount /dev/sdc /mnt/pendrive/ “command” 直接运行命令...阅读全文

博文 2018-03-08 13:33:02 debian.cn

通过Prometheus查询K8S集群Pod 的CPU、内存、网络指标

with the `H' inter-active command. Also for multi-processor environments, if Irix mode is Off, top will operate in Solaris mode where a task's cpu usage will be divided by the total number of CPUs. You toggle Irix/Solaris modes with the `I' interactive command. 即在过去的一段时间里程占用的CPU时间与CPU总时间的比率,如果有多个CPU或者多核,需要将每个CPU的时间相加。kubelet中的cadvisor采集的指标与含义,见...阅读全文

博文 2020-08-13 20:41:03 debian.cn

全民HTTPS时代:盘点免费SSL证书那些事儿

的问题在于被发现允许对证书的签发日期行倒填,从而达到规避 SHA1 证书在 2016 年 1 月 1 日之后被浏览器警告的目的。最终于 2017 年 11 月 16 日,StartCom 宣布终止业务,自 2018 年 1 月 1 日起停止颁发新证书,并于 2020 年停止 OCSP 和 CRL 服务。 沃通(Wosign)也属于类似情况,被 Mozilla 认为 WoSign 最严重的问题是伪造(或者说人为设置)了证书签发日期,相继被 Mozilla 和 Chrome 不信任,最终导致出局。 最后,随着 https 的广泛被适用,我们也乐于看到越来越多的 CA 开始提供免费的 DV SSL 证书。 【本文转载自秋水逸冰】...阅读全文

GlusterFS 和 Ceph 比比看

GlusterFS 与 Ceph 哪个更快已经行了几项测试,但迄今为止没有确切的结论。GlusterFS 存储算法更快,并且由于 GlusterFS 以砖组织存储的方式实现了更多的分层,这在某些场景下(特别是使用非优化 Ceph 的话)可能导致更快的速度。另一方面,Ceph 提供了足够的定制功能来使其与 GlusterFS 一样快——结果是两者的性能都不够令人信服一个比另一个更强。 然而,现实表明,Ceph 访问存储的不同方法使其成为更流行的技术。事实证明,更多的公司正在考虑 Ceph 技术而不是GlusterFS,而且 GlusterFS 仍然与 Red Hat 密切相关。例如,SUSE 还没有 GlusterFS 的商业实现,而 Ceph 已经被开源社区广泛采用,市场上有各种不同的产品。可以说...阅读全文

博文 2017-08-09 10:35:29 debian.cn

深入理解Golang之context

context是Go并发编程中常用到一种编程模式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 作者:Turling_hu 来源: 掘金 原文链接: https://juejin.im/post/5e52688c51882549417fc671前言这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用context。为什么需要context在并发程序中,由于超时、取消操作或者一些异常情况,往往需要行抢占操作或者中断后续操作。熟悉channel的朋友应该都见过使用done channel来处理此类问题。比如以下这个例子:func...阅读全文

博文 2021-01-27 09:05:27 知乎

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

,它是以一个 circular buffer (cir_start[head++]) 的 head 来定位,或者更详细地从 graph walk 的始点说起,由于 graph->head 在初始化的时候被指定为 -src_node_count (负的 source node 数量,可以参考下一部分 rte_graph 的内存布局),所以 cir_start[head] 其实就是第一个 source node。那么 tail 的作用是什么?libgraph 是如何利用它来动态修 circular buffer 和 pending stream 帮助 node 的定位呢? 在回答这些问题之前,我们首先来了解下面两个 API 函数,分别是 __rte_node_enqueue_prologue 和...阅读全文

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