InfraPub 为您找到相关结果 147

说透IO多路复用模型_京东云开发者的博客

作者:京东零售 石朝阳 在说IO多路复用模型之前,我们先来大致了解下Linux文件系统。在Linux系统中,不论是你的鼠标,键盘,还是打印机,甚至于连接到本机的socket client端,都是以文件描述符的形式存在于系统中,诸如此类,等等等等,所以可以这么说,一切皆文件。来看一下系统定义的文件描述符说明: 从上面的可以看到,文件描述符0,1,2都已经被系统占用了,当系统启动的时候,这三个描述符就存在了。其中0代表标准输入,1代表标准输出,2代表错误输出。当我们创建新的文件描述符的时候,就会在2的基础上进行递增。可以这么说,文件描述符是为了管理被打开的文件而创建的系统索引,他代表了文件的身份ID。对标windows的话,你可以认为和句柄类似,这样就更容易理解一些。 由于网上对linux...阅读全文

博文 2023-01-01 15:13:50 CSDN博客

Debian 使用VSFtpd安装配置架设FTP服务器

Vsftpd的安装: aptitude update //更新数据源 aptitude install vsftpd //安装vsftpd Vsftpd的文件结构: /usr/sbin/vsftpd —- VSFTPD的主程序 /etc/init.d/vsftpd —- 启动脚本 /etc/vsftpd.conf —- 主配置文件 /etc/pam.d/vsftpd —- PAM认证文件 /etc/ftpusers —-记录不允许访问FTP服务器的用户名单 /home/ftp —-Vsftpd的根目录 此外VSFTPD的日志文件为/var/log/vsftpd.log。 Vsftpd的管理控制。 /etc/init.d/vsftpd start //启动vsftpd /etc...阅读全文

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

bmon:一个强大的网络带宽监视和调试工具

用 proc 输入模块运行 bmon: $ bmon -i proc -p enp1s0 如何使用 bmon 输出模块 bmon 也使用输出模块显示或者导出上面输入模块收集的统计数据,输出模块包括: curses - 这是一个交互式的文本用户界面,它提供实时的网上估计以及每个属性的图形化表示。这是默认的输出模块。 ascii - 这是用于用户查看的简单可编程文本输出。它能显示网卡、详细计数以及图形到控制台。当 curses 库不可用时这是默认的备选输出模块。 format - 这是完全脚本化的输出模式,供其它程序使用 - 意味着我们可以在后面的脚本和程序中使用它的输出值进行分析。 null - 停用输出。 像下面这样通过 help 选项获取更多的模块信息。 $ bmon -o...阅读全文

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

使用 setfacl 管理文件的访问控制列表ACL

如果你是在一个大型组织,你运行了 NFS 或者 Samba 服务给不同的用户,你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。Linux(以及其他Unix等POSIX兼容的操作系统)有一个被称为访问控制(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要维护3个权限组:owner、group和other。 使用ACL后,你可以设置权限给其他用户或组,而不单只是简单的"other"。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。 ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btrfs等。如果你不确定你的文件系统是否支持ACL,请参考文档。 首先我们需要安装工具来管理ACL...阅读全文

Debian 社区陷入尴尬 或群龙无首

前两天我们才报导过 Debian 包维护者 Michael Stapelberg 因对 Debian 社区的现状不满而 宣布退出 Debian 的维护 ,该消息引发了人们对于 Debian 的担忧。11 日,邮件上一封标题为“Leaderless Debian”的公开信进一步加深了这种担忧。 Debian 社区目前正在进行领导人选举,3 月 3 日-10 日是候选人提名阶段,然而,截至公开信发出的 11 日,还没有一位符合资格的 Debian 开发者提交申请。 此前的 Debian 领导人 Chris Lamb 一直被寄予厚望,他已经连任了两年,但是今年他公开表示因为一些 Debian 相关的与私人的原因 不参与竞选 。 所以,现在出现了尴尬的情况:“提名期已经结束,竞选期已经开始,但...阅读全文

博文 2019-03-14 11:05:23 debian.cn

Java 12 / JDK 12 正式发布

,同时保留 32 位 ARM 实现和 64 位 aarch64。 JDK 中存在两套 64 位 ARM 实现,主要存在于 src/hotspot/cpu/arm 和 open/src/hotspot/cpu/aarch64 目录。两者都实现了 aarch64,现在将只保留后者,删除由 Oracle 提供的 arm64。这将使贡献者将他们的精力集中在单个 64 位 ARM 实现上,并消除维护两套实现所需的重复工作。 Default CDS Archives 默认类数据共享归档文件 针对 64 位平台,使用默认类增强 JDK 构建过程以生成类数据共享(class data-sharing,CDS)档。 Abortable Mixed Collections for G1 可中止的 G1...阅读全文

博文 2019-03-20 12:46:27 debian.cn

PostgreSQL 13 正式版发布

索引所需的整体空间使用率,同时提高了整体查询性能。 PostgreSQL 13 引入了增量排序,即在查询中较早步骤的排序数据可以加速后面步骤的排序。此外,PostgreSQL 现在可以使用扩展的统计信息(可通过CREATE STATISTICS访问)来为带有OR子句和IN/ ANY查找的查询创建改进的计划。 在 PostgreSQL 13 中,更多类型的聚合查询和分组查询可以利用 PostgreSQL 的高效哈希聚合功能,因为具有大型聚合的查询不必完全放入内存。对分区表的查询也得到了性能提升,因为现在有更多的情况下可以修剪分区和直接联接分区。 优化管理 清理(Vacuuming)是 PostgreSQL 管理的一个重要部分,使数据库在更新和删除行后能够回收存储空间。此过程也会带来管理上的...阅读全文

博文 2020-10-04 20:07:23 debian.cn

Polar Signals 开源 Parca 以优化代码并减少云账单 - OSCHINA

+\ ) 以将一个编辑器分成两部分,而无需第二个编辑器组。这允许你在同一个文件上并排使用两个编辑器。你还可以通过"切换布局"按钮... 4 1 GeoGebra 6.0.668.0 发布,绘图神器 Geogebra 是动态数学软件,它将几何、代数、电子表格、绘图、统计和微积分集成在一个易于使用的软件包中。 GeoGebra 6.0.668.0 版本现已发布,具体更新内容如下: Fixed:丢失的 Labelling 菜单 Fixed:绘制抛物线等的问题 Fixed:在 iOS 上,输入框滚动小程序的问题 Fixed:IntersectPath(P, a) 与 Zip() Fixed:中... 0 6...阅读全文

