eBPF 网络堆栈pwru
pwru 是 Cilium 推出的基于 eBPF 开发的网络数据包排查工具,它提供了更细粒度的网络数据包排查方案。本文将介绍 pwru 的使用方法和经典场景,并介绍其实现原理。...阅读全文
pwru 是 Cilium 推出的基于 eBPF 开发的网络数据包排查工具,它提供了更细粒度的网络数据包排查方案。本文将介绍 pwru 的使用方法和经典场景,并介绍其实现原理。...阅读全文
-ahead logs)之前将其删除,现在可在 PostgreSQL 13 中进行调整,以指定要保留的 WAL 文件的最大数量, 有助于避免磁盘空间不足错误。 PostgreSQL 13 还增加了更多让管理员可以监控数据库活动的方法,包括从 EXPLAIN 中查看 WAL 使用情况的统计信息、流式基础备份的进度,以及 ANALYZE 命令的进度。此外,可以使用新的 pg_verifybackup 命令验证 pg_basebackup 命令输出的完整性。 应用开发 PostgreSQL 13 对来自不同数据源的 PostgreSQL 数据类型进行了优化。此版本在其 SQL/JSON 路径支持中增加了datetime()函数,它可以将有效的时间格式(如 ISO 8601 字符串)转换为...阅读全文
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 表示当前缓冲区中有效数据的总量...阅读全文
使用df -h检查磁盘文件,看到 journal 日志占用了数G空间, ~:/var/log/journal/4211ff3f594041f3966d836585a11a05# journalctl --disk-usage Archived and active journals take up 6.4G in the file system. 清理方法可以采用按照日期清理,或者按照允许保留的容量清理 ``` journalctl --vacuum-time=2d journalctl --vacuum-size=500M ``` 参考阅读: https://debian.cn/articles/746...阅读全文
我们确定了日志文件的路径后,就可以使用 echo 等命令清空了。 查找日志路径可以使用命令, `docker inspect --format='{{.LogPath}}' 1e1897500f00` 一键清理多个容器日志的命令,就可以这样写, ```docker inspect --format='{{.LogPath}}' `docker ps -q` | xargs -i cp /dev/null {}```...阅读全文
本文将简单介绍 Debian 环境下,Jenkins 服务的安装与配置。通常Jenkins有两种方式安装,一种是通过官方提供的 Deb 包安装,另一种是用 tomcat 作为容器来运行 jenkins... 11月29日 932 评论...阅读全文
。 工作流就像“原子”动作一样,可在Action库中使用,并且可以手动调用或由规则触发。 包(Packs)是内容部署的单位。 它们通过对集成(触发器和动作)和自动化(规则和工作流)进行分组,简化了StackStorm可插拔内容的管理和共享。 StackStorm Exchange上有越来越多的包可用。 用户可以创建自己的包,在Github上共享它们,或者提交给StackStorm Exchange. 审计跟踪(Audit Trail)记录并存储手动或自动操作执行的审计跟踪,并存储触发上下文和执行结果的全部细节。 它还被记录在审计日志中,用于集成外部日志记录和分析工具:LogStash,Splunk,statsd,syslog StackStorm 通过包含 sensors 和 actions 的...阅读全文
Debian项目宣布第六版发布到最新稳定的Debian GNU/Linux 9.6 "Stretch"操作系统系列。Debian GNU/Linux 9.6 "Stretch"在9.5点发布后大约四个月释出,为用户提供最新的安装。此版本包含270多个更新的包。 “这个版本的发布主要增加了对安全问题的修正,以及对严重问题的一些调整,” Laura Arjona Reina在邮件列表公告中写道。 “请注意,小版本的发行不是全新的 Debian 9版本,只会更新一些已有的软件包。不需要丢弃旧 Debian9 Stretch 的安装媒介。” Debian GNU/Linux 9.6 "Stretch"现在可供下载 随着Debian GNU/Linux 9.6 "Stretch"版本的发布...阅读全文
美光于前日宣布已经开始向业界中的核心客户出样DDR5内存(RDIMM)了,目前他们在DDR5内存上面使用的是自家最新的1z nm工艺。 JEDEC于2016年就开始制定DDR5 SDRAM规范了,不过到目前为止,DDR5标准仍然处于完善期,JEDEC还没有公布它的最终版本,预计它将会在今年正式完成DDR5标准的制定。反而是LPDDR5快了一步,在去年2月份标准就已经正式公布,并且有厂商已经推出了实际产品,并且在今年已经有移动处理器支持它了。 美光的DDR5技术文档也得以让我们一窥DDR5内存的特性。首先,在同样的等效频率下,DDR5内存能够提供更高的有效带宽,比如同样处于3200MT/s下,DDR5-3200的有效带宽比DDR4-3200的要高出36%;其次是DDR5(在JEDEC标准范围...阅读全文
debian官方提供了脚本ftpsync来搭建源镜像,而 apt-mirror 是一个更简单便捷的源镜像搭建工具。 安装 apt-mirror sudo apt-get install apt-mirror 配置文件/etc/apt/mirror.list只要修改很少的地方,大部分使用默认值即可。 这里使用中科大镜像 ftp.cn.debian.org 作为上游镜像,只镜像 debian jessie amd64 架构,不镜像源代码包。 ############# config ################## # # set base_path /var/spool/apt-mirror # # set mirror_path $base_path/mirror # set...阅读全文
= new Thread(); t1.start(); t2.start(); t1.join(); t2.join(); System.out.println(i); } } 两个线程 t1 和 t2 同时开启,执行run方法,在我们的预想中,如果是线程安全的话,那么main的执行结果应该是20,但是因为 i 是共享数据,而程序没有对 i 的操作做同步的处理,最终运行的结果并不是20,所以这种情况就不是线程安全的情况。 解决的办法也比较简单,可以利用synchronized关键字来修饰方法或代码块,这部分的知识也是并发编程中非常重要的一块,当然,本文就不探究了,之后单独写篇文章出来细说。...阅读全文
(DDR4可超过200GT/s),不怕断电,也不需要外接供电,但性能和DRAM仍然远不是一个级别。 NVDIMM-N混合使用DRAM、DRAM,在内存条上集成NAND闪存,外接电源供电,断电时将数据转移保存到NAND闪存中,重新来电后恢复到DRAM,但闪存只是个备份,正常工作时闲置无法使用。 有消息称,紫光集团旗下西安紫光国芯也成功研发出了一看基于DDR4的NVDIMM-N。 NVDIMM-P则是以上二者的结合,三星主导DDR4版本,美光主导DDR5版本。 NVDIMM-H正在研发,美国Netlist公司主导,类似NVDIMM-N,也是DRAM、NAND混合体,但硬件结构差异较大。 - THE END - 转载请注明出处:快科技 #内存#DDR4 责任编辑:上方文Q...阅读全文
可以直接用 update-locale 命令修改,即时生效, ``` home@debian12:~$ sudo update-locale LANG=en_US.UTF-8 *** update-locale: Error: invalid locale settings: LANG=en_US.UTF-8 LANGUAGE="zh_CN:zh" ``` 执行命令时遇到上面的问题时, 可以编辑文件 `/etc/locale.gen`, 取消对 `en_US.UTF-8` 的注释, 然后运行这两个命令完成修改, ``` sudo locale-gen en_US.UTF-8 sudo update-locale LANG=en_US.UTF-8 ``` ...阅读全文
经过很长一段时间的开发,TiDB 终于发了 RC3。RC3 版本对于 TiKV 来说最重要的功能就是支持了 gRPC,也就意味着后面大家可以非常方便的使用自己喜欢的语言对接 TiKV 了。 gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HTTP/2 相关的知识,然后在介绍下 gRPC 是如何基于 HTTP/2 构建的。 HTTP/1.x HTTP 协议可以算是现阶段 Web 上面最通用的协议了,在之前很长一段时间,很多应用都是基于 HTTP/1.x 协议,HTTP/1.x 协议是一个文本协议,可读性非常好,但其实并不高效,笔者主要碰到过几个问题: Parser 如果要解析一个完整的 HTTP 请求,首先我们需要能正确的读出...阅读全文
本文以 Ubuntu 18.04 为例,介绍如何在 Linux 下使 systemd 服务定时重启。有几种不同的方法。 ** crontab ** 注意,此种方法在 root 用户下使用最佳,普通用户的 --user 服务会有许多问题需要解决。 `30 3 * * * /bin/systemctl restart your_service` `crontab -l cronjob` ** RuntimeMaxSec ** ``` [Service] Restart=always RuntimeMaxSec=604800 ``` ** timer ** a-restart.service ``` [Unit...阅读全文
实测有效的一个方案,通过给docker 配置 http_proxy 的方式,配置代理,配置方式如下: 建立空目录: `mkdir /etc/systemd/system/docker.service.d` 创建文件,内容如下:`vi /etc/systemd/system/docker.service.d/http-proxy.conf` ``` Environment="HTTP_PROXY=http://proxy.example.com:80/" Environment="HTTPS_PROXY=http://proxy.example.com:80/" Environment="NO_PROXY=localhost,127.0.0.0/8,docker...阅读全文
配置文件: /etc/yum.repos.d/mysql-community.repo ``` [mysql-connectors-community] name=MySQL Connectors Community baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-community] name=MySQL Tools Community baseurl=http...阅读全文
图片来自于 Youtube 关于近期关于放弃 Unity 的决定,Google+用户 Maartin Kozub 在文章中写道: 这个决定并不能简单的用惋惜和悲伤而形容,因为 Canonical 所从事开始的多个项目也宣告了死亡。 我认为当前最大的问题是大部分开源开发者无法深入理解,也不会进而欣赏面向对象的编程语言(C++)。他们依然还习惯使用 C 语言来编程一些丑陋的代码,也许有些时候利用个性化定制功能能够让 C 更加接近于 C++,但无疑会增加门槛和降低可读性。所以,为何不直接使用 C++?最典型的例子就是 Wayland。 在另一方面,Canonical 是目前极少数创建优秀和简洁开源 C++代码的公司/社区,就像 Mir 一样能够充分利用各种现代化 C++功能。 Mark...阅读全文
技术一面 基础面试 一面是通过电话直接沟通。 go的调度go struct能不能比较go defer(for defer)select可以用于什么context包的用途client如何实现长连接主协程如何等其余协程完再操作slice,len,cap,共享,扩容map如何顺序读取实现set实现消息队列(多生产者,多消费者)大文件排序基本排序,哪些是稳定的http get跟headhttp 401,403http keep-alivehttp能不能一次连接多次请求,不等后端返回tcp与udp区别,udp优点,适用场景time-wait的作用数据库如何建索引孤儿进程,僵尸进程死锁条件,如何避免linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程git文件版本,使用顺序...阅读全文
息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超级。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。 204 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。 如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。 由于204响应被禁止包含任何消息体,因此它始终以消息头后的第一个空行结尾。 205...阅读全文
从 5 月份发布的 PostgreSQL 10 首个 Beta 测试版到今天已有小半年时间,今天 PostgreSQL 终于宣布了 PostgreSQL 10 正式版。 全新的 PostgreSQL 10 正式版值得关注的新特性包括: 使用基于发布和订阅机制的逻辑复制 声明式的表分区 提升了查询的并发性 显著的性能提升 更强的基于 SCRAM-SHA-256 密码认证机制 提升了监控和控制功能 详细的 PostgreSQL 10 新特性描述请看 这里 。 官方发行说明请看 https://www.postgresql.org/docs/10/static/release-10.html?x=1 。 同时这里有一份 PDF 文档 通过实例详细介绍 PG 10 的新特性。...阅读全文
Linus Torvalds 宣布推出最新的 Linux Kernel 4.14 稳定版,并开始接受 4.15 合并请求。 Linux 4.14 带来了许多新功能和变化,主要包括对驱动程序和硬件启用的改进,文件系统调整和性能优化等等,并将成为下一个长期支持版本(LTS)。 该版本优化了对 x86_64 硬件的内存支持,从原来的 256TiB 虚拟地址空间和 64TiB 物理地址限制优化至 128PiB 和 4PiB 。 其他更改: 新 Realtek Wi-Fi 驱动(RTL8822BE) 支持 Btrfs Zstd 压缩 支持 HDMI CEC(Raspberry Pi) 内存安全加密(AMD EPYC 处理器) 支持华硕 T100 触摸板 Heterogeneous Memory...阅读全文
Debian 9.13 已发布,这也是 Debian 9 的最后一个版本,因为安全和发布团队计划不再进行更新。官方鼓励用户升级到 Debian 10。 Debian 9.13 包含多个安全修复以及解决了部分“严重问题”。这些变更主要包括: 提供新版本的 ClamAV 以修复安全问题针对 CUPS 打印服务器的堆缓冲区溢出修复针对 D-Bus 的 DOS 问题修复针对 File-Roller 的安全修复对英特尔 Skylake 微代码文件进行降级以解决部分 CPU 在启动时的挂起问题针对 libvncserver 的堆溢出修复针对安全问题对 NVIDIA 驱动进行更新其他针对一般错误和安全问题的修复 详情查看 https://www.debian.org/News/2020/20200718...阅读全文
美国证监会规定上市公司公开披露各种信息时要提交统一格式的文件,又叫Form(一般翻成“表格”)。根据不同的情况要提交不同的表格,比较重要的是S-1(招股书)或F-1(外国公司招股书),10-K(年报)、10-Q(季报)、8-K(重大事件)。 问题问到的三种Form的具体含义: 6-K Report of foreign private issuer pursuant to Rule 13a-16 or 15d-16 under the Securities Exchange Act of 1934(注册地不在美国的外国公司披露特定财务信息) 20-F Registration statement / Annual report / Transition report(注册...阅读全文
Arch Linux 是第一个以全新的 ISO 镜像在 2020 年启动的 GNU / Linux 发行版之一,该镜像是第一个基于最新 Linux 内核系列的镜像。 Arch Linux 2020.01.01 是 2020 年的第一个 ISO 版本,由 Linux 5.4 内核系列提供支持,带来了许多新功能和增强功能。例如,对 Microsoft exFAT 文件系统的支持、“lockdown”安全功能、以及对 Android 上的应用程序内存管理的改进。 最重要的是,Arch Linux 2020.01.01 发行版还附带了整个 2019 年 12 月的所有软件包更新和安全补丁程序发行版,对于想要在新计算机上部署 Arch Linux 的人来说,该 ISO 镜像将是最新的安装介质。 值得...阅读全文
加公共论坛讨论或直接联系本网站),在您的同意及确认下,我们可能会以线上或线下注册表格的形式要求您提供如下个人资料和信息: • 具体信息,比如姓名,年龄,出生日期,电子邮箱,手机号码等; • 一般性信息,比如您的性别,年龄,职业,兴趣爱好等; • 仅在特定情况下(比如您需要付费才能享有的服务或产品,或参加本网站参与或组织的抽奖或竞赛活动),我们会要求您提供个人付款信息和身份证件信息,比如信用卡号码或身份证及护照号码。 我们自动收集的信息。 当您浏览本网站时(不管是否注册或登录),本网站可能自动收集与您相关的如下信息: 请注意,本隐私权声明不适用于任何向您提供服务的第三方主体,包括那些可能向本网站披露信息的第三方。 您的浏览器类型和浏览器语言、操作系统类型、宽...阅读全文
、Digital Ocean 等等等等,探索着在开源领域中赚钱的法子。他们探索过分发模式、服务模式,核心开源模式等等。现在可以确定的是,传统的商业软件赚钱的方式已经不再适用开源软件;因此,你得选择一个能够支持你的公司的经营方式的开源协议。在赚钱和免费提供你的技术之间找到平衡在很多情况下是很困难的一件事。 这就是我们看到那些变化的原因。尽管 GPL 是一个开源协议,但是它根本上是个自由软件协议,作为自由软件协议,它的管理以及支持是由自由软件基金会提供的。 我喜欢自由软件基金会的作品,但是他们已经把观点局限于软件必须 100% 绝对自由。对于自由软件基金会没有多少可以妥协的余地,甚至很多出名的开源项目(比如很多 Linux 发行版)仅仅是因为一丁点二进制固件就被认为是 “非自由” 软件。 对于商业来说,最复杂...阅读全文
消耗,更快的进入全速运行状态。 Java Flight Recorder(JFR) JFR 全名是 Java Flight Recorder(Java 飞行记录仪)。众所周知,JFR 是 Oracle JDK 的商业收费功能,需要付费才可使用,虽然后期通过 OpenJDK 11 开源,但 Java 8 的用户群体无法使用且该部分人群较为庞大。因此,阿里巴巴开源 Dragonwell JDK 之时,便决定将该功能移植到 Alibaba Dragonwell 8 中供开发者使用。Java 开发人员可以通过 JFR 收集 JVM 运行过程中的详细 profiling 信息,配合 Java Mission Control (JMC), 提高 Java 应用的问题诊断及性能优化效率。 在本次的 GA...阅读全文
由于日常大部分工作需要在 Debian 环境下完成,最近发现升级到 Debian Stretch 后,Vim 的一个常用操作没法做了,没法使用鼠标,直接选择并复制。很别扭,之前用着没问题的。今天来分享一个解决办法,为大家解决 Debian 9 VIM 环境下,无法使用鼠标右键进行选择、复制的问题,供大家参考。 Debian 9 (Stretch) 无法使用鼠标右键选择、复制的解决方法,Debian 9怎么使用右键复制 装了 debian 9 以后,vim没有办法使用鼠标直接选择并复制,检查后发现是一个默认的配置问题。可以使用以下方法彻底解决。 1、 打开 Vim 的默认配置文件 vim /usr/share/vim/vim80/defaults.vim 2、 转至第 70 行,找到: if...阅读全文
从我们认为 DevOps 只是一个流行语开始,它已经发展了很长的一段时间。现在,DevOps 已经成为了一个主要焦点,并在过去几年一直在塑造着软件世界。专家表示,DevOps 将成为主流,它的流行程度将在 2019 年达到顶峰。 根据 2018 年《DevOps 现状报告》,DevOps 精英级执行团队代码部署频率和发布速度更高,变更故障率更少,事故恢复时间更短,同时高效能团队的比例逐年增长,采用 DevOps 的团队越来越多。 而 Stack Overflow2018 年的薪资计算器报告显示,全球 DevOps 专家的收入最高,美国 DevOps 专家的年薪中位数接近 10 万美元。 以下是“DevOps”一词的 Google Trends 以及 2019 年的预计增长假设。 从统计数据...阅读全文
TeamViewer是一个能在任何防火墙和NAT代理的后台用于远程控制,桌面共享和文件传输的简单且快速的解决方案。为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可,而不需要进行安装(默认是免安装方式运行)。该软件第一次启动在两台计算机上生成 ID。只需要输入你的伙伴的ID到TeamViewer,就会立即建立起连接。 由于TeamViewer的Linux版本很长时间都没有更新,所以在Linux系统安装TeamViewer时会碰到依赖问题。这篇教程介绍如何在Debian Jessie系统安装TeamViewer远程协助软件。 Debian 8安装TeamViewer 到 TeamViewer.com下载32位的deb安装包。(TeamViewer Linux版本...阅读全文
Homebrew 是一款 Mac OS 平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,你不用关心各种依赖和文件路径的情况,十分方便快捷。 引用官方的一句话:又提示缺少套件啦?别担心,Homebrew 随时守候。Homebrew —— OS X 不可或缺的套件管理器。 Homebrew的安装有一些前置依赖,具体如下, 64 位 Intel CPUMac OS X High Sierra 10.13 或更新的系统版本Xcode 的命令行工具 xcode-select --installBourne 兼容的 shell (zsh 或 bash) 安装 Homebrew 安装 Homebrew 只需要用普通用户,执行一条命令即可,如下...阅读全文
Github 在去年的 Universe 大会上推出了尚处于 Beta 阶段的移动版客户端。经过数月的开发,适用于移动设备的 Github iOS 和 Android 客户端现已发布稳定版,可从 Google Play 或 App Store 进行获取。 Github 移动版客户端提供了以下功能: 浏览最新通知对 issue 和 PR 进行阅读以及回复审查和合并 PR使用 labels, assignees 以及 projects 等配置项来管理 issue浏览文件和代码 Github 移动版客户端采用原生开发,界面方面没有照搬 PC 端网站的设计,而是针对移动端提供了专为触摸屏设计的新界面,还提供了通知功能,当用户被直接 @ 的时候,就能够收到悬浮通知,方便开发者随时随地查看代码、合并更...阅读全文
作为最成功的微型计算机,开源的树莓派(Raspberry Pi)在技术圈和学术界一直广受编程爱好者的好评,各路大神基于树莓派制作的新奇设备层出不穷,围绕这款微型计算机已经形成了一种独特的 DIY 文化,相关的开源软件生态也十分丰富。 树莓派最初是剑桥大学计算机系的一个实验性项目,创始人 Eben Upton 召集了一群教师、学者和计算机爱好者,希望设计出一种能激励儿童参与编程的小型计算机。这个计算机的灵感来自 1981 年 Acorn 公司的 BBC Micro 计算机。第一台树莓派 ARM 原型机安装在一个与 USB 记忆棒大小相同的盒子里,它的一端是 USB 端口,另一端是HDMI 端口。2012 年 2 月 29 日,首批树莓派正式发售,定价为 35 美元。 根据树莓派官方统计的数...阅读全文
、Linux/Unix 当您购买了区域性 Linux/Unix RI,将自动匹配正在运行的按需实例,折扣将立即适用于该实例系列中的实例使用,无论实例大小如何,直接上例子: 场景一:假设您在新加坡区域购买了一个 m5.2xlarge 的 Linux/Unix 的标准RI,并且您的账户在该区域有两个 m5.xlarge 实例在运行 ,那么两个实例将完全匹配,做预留。如果您的账户在新加坡区域区域有一个 m5.4xlarge实例(Linux/Unix),将匹配到 50% 的实例费用。 场景二:那么,有同学可能有比较刁钻的场景:如果我的账户在该区域有个m5.4xlarge实例( Linux/Unix)在运行 ,且当前我有一个 m5.2xlarge的标准RI,一个m5.large的标准RI,我是否需要重新购买...阅读全文
减轻用户迁移到 K8S 的负担。 目前 UK8S 插件还属于正在整理开源的阶段,还没有正式的发布,但我们已经小范围的开放了代码,把我们的插件代码分发给到很多用户,但公开的开源,我们希望做的更加规范一点再进行,因为我们的插件还在不断的迭代中,有一天我们觉得达到一定程度的稳定了,我们就会进行公开开源。 记者:你认为未来 K8S 以及容器的技术方向上比较值得重点关注的技术点是什么? 叶理灯:虚拟化容器。未来的方向我们相信是 Serverless,这个也是云计算应该做的,持续地为了用户提高效率和降低成本。刚才我也说了,现在用户使用 K8S 还是有资源管理的负担的,不是完全的面向应用来运维,所以需要解决这个问题,让计算节点对用户透明。用户通过 Docker 镜像和配置文件就可以把一个应用跑起来,而不用...阅读全文
} /*** * go特有变量交换 */ func SwapGo(list []int, i, j int) { list[i],list[j]=list[j],list[i] } /*** * go变量高阶交换(不推荐,一般不好理解) */ func SwapGoAdvanced(list []int, i, j int) { list[i]=list[i]+list[j] list[j]=list[i]-list[j] list[i]=list[i]-list[j] } 运行排序方法 使用终端执行go get github.com/e9ab98e991ab/go-algorithm执行touch main.go执行vim main.go拷贝下方代码块代码到main.go文件中wq保存后直接执行go run...阅读全文
发语言。早在 2016 年,基础架构团队就已经开始基于 Golang 开发内部框架 Kite,并在 2019 年围绕性能和可扩展启动重构,使其能更好地满足业务发展和技术体系演进需求。 2020 年 10 月,Kitex 正式上线。虽然是一个全新的框架,但经过一年的线上应用,目前字节跳动内部已有超过 50% 的 Golang 微服务迁移到了 Kitex。 下面是 Kitex 的一些特性: 高性能:Kitex 默认集成自研网络库 Netpoll 作为网络传输模块,性能相较使用 go net 有显著优势;除了网络库带来的性能收益,Kitex 对 Thrift 编解码也做了优化,这在之前的性能优化实践文章中有介绍。关于性能数据,可参考 https://github.com/cloudwego...阅读全文
工作规范和工作流程,并跟踪开发过程实际合规性; 8. 指导. 审核项目总体技术方案,对各项目进行最后的质量评估; 9. 负责技术团队建设和管理,注重人才培养和营造创新的研发文化; 10. 完成各项技术工作相关数据统计分析报告,并据此对公司发展提出合理化建议。 ** 岗位要求:** 1. 本科及以上学历,计算机. 软件工程相关专业,互联网行业优先考虑; 2. 10年及以上技术研发. 软件开发相关行业工作经验,5年以上互联网行业技术研发团队管理经验, 精通基于Java. PHP等语言的开发,熟悉服务端软件架构设计与开发流程;有互联网CTO或技术总监工作经验,带过百人以上团队; 3. 熟悉互联网领域业务,深刻理解产业发展方向,具备敏锐准确的洞察力和缜密的逻...阅读全文
6月19日-6月20日,LC3大会将在北京举办。这是 Linux 基金会首次在中国开展大型活动,届时,国内外开源方面的领先企业、人物及开发者将齐聚一堂,共同探讨开源的商业与技术。在活动举办前夕,开源中国邀请到 Linux 基金会执行董事 —— Jim Zemlin 做客【开源访谈】,与大家畅谈 Linux、开源趋势及LC3 活动。 (一)全球开源可持续增长,加强合作将带来更多价值 “LC3 大会是 Linux 第一次在中国举办的活动,而实际上,我们去年已经开始在中国建立了一个我们自己的机构。” Jim 表示,此前 Linux 已经和华为、中国移动、中国开源促进联盟等中国的开源企业、社区开展了合作。 同时,Jim 表示未来希望能够不断地扩展 Linux在中国的活动及布局。他们在中国更多关注于...阅读全文
欧洲云计算巨头 OVH 位于法国斯特拉斯堡的机房昨日发生严重火灾,该区域总共有 4 个数据中心 (Strasbourg Data Center),发生起火的 SBG2 数据中心被完全烧毁,另有一个数据中心 SBG1 的建筑物部分受损,SBG3 因受到消防保护暂未受影响,以及 SBG4 确认没有受到波及。不过出于安全起见,OVH 位于斯特拉斯堡的全部数据中心暂时关闭了服务。OVH 在全球拥有 27 个数据中心,其中 15 个位于欧洲。昨天这场灾难被认为已导致超过 350 万个网站下线,而这一切发生在 OVH 启动了首次公开募股 (IPO) 计划两天后。Rust 旗下的游戏工作室 Facepunch Studios 证实,他们的数据已在这场大火中全部丢失,即使数据中心重新上线后,也无法恢复...阅读全文
GitLab 于上周发布了 12.5 新版本,官方在发布说明中介绍到,为了尽可能高效地交付高质量的软件,企业会经常需要跨多云以支持广泛的基础架构,因此新版带来了 EKS 集群和环境面板等功能以支持跨各种配置的项目配置,更方便监控和管理。 轻松创建并部署 EKS 集群 在新版本中 GitLab 添加了 EKS 集成,因此我们可以在 GitLab 集群页面中选择 EKS 作为选项,然后系统会提示进行身份验证以使用 AWS 账户。一旦通过身份验证,只需为集群指定所需的参数,GitLab 将负责完成其余的工作。因此在新版本中,我们只需单击几下就可以在 Amazon 的 EKS 上创建 Kubernetes 集群。 使用 Crossplane 配置多云托管服务 在 GitLab 12.5 中,我们可...阅读全文
GitHub 刚刚通过官方博客发布了 21 日“挂掉”的事件分析。GitHub 指出此次事件发生的原因是在 10 月 21 日 22:52 UTC 进行日常维护——更换发生故障的 100G 光学设备时导致美国东海岸网络中心与美国东海岸数据中心之间的连接断开。 更具体地,GitHub 分析,虽然两地的连接在 43 秒内恢复,但这次短暂的中断引发了一系列事件,这才导致了长达 24 小时 11 分钟的服务降级。 为了大规模提高性能,GitHub 的应用程序将直接写入每个群集的相关主数据库,但在绝大多数情况下将读取请求委派给副本服务器的子集。GitHub 使用 Orchestrator 来管理 MySQL 集群拓扑并处理自动故障转移,Orchestrator 在此过程中考虑了许多变量,并在...阅读全文
即将到来的Ubuntu 18.04 LTS(Bionic Beaver)操作系统中将引入新功能,方便用户使用Canonical的Livepatch服务。该服务最早出现在Ubuntu 16.04 LTS(Xenial Xerus)中,能在不重启Ubuntu设备的情况下部署Linux内核更新。 在默认的Ubuntu 18.04更新安装过程中,Software & Updates工具的Update标签页中已经整合了Livepatch服务。不过如果用户想要使用这项服务,需要点击“Sign In”按钮创建Ubuntu SSO(Single Sign-On)账号并进行登陆。 Canonical的Will Cooke在本周的周报中写道:“我们仍在通过配置Livepatch和分享系统信息等决定来添加全新的...阅读全文
Zoom 视频通信公司日前公布了 Zoom 5.0 的详细信息,这是对其视频会议客户端的一次重大更新,以解决最近几周发现的许多安全和隐私问题。在即将发布的版本中,用户可以从增加的 AES 256 位 GCM 加密功能中受益,同时还可以选择通话路由。 Zoom 的首席运营官 Oded Gal 表示,Zoom 从整体上考虑用户的隐私和平台的安全性。从 Zoom 网络到 Zoom 功能集到用户体验,所有的一切都要经过严格的审查。在后端,AES 256 位 GCM 加密技术将提升用户数据在传输过程中的安全标准。在前端,Zoom 最兴奋的是会议菜单栏中的安全图标。这将会把所有安全功能,无论是现有的还是新的,都放在会议主持人的前面和中心位置,这将确保用户可以在会议中即时访问重要的安全控制功能...阅读全文
Kiwi TCMS 是一个集测试计划、测试运行和测试用例于一身的管理系统,用 Python 和 Django 编写。7.1 版本如下: 支持的升级路径: 5.3 (or older) -> 5.3.1 5.3.1 (or newer) -> 6.0.1 6.0.1 -> 6.1 6.1 -> 6.1.1 6.1.1 -> 6.2 (or newer) Improvements 将 Django 从 2.2.5 更新到 2.2.6将 python-GitLab 从 1.11.0 更新到 1.12.1pygithub 从 1.43.8 更新到 1.44psycopg2 从 2.8.3 更新到 2.8.4在所有遥测页面中添加帮助工具提示添加超链接验证 Fixes Issue #1147 API...阅读全文
如果你在 dmesg 日志中发现了该错误,对应的 xfs 分区不能被挂载和使用, ``` "XFS Filesystem has duplicate UUID", ``` 临时解决办法是,在 mount 命令中使用 nouuid 挂载选项, ``` # mount -o ro,nouuid /dev/nvme0n1p1 /mnt ``` 临时解决办法在你机器重启后将失效,持久的办法应该是使用 xfs_admin 命令行工具生成新的 UUID,然后将新的UUID配置到 /etc/fstab 中, ``` # xfs_admin -U generate /dev/nvme0n1p1 Clearing log and setting UUID...阅读全文
Go 1.10 还没发布,下面将简单介绍正在进行中的 Go 1.10 发布说明草案。Go 1.9 已于 2017 年 8 月发布,最新的 Go 1.10 预计将于 Go 1.9 发布六个月后 —— 2018 年 2 月发布。 Go 1.10 大部分的变更仍然集中在工具链、运行时和库的实现上。一如既往地,此版本依然会 保持与 Go 1.x 的兼容性 ,官方表示几乎所有的 Go 应用程序都能像以前一样继续编译和运行。 语言特性方面的改变 语言特性方面没有实质性的变化。 极端情况下,由无类型常量引起的变化已经弄清楚。因此,编译器也已进行升级,它可允许这样的索引表达式 x[1.0 << s] 通过编译,其中 s 是一个无类型常量。go/types 包也已完善。 方法表达式的语法 (grammar...阅读全文
Linux 内核维护者已经决定在即将发布的版本中放弃对旧 CPU 架构的支持。因此,Linux 4.17 内核将减少大约 50 万行代码,目前它包含大约 2030 万行代码。 Linux 内核维护者已经决定在即将发布的版本中放弃对旧 CPU 架构的支持。因此,Linux 4.17 内核将减少大约 50 万行代码,目前它包含大约 2030 万行代码。将被弃用的体系结构是 Blackfin,CRIS,FRV,M32R,Metag,MN10300,Score 和 Tile。虽然不被弃用,Unicore32 和 Hexagon 体系结构也处于风险之中,但他们的维护人员正在努力改善情况,以便继续支持。 内核开发人员 Arnd Bergmann 在 Linux 内核邮件列表中发帖称: “Linux...阅读全文
谷歌开始在其Chrome浏览器中实现对HTTP/3的支持,该公司在一篇博客中宣布。此次更新将带来一些额外的性能改进,主要得益于实现了QUIC作为传输协议。互联网工程任务组(或IETF)早在2015年就推出了HTTP/2,它带来的一大改进就是支持复用。 但是,它采用了TCP作为传输协议,以及TCP中的丢失恢复机制,所以丢失的数据包仍然会造成所有活动事务的延迟。通过采用QUIC,HTTP/3可以进一步改善传输过程,因为丢失的数据包只会影响到直接受其影响的事务。 谷歌是QUIC的最初开发者,但该协议在IETF手中已经有一段时间了,现在IETF版本的QUIC与谷歌内部的QUIC有很大不同。到目前为止,谷歌只支持自己的QUIC实现,而IETF则还在研究其版本,但现在这种情况正在改变。谷歌表示...阅读全文