博文 2021-10-09 12:23:58 中文开源技术交流社区

7 个月猛涨 12 亿美元,开源技术服务商成北欧最新独角兽 - OSCHINA

snaps 进行升级,也可以从官方网站下载。 主要更新内容 修复了接口方法上的调用层次结构以正确返回结果 如果 IDE 由于操作系统关闭而关闭,则修复了每次启动时重复索引的问题 修复了在 WSL 2 中重新打开项目时导致 IDE 冻... 5 1 J 语言联合创始人 Roger Hui 因癌症去世 J 语言邮件昨日发布了 J 语言发明者之一 Roger Hui 去世的讣告。 我们从讣告得知,Roger Hui 在与癌症抗争数年后,于 2021 年 10 月 16 日星期六下午安详离世,生命的最后时光在临终关怀医院度过,享年 68 岁。 根据维基百科的介绍,J 语言是图灵奖获得者 Kenneth E. Iverson 和许国华 (Roger Hui) 于 1990 年代初发... 8 1...阅读全文

博文 2021-10-21 20:04:43 中文开源技术交流社区

兼容 tmux 的文件上传/下载工具 trzsz ( trz / tsz ) 使用指南 支持进度条和目录传输

– 安装 tabby-trzsz 插件即可。electerm – 升级到 1.19.0 以上的版本即可。trzsz-go – 只要是支持本地 shell 的终端就可以用。trzsz.js – 让运行在浏览器中的 webshell 和用 electron 开发的终端支持 trzsz。 如果你的终端也支持 trzsz,请告诉我,我很乐意将它加到此中。trzsz 使用指南trz 上传文件trz 命令可以不带任何参数,将上传文件到当前目录。也可以带一个目录参数,指定上传到哪个目录。trz /tmp/ tsz 下载文件tsz 可以带一个或多个文件名(可使用相对路径或绝对路径,也可使用通配符),将下载指定的文件。tsz file1 file2 file3 -q 静默模式trz -q 或 tsz -q...阅读全文

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

apiserver 如何对请求进行认证呢?当 kube-apiserver 第一次启动时,它会查看用户提供的所有 CLI 参数,并组合成一个合适的令牌。 举个例子:如果提供了 --client-ca-file 参数,则会将 x509 客户端证书认证添加到令牌中;如果提供了 --token-auth-file 参数,则会将 breaer token 添加到令牌中。 每次收到请求时,apiserver 都会通过令牌链进行认证,直到某一个认证成功为止: x509 处理程序将验证 HTTP 请求是否是由 CA 根证书签名的 TLS 密钥进行编码的。bearer token 处理程序将验证 --token-auth-file 参数提供的 token 文件是否存在。基本认证处理程序确保 HTTP 请求的基本...阅读全文

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

Debian 成为主流 Linux 操作系统的七个原因

长足发展,戳穿了它很难安装这个流言。目前的安装程序是市面上最灵活的安装程序之一。如果你接受默认设置、安装它建议的一群软件包,它就会进行安装,安装时间与Fedora的Anaconda大致一样。然而如果你自行选择,安装和选择一个个软件包所花的时间要长得多。这就是为什么率先推出快速安装程序的Ubuntu建议使用快速解决问题的Debian安装程序版本。 1.Debian社区 除了技术方面外,Debian还拥有免费软件领域最庞大、最创新的社区之一。该项目的邮件上热烈地讨论政策和技术选择;重大问题在Debian维护人员当中进行投票表决,包括谁是下一任项目负责人。所有投票取决于Condorcet方法,这是最公正的表决方法之一。在过去,该社区常常不欢迎女性,但这种情况在改善;总体上来讲,Debian在力...阅读全文

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

改善 Debian Linux 软件包管理的七款工具

了十个速度最快的镜像,然后把它们写入到你的软件包源。apt-spy执行类似的功能。 3. apt-transport-tor 你可能也知道了,Tor是一款匿名浏览工具。然而,即便你注重安全,下载软件包有可能让别人跟踪你的活动,进而一路跟踪你的系统。 apt-transport-tor让你可以堵住这个安全漏洞,它通过Tor来传输软件包管理指令。 2. cron-apt 如果你注重安全,或者只想要最新软件包,cron-apt可以帮助你确保版本最新。顾名思义,cron-apt可以为你的系统调度定期下载,并通知可用更新版。用户往往每天更新一次。 然而要注意:cron-apt下载但不安装更新的软件包。这个限制是有意设置的,因为在无人照看的情况下安装一切会导致系统问题。检查什么更新版可用后,你可以手...阅读全文

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

Kubernetes 1.7:安全加固、有状态应用更新等

项来向 API 服务器添加自定义业务逻辑在对象创建的时候进行更改,以及验证策略。 对于联合的集群,引入了基于策略的联合资源放置(Policy-based Federated Resource Placement),处于alpha状态,其基于自定义的要求如规则、定价或者性能。 废弃: 第三方资源(Third Party Resource,TPR)已经被自定义资源定义(Custom Resource Definition,CRD)取代,后者的API更加简洁,并且解决了 TPR beta 测试时出现的问题和边缘场景。鼓励从 TPR 迁移到 CRD,因为Kubernetes 1.9中社区会去掉TRP。 上面就是 Kuberenetes 1.7 关键特性的一部分。完整的可以查看发布说明。 采用 感...阅读全文

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

Tmux 快速教程:快捷键和配置

示当前的时间 ctrl + z 挂起当前会话 窗口操作 c 创建新窗口 & 关闭当前窗口 [0-9] 数字键切换到指定窗口 p 切换至上一窗口 n 切换至下一窗口 l 前后窗口间互相切换 w 通过窗口切换窗口 , 重命名当前窗口,便于识别 . 修改当前窗口编号,相当于重新排序 f 在所有窗口中查找关键词,便于窗口多了切换 面板操作 " 将当前面板上下分屏(我自己改成了 |) % 将当前面板左右分屏(我自己改成了 -) x 关闭当前分屏 ! 将当前面板置于新窗口,即新建一个窗口,其中仅包含当前面板 ctrl+方向键 以1个单元格为单位移动边缘以调整当前面板大小 alt+方向键 以5个单元格为单位移动边缘以调整当前面板大小 q 显示面板编号 o 选择当前窗口中下一个面板 方向键 移动光标选择...阅读全文

博文 2017-11-07 15:17:49 debian.cn

Kubernetes 1.9发布:Apps Workloads通用版本与生态系统扩展

称SIG)都在继续立足所在层面交付用户们最为需要的功能。感兴趣的朋友可以点击说明[7]查看发行版说明中的完整功能。 发布时间 Kubernetes 1.9目前已经可通过GitHub[8]下载。若需要马上开始使用Kubernetes,请参阅相关交互教程[9]。 发行团队 此次发行版的推出,源自数百名技术与非技术参与者们的共同努力。这里特别感谢谷歌公司软件工程师Anthony Yeh领导的发行团队。该发行团队中的14名成员一直在努力协调发行工作中的方方面面,包括说明文档、测试、验证以及功能完整性等等。 随着Kubernetes社区的不断发展,我们的发行流程也已经成为开源软件开发合作领域的一大标志性产物。Kubernetes继续以惊人的速度吸引到更多新用户的参与。这种增长创造出更为积极的反馈周...阅读全文

博文 2017-12-17 01:00:00 debian.cn

Kubernetes常用命令大全(持续更新)

kubernetes,简称K8s,是知名的开源容器编排与调度平台,它的目标是让容器化部署、资源分配简单且高效。K8s是绝对主流且流行的容器管理平台,据说在合肥运维同学不会k8s是找不到工作的。本文我们将列举常用的kubernetes命令,后续会完善内容并提升易读性。 想起十几年前,我曾在Linux伊甸园的论坛,整理过一份rpm常用命令的,不知有多少朋友看过? 查看所有namespace的pods运行情况 kubectl get pods --all-namespaces 查看具体pods,记得后边跟namespace名字哦 kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system 查看...阅读全文

博文 2020-03-13 12:35:13 debian.cn

Apollo 分布式配置中心详解

据库等。 配置需要治理 权限控制,由于配置能改变程序的行为,不正确的配置甚至能引起灾难,所以对配置的修改必须有比较完善的权限控制,不同环境、集群配置管理,同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境、集群配置管理。 Apollo 配置中心基本使用 Apollo 基础模型 用户在配置中心对配置进行修改并发布;配置中心通知 Apollo 客户端有配置更新;Apollo 客户端从配置中心拉取最新的配置、更新本地配置并通知到应用。 界面概览 上图是 Apollo 配置中心中一个项目的配置首页,在页面左上方的环境模块展示了所有的环境和集群,用户可以随时切换。页面中央展示了两个 namespace(application 和...阅读全文

博文 2020-04-12 12:16:26 debian.cn

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

update && sudo apt install kubectl 上面几个命令的作用是添加了一个包含 Kubernetes 的 Debian 软件库,获取 GPG 密钥,然后更新软件包并安装 kubectl。如果 kubectl 有更新,我们将会通过标准软件更新机制收到通知。 现在在本地 PC 上就可以查看 Kubernetes 集群了,: local-pc$ kubectl get nodesNAME STATUS ROLES AGE VERSIONkmaster Ready master 12m v1.14.3-k3s.1knode1 Ready worker 103s v1.14.3-k3s.1knode1 Ready worker 103s v1.14.3-k3s.1 至此,我们已经完...阅读全文

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

案例:Redis命令不当 引起数据库雪崩 造成数百万损失

较多:字符串(String),哈希(Hash),(List),集合(Set),有序集合(Sorted Set), Bitmap, HyperLogLog和地理空间索引(geospatial)等,需要根据业务场景选择合适的类型。 常见的如:String可以用作普通的K-V、计数类;Hash可以用作对象如商品、经纪人等,包含较多属性的信息;List可以用作消息队列、粉丝/关注等;Set可以用于推荐;Sorted Set可以用于排行榜等! 9.命名规范 虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。 另外,在使用前缀作为命名空间区隔不同key的时候,最好在程序中使用全局配置...阅读全文

博文 2018-10-27 10:18:18 debian.cn

journalctl 清理journal日志 - 九重霄

下面的逻辑来覆盖默认设置: 主配置文件最先被读取, 优先级也最低。 所有 *.conf.d/ 中的配置文件 都会覆盖主配置文件中的设置。 所有 *.conf.d/ 中的配置文件(无论位于哪个目录中), 统一按照文件名的字典顺序处理。 当多个配置文件都设置了同一个选项的时候: (1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准; (2)如果该选项可接受一个值,那么将会按照文件名的字典顺序将所有值拼接起来。 为了便于排序, 建议给所有 *.conf.d/ 中的配置文件 都加上两位十进制数字的文件名前缀。 如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件, 那么最佳做法是在 /etc/ 目录中 创建一个指向 /dev/null 的同名符号链接...阅读全文

博文 2021-02-05 15:43:28 博客园

21款必不可少的Ubuntu桌面应用程序

能也不如后者来得大。 Ubuntu Cleaner是被抛弃的Ubuntu Tweak应用程序的“Cleaner”部分的分支。使用该应用程序是帮助释放Ubuntu空间的好方法。它可以清除不需要的程序包,清理过时的应用程序配置,还能清理apt和Web浏览器缓存内存。 16. FeedReader RSS阅读器 我用两种方式来密切关注成百上千的应用程序、网站及其他开发项目:电子邮件(通过邮件)和RSS新闻源(通过Feedly)。如果你使用后者(或者即便不用),可能会有兴趣打量一下FeedReader。 FeedReader是一款GTK桌面RSS阅读应用程序,适用于Linux桌面。它并不是各方面都很完善,好几个地方还是不尽人意,但它是在浏览器标签中使用Feedly的比较好的工具。它可以通过专用...阅读全文

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

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

。 Debian的投票方式几乎是独一无二的。Debian 开发者不是简单地提供一个选项,而是自己创造所有这些选项,通常会有大量的选项,而且经常会引入许多相关讨论。 这个方案的初衷是希望能创造出尽可能反映整个 project 意愿的结果,因此Debian 的投票方案允许一张选票中包含许多差异不大的选项。 但是,这也是一个再拖沓不过的方案。比如,在2019 年关于一场 systemd 辩论中,当时采用的是一般决议流程。投票一直没能开始,当时的 DPL Sam Hartman 就要求尽快对决议进行投票。 这让一些参与者感到很不满意。有人试图拒绝这个提前投票,但没有成功,于是对七个选项的投票就正常完成了。一些开发者认为这个过程又一次被滥用了,也对整个项目造成了损害。 “这种面临决定时的怯步,是不健康的...阅读全文

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

“Debian 章程有毒” - OSCHINA

Debian 章程最初制定的时候,尽管感觉到了不妥,但我没有发声。我很清楚,这份有毒的章程正在缓慢且坚定地引导 Debian 走向病态。 在2021年11月的一次访谈中,Joey 直言 “Debian 章程有毒”。在 Debian 章程的框架下,Joey 感到紧张,因为这些章程正在拖延着所有的决策。 同样是在2014年,同样是因为这场旷日持久的 syetemd 论战,当年的 Debian 技术委员会成员 Colin Watson 和 Russ Allbery 先后在 Debian 邮件上宣布了辞职声明。在 Russ Allbery 的辞职信中,他提到了 Joey: Finally, I've been thinking hard about Debian project governance in...阅读全文

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

Kafka 3.0新特性全面曝光,真香!

要给唯一id,以及对应的版本号。/config: 集群配置信息。/controller:kafka集群当中的控制器信息,控制器组件(Controller),是Apache Kafka的核心组件。它的主要作用是在Apache ZooKeeper的帮助下管理和协调整个Kafka集群。/controller_epoch:主要用于保存记录controller的选举的次数。/isr_change_notification:isr发生变更时候的通知,在kafka当中由于存在ISR变更的情况发生,为了保证ISR更新的及时性,定义了isr_change_notification这个节点,主要用于通知Controller来及时将ISR进行变更。/latest_producer_id_block...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

Apollo 配置中心简单介绍

Apollo对外部依赖尽可能地少目前唯一的外部依赖是MySQL,所以部署非常简单,只要安装好Java和MySQL就可以让Apollo跑起来Apollo还提供了打包脚本,一键就可以生成所有需要的安装包,并且支持自定义运行时参数 3、Apollo at a glance 3.1 基础模型 如下即是Apollo的基础模型: 用户在配置中心对配置进行修改并发布配置中心通知Apollo客户端有配置更新Apollo客户端从配置中心拉取最新的配置、更新本地配置并通知到应用 3.2 界面概览 上图是Apollo配置中心中一个项目的配置首页 在页面左上方的环境模块展示了所有的环境和集群,用户可以随时切换。页面中央展示了两个namespace(application和FX.apollo)的配置信息,默认按照表格模式展...阅读全文

博文 2021-04-09 17:53:51 CSDN

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

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

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

Docker 17.06 社区版发布

今天我们发布了Docker CE 17.06,它包含了诸多新特性、优化和bug修复。我们在四月份的DockeCon上公布了Moby项目,Docker CE 17.06是第一个完全构建在它基础上的Docker版本。变更日志中能看到完整的更新,我们来看看它的一些新特性。 我们也为这篇文章制作了一个视频版本。 多阶段构建 17.06 CE最大的特性是它的多阶段构建(multi-stage builds),它最初在四月的DockerCon被公布,现在已经达到了稳定版本。多阶段构建能从一个Dockerfile中构建出更加简洁、体积更小的Docker镜像。 多阶段构建通过构建过渡镜像并产生输出。这样就能在一个过渡镜像中编译代码,在最终的镜像中只使用它的输出。例如,Java开发者通常使用Apache...阅读全文

博文 2017-06-30 23:08:57 debian.cn

成功运作一个开源项目的15个要点

少。 2、透明 这一点很容易理解:我们要使得社区可以观察和了解你正在做的事情:使用易于查找的可公开访问的源代码存储库,使用面向公众的问题跟踪软件,在社区可以找到的地方公布发布计划,以及在公共论坛捕获会议记录(例如归档邮件)。 3、开放 对于很多开源项目来说,“透明度”和“开放性”意味着同一件事,但其实这两个术语的含义截然不同。开放不仅仅指的是“一目了然”(这与透明本质上是一样的)。对于许多人来说,开源的“开放”意味着开放新思想,或开放参与。参与开源项目的规则对于每个人应该是一样的(“公平的竞争环境”):仅仅接受几个补丁是不够的,你必须对新的思路点子开放。总之,你必须允许别人参与你的项目,放弃对项目的绝对控制。 4、保持“公平的竞争环境” 这并不一定意味着你必须让任何人加入项目,而是要确保...阅读全文

博文 2017-11-08 09:58:28 debian.cn

Golang 中的 channel 通道详解

,dataqsiz 表示缓冲区的大小,对于无缓冲区通道而言 dataqsiz 的值为 0。如果 qcount 和 dataqsiz 的值相同,则表示缓冲区用完了。__buf __缓冲区表示的是一个环形队列 。其中 **sendx 表示下一个发送的地址,recvx **表示下一个接收的地址。elemtype 是channel的中存放的具体类型,每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。recvq 表示等待接收的 sudog ,一个接收语句执行时,如果缓冲区没有数据而且当前没有别的发送者在等待,那么执行者 goroutine 会被挂起,并且将对应的 sudog 对象放到 recvq 中。sendq 类似于 recvq,一个发送语句执行时,如果缓冲区已经满了,而且没...阅读全文

架构师详解 Nginx 架构

一个待处理事件的,使用非阻塞 I/O 方式调用“事件处理器”来处理该请求。其处理方式称为“多路 IO 复用方法”,常见的包括以下三种:select 模型、poll 模型、epoll 模型。 针对上面的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:433540541,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。 四. Nginx 设计架构 Nginx 服务器使用 master/worker 多进程模式。多...阅读全文

博文 2018-05-01 23:10:47 debian.cn

五款流行开源的 HIDS 系统简单介绍

可以在Windows,不同的Linux发行版和MacOS上运行。OSSEC通常与Wazuh进行比较;我们将介绍OSSEC与Wazuh之间的一些细分情况,这是HIDS或SIEM用户进行的比较。在此的后面,我们将介绍Wazuh。作为HIDS,此工具使您能够使用签名和异常检测方法来执行日志分析,文件完整性检查,策略监视,rootkit检测和活动响应。它提供了对系统操作的有价值的洞察力,以检测异常。OSSEC采用服务器代理模型-意味着专用服务器为每个主机提供聚合和分析。要安装和配置OSSEC,步骤非常简单 ,但OSSEC确实有一些缺点。例如,如果要升级到较新的版本,除非进行导出并在迁移后将其导入,否则由于覆盖操作,您将丢失定义的规则。但是,如果您聚合多个设备和不同的服务(Web服务器,数据库,防...阅读全文

提问的智慧 – 全文

者」论坛提问。建议你在发帖前最好先潜水一阵以了解那的行事风格(事实上这是参与任何私有或半私有论坛的好主意)。 如果你找不到一个项目组的论坛,只能查到项目维护者的邮箱地址,可以向其发送邮件。但即便在这种情况下,也不要以为这个论坛是不存在的。在电子邮件中你可以陈述你试图寻找这个论坛的事实,告诉维护者也可以转发该邮件到相关的人员手中(许多人认为,即使没什么秘密,私人电子邮件也不应该被公开。通过允许将你的电子邮件转发他人,你给了相应人员处置你邮件的选择)。 【本章注释】 [10]原文为邮件,邮件是论坛的初始形态,以前的论坛是以邮件名称作为联系ID交流,所以,在此篇文章中,邮件可视作论坛。 使用含义丰富,描述准确的标题 请在论坛中用五十个或更少的字来描述你的主题,这是你吸引专家专家注意力的...阅读全文

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

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

个基础架构提供者的格式。 但是没有两个服务是完全相同的,服务有很多类型,有时候称其为服务模型。服务模型可能构成像Shakespeare服务的简单服务:有前端,负载均衡器以及数据库。服务模型仅需要知道运行哪个二进制文件,在多少集群里运行它,以及数据库schema。服务模型的逻辑随后扩展该服务的配置。比如,服务模型能够将集群转化为负载均衡器基础架构的配置。 实际上,服务模型可能就是简单的一段脚本,将一个配置文件扩展为基础架构所需要的东西;服务模型也可能是复杂的pipeline。 如果你在处理多个服务模型以及多个基础架构提供者,就不得不维护N个服务模型和M个基础架构提供者之间的集成。这样的集成包括为每个提供者生成特定的配置并且部署它们——这个程序对于不同的提供者可能大不相同。 我们称之为NM问...阅读全文

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

HTTP状态码详解

可以在没有用户介入的情况下自动提交所需要的后续请求。客户端应当自动监测无限循环重定向(例如:A->A,或者A->B->C->A),因为这会导致服务器和客户端大量不必要的资源消耗。按照 HTTP/1.0 版规范的建议,浏览器不应自动访问超过5次的重定向。 300 被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。 除非这是一个 HEAD 请求,否则该响应应当包括一个资源特性及地址的的实体,以便用户或浏览器从中选择最合适的重定向地址。这个实体的格式由 Content-Type 定义的格式所决定。浏览器可能根据响应的格式以及浏览器自身能力,自动作出最合适的选择。当然,RFC 2616规范并没有规定这样的自动选...阅读全文

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

互联网协议正在发生变化

,在网络不拥有或无法访问计算机的情况下,这并不容易;例如,BYOD 已经很常用,并且物联网设备几乎没有合适的控制接口。 因此,在 IETF 中围绕协议开发的许多讨论,触及了企业和其它的 “叶子” 网络有时相互竞争的需求,以及互联网整体的好处。 参与 为了让互联网在以后工作的更好,它需要为终端用户提供价值、避免僵化、让网络有序运行。现在正在发生的变化需要满足所有的三个目标,但是,人们需要网络运营商更多的投入。 如果这些变化影响你的网络 —— 或者没有影响 —— 请在下面留下评论。更好地可以通过参加会议、加入邮件、或者对草案提供反馈来参与 IETF 的工作。 感谢 Martin Thomson 和 Brian Trammell 的评论。本文转载自Linux.cn...阅读全文

Gitlab CI 配置文件 .gitlab

only no 定义一列git分支,并为其创建job except no 定义一列git分支,不创建job tags no 定义一列tags,用来指定选择哪个Runner(同时Runner也要设置tags) allow_failure no 允许job失败。失败的job不影响commit状态 when no 定义何时开始job。可以是on_success,on_failure,always或者manual dependencies no 定义job依赖关系,这样他们就可以互相传递artifacts cache no 定义应在后续运行之间缓存的文件 before_script no 重写一组在作业前执行的命令 after_script no 重写一组在作业后执行的命令 environment...阅读全文

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

Gitlab CI 配置文件 .gitlab

。 默认情况下,job artifacts 只正对成功的jobs收集。 artifacts用于指定成功后应附加到job的文件和目录的。只能使用项目工作间内的文件或目录路径。如果想要在不通的job之间传递artifacts,请查阅依赖关系。以下是一些例子: 发送binaries和.config中的所有文件: artifacts: paths: - binaries/ - .config 发送所有没有被Git跟踪的文件: artifacts: untracked: true 发送没有被Git跟踪和binaries中的所有文件: artifacts: untracked: true paths: - binaries/ 定义一个空的dependencies可以禁用artifact传递: job...阅读全文

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

Docker 核心原理

destination RETURN all -- anywhere anywhere DNAT tcp -- anywhere anywhere tcp dpt:8888 to:172.17.0.4:8888 外部请求访问访问地址为 宿主机ip:8888,网络包到达 eth0; 命中 iptables dnat 规则,把宿主机ip:8888 替换成 容器ip:8888; 宿主机把报文通过 veth pair 传递到容器 eth0 其他网络模式 Host 模式 和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP 和端口。但是,容器的其他方面,如文件系统、进程等还是和宿主机隔离的 Contanier 模式 这个模式指定新创建的容器和已...阅读全文

博文 2021-02-25 09:14:23 lxkaka

Debian 9 使用kubeadm创建 k8s 集群(下)

ClusterIP 10.96.0.1 443/TCP 1d 然后删除部署: kubectl delete deployment nginx 运行以下命令以确认这是否有效: kubectl get deployments OutputNo resources found. 结论 在本指南中,您已使用Kubeadm和Ansible成功在Debian 9上设置Kubernetes集群以实现自动化。 如果您想知道如何在群集设置的情况下对群集进行操作,那么下一步就是将自己的应用程序和服务部署到群集上。 这是一个链接,其中包含可以指导您完成此过程的更多信息: Dockerizing应用程序 - 列出了详细说明如何使用Docker对应用程序进行容器化的示例。Pod概述 - 详细描述了Pod如何工作以及它们与其他...阅读全文

博文 2019-05-13 22:57:41 debian.cn

深入理解Golang之context

cancelCtx取消时,会将后代节点中所有的cancelCtx都取消,propagateCancel即用来建立当前节点与祖先节点这个取消关联逻辑。如果parent.Done()返回nil,表明父节点以上的路径上没有可取消的context,不需要处理;如果在context链上找到到cancelCtx类型的祖先节点,则判断这个祖先节点是否已经取消,如果已经取消就取消当前节点;否则将当前节点加入到祖先节点的children。否则开启一个协程,监听parent.Done()和child.Done(),一旦parent.Done()返回的channel关闭,即context链中某个祖先节点context被取消,则将当前context也取消。这里或许有个疑问,为什么是祖先节点而不是父节点?这是因为当前...阅读全文

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

最全的 DevOps 工具集合

人员都可以使用这款敏捷项目管理工具,围绕一个共享的,带有优先级的 backlog 进行实时协作。 Trello Trello 是基于 Web 的看板风格制作应用程序,是 Atlassian 的子应用。 许多团队在规划各个 sprint 时都会用它。 Azure Boards 可以跟踪软件项目,并使用敏捷工具(包括 Scrum boards、看板 boards 和仪表板等)改进规划工作。同时,还有工具可以帮助你可视化工作、共享计划、跟踪进度,并确保你正在向目标迈进。 问题跟踪 问题跟踪阶段是为了提供客户响应能力,减少知识浪费,缩短反馈链路。目前业内比较常用的问题跟踪工具包括 Atlassian Jira、JetBrains YouTrack 和 ZenDesk。 Atlassian...阅读全文

博文 2021-05-26 14:35:21 博客园

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

位置,-2代表List倒数第二个位置。时间复杂度O(N) LSET:将指定List指定index上的元素设置为value,如果index越界则返回错误,时间复杂度O(N),如果操作的是头/尾部的元素,则时间复杂度为O(1) LINSERT:向指定List中指定元素之前/之后插入一个新元素,并返回操作后的List长度。如果指定的元素不存在,返回-1。如果指定key不存在,不会进行任何操作,时间复杂度O(N) 由于Redis的List是链表结构的,上述的三个命令的算法效率较低,需要对List进行遍历,命令的耗时无法预估,在List长度大的情况下耗时会明显增加,应谨慎使用。 换句话说,Redis的List实际是设计来用于实现队列,而不是用于实现类似ArrayList这样的的。如果你不是想要实现...阅读全文

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

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

去。这是 Kubernetes 的第一道防线,第二道防线是云厂商针对节点高频异常场景设计的节点自愈组件,如阿里云的node repairer:发现问题节点后,执行排水驱逐、置换机器,从而做到自动化地保障业务正常运行。即便如此,节点在长期使用过程中不可避免地会产生各种奇奇怪怪的问题,定位起来比较费时耗力。常见问题分类和级别:​针对这些繁杂的问题,总结出如下排查流程图:​以一个 CPU 打满为例:1、节点状态 OK,CPU 使用率超过了 90%​2、查看对应的 CPU 的三元组:使用率、TopN、时序图,首先每个核的使用率都很高,进而导致整体 CPU 使用高;接下来我们自然要知道谁在疯狂地使用 CPU,从 TopN 来看有个 Pod 一枝独秀地占用 CPU;最后我们得确认下 CPU 飙高是什...阅读全文

博文 2022-03-21 09:11:51 joseph

六大算法之三:动态规划【转载】

于理论上的设计,也就是上面4个步骤的确定,一旦设计完成,实现部分就会非常简单。 使用动态规划求解问题,最重要的就是确定动态规划三要素: (1)问题的阶段 (2)每个阶段的状态 (3)从前一个阶段转化到后一个阶段之间的递推关系。 递推关系必须是从次小的问题开始到较大的问题之间的转化,从这个角度来说,动态规划往往可以用递归程序来实现,不过因为递推可以充分利用前面保存的子问题的解来减少重复计算,所以对于大规模问题来说,有递归不可比拟的优势,这也是动态规划算法的核心之处。 确定了动态规划的这三要素,整个求解过程就可以用一个最优决策表来描述,最优决策表是一个二维表,其中行表示决策的阶段,示问题状态,表格需要填写的数据一般对应此问题的在某个阶段某个状态下的最优值(如最短路径,最长公共子序列,最大价值...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

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

| unless } 在指定的条件满足时启用统计报告页面的管理级别功能,它允许通过web接口启用或禁用服务器,不过,基于安全的角度考虑,统计报告页面应该尽可能为只读的。此外,如果启用了HAProxy的多进程模式,启用此管理级别将有可能导致异常行为。 目前来说,POST请求方法被限制于仅能使用缓冲区减去保留部分之外的空间,因此,服务器不能过长,否则,此请求将无法正常工作。因此,建议一次仅调整少数几个服务器。下面是两个案例,第一个限制了仅能在本机打开报告页面时启用管理级别功能,第二个定义了仅允许通过认证的用户使用管理级别功能。 backend stats_localhost stats enable stats admin if LOCALHOST backend stats_auth...阅读全文

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