Debian 爱好者社区 为您找到相关结果 328

技术部门的 SEO 规范

,不要使用JS生成。所有用户生成内容(UGC)中的链接加nofollow属性。栏目、产品/文章页面主图加ALT文字,如没有人工填写,可与页面Title相同。禁止使用任何隐藏文字或链接。尽量避免使用表格(table),尤其是嵌套表格。 页面打开速度相关 在不明显影响视觉效果前提下,所有图片均需要最大程度压缩处理后才能使用。不要使用超出实际显示尺寸的图片(不要上传大尺寸图片,然后缩小尺寸显示)。页面纯文字代码(包括HTML、JS、CSS)不超过500K。特殊页面如首页可适当放宽。删除未使用的CSS代码。尽量合并CSS文件。慎用、少用JS。在主流浏览器测试JS是否拖慢页面打开速度。使用主流浏览器实际测试页面打开速度,应不超过3秒。条件允许的话,从多省测试。 功能使用及代码 除非另行要求,网站所有页...阅读全文

博文 2019-03-28 13:58:51 debian.cn

Apollo 配置中心简单介绍

= config.getIntProperty("request.timeout",defaultRequestTimeout); 3.6 客户端监听配置变化(Java API样例) 通过上述获取配置代码,应用就能实时获取到最新的配置了。 不过在某些景下,应用还需要在配置变化时获得通知,比如数据库连接的切换等,所以Apollo还提供了监听配置变化的功能,Java示例如下: Config config = ConfigService.getAppConfig(); config.addChangeListener(new ConfigChangeListener() { @Override public void onChange(ConfigChangeEvent changeEvent) { for (String key...阅读全文

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

深入学习golang — channel

channel。 func handle(queue chan *Request) { for req := range queue { result := do_something() req.resultChan <- result } } 6. 多个channel 在实际编程中,经常会遇到在一个goroutine中处理多个channel的情况。我们不可能阻塞在两个channel,这时就该select了。与C语言中的select可以监控多个fd一样,go语言中select可以等待多个channel。 c1 := make(chan string) c2 := make(chan string) go func() { time.Sleep(time.Second * 1) c1 <- "one...阅读全文

博文 2021-01-25 12:39:17 博客园

Linux 容器 vs 虚拟机 — 谁更胜一筹

拟机有着更好的灵活性,可以供您选择您的操作系统,并在您认为合适的情况下进行升级。相比之下,运行已配置应用程序容器在主机的操作系统升级方面是隔离的。 Linux 容器 vs 虚拟机 – 用例景 我最喜欢使用容器的原因之一就是使用 Linux 库版本。例如,假设您需要 Python 的特定版本来开发应用程序。然后,当你在运行应用程序的盒子上更新时,突然发现 Python 版本发生了变化,导致应用程序无法正常工作。 使用容器的另一个好处是你可以把一个应用程序放到一个容器中,然后在任何支持你正在运行的容器类型的操作系统上运行它。当你想要一个运行在不同 Linux 发行版应用程序时。通过使用容器,可以在各种不同的发行版上运行类似的应用程序环境。容器提供了可移植性。 容器对于快速的跨发行版部署是更可行...阅读全文

博文 2017-11-25 10:23:56 debian.cn

Apollo 分布式配置中心详解

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理景。 本文简单从功能特点做介绍,更详细的说明请参考Apollo配置中心介绍。本地快速部署可以参考这里。线上的演示环境从这里可以访问到: 106.54.227.205 (账号/密码: apollo/admin) Apollo 配置中心产生背景 大多情况下程序随着功能的复杂,程序的配置也会增多:包括各种功能开关、参数配置、服务地址信息配置等,同时开发人员对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群的管理配置、权限控制、审核机制等。 在这样的大环境下,传统的通过配置文件、数据库...阅读全文

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

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

我们将介绍,如何在三个树莓派上,创建出一套 Kubernetes 集群并正常使用。在这种景下,主节点的内存和 CPU 资源较有限,执行 Kubernetes 任务时性能会有折扣,想做升级也不容易。 在开始之前,我们先介绍 K3s 这个项目。K3s 被誉为是最轻量级的 Kubernetes 发行版,它针对低配的 x86 和 ARM 处理器优化,可以让 Kubernetes 在树莓派上运行得更好。 基于 Raspbian 的 kubernetes 集群 本文我们将介绍如何使用 K3s 在树莓派上创建 Kubernetes 集群。系统我们用的是树莓派最流行的 Raspbian。 准备工作 在开始创建 Kubernetes 集群之前,我们需要准备, 至少一个树莓派,包括 SD 卡和电源网线,普通...阅读全文

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

深入理解Golang之context

。这个时候context就派上用了。我们首先看看context的结构设计和实现原理。context是什么context接口先看Context接口结构,看起来非常简单。type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} } Context接口包含四个方法:Deadline返回绑定当前context的任务被取消的截止时间;如果没有设定期限,将返回ok == false。Done 当绑定当前context的任务被取消时,将返回一个关闭的channel;如果当前context不会被取...阅读全文

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

协议介绍之深入了解 gRPC

streams,多个 streams 发送的数据互相不影响。 Stream 可以被 client 和 server 单方面或者共享使用。 Stream 可以被任意一段关闭。 Stream 会确定好发送 frame 的顺序,另一端会按照接受到的顺序来处理。 Stream 用一个唯一 ID 来标识。 这里在说一下 Stream ID,如果是 client 创建的 stream,ID 就是奇数,如果是 server 创建的,ID 就是偶数。ID 0x00 和 0x01 都有特定的使用景。 Stream ID 不可能被重复使用,如果一条连接上面 ID 分配完了,client 会新建一条连接。而 server 则会给 client 发送一个 GOAWAY frame 强制让 client 新建一条连接。 为了更...阅读全文

博文 2017-06-22 11:08:48 debian.cn

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

DPDK 全称为 Data Plane Development Kit ,是近年来在高速网络通信行业中炙手可热的一种网络报文处理加速框架。DPDK 从十年前诞生直至发展到今天已经可以支持业界主流的高端网卡以及各类加速硬件设备,同时也支持主流的各个CPU 体系结构(可以运行于 X86, Arm, Power 等平台)。同时也可以运行于 Linux/FreeBsd/Windows 等主流操作系统之上。DPDK因为其优异的性能指标被广泛的应用于网关/负载均衡/SDN/虚拟交换的各个景。 本文主要介绍 DPDK 中的 libgraph 设计思想以及实现,libgraph 的设计思想源自于开源项目 Vector Packet Processor(VPP)。VPP 中的向量包处理优化方案是...阅读全文

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

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

中删除。同时还可以提供一个守护进程,当发现备份队列中的消息过期时,可以重新将其再放回到主消息队列中,以便其它的消费者程序继续处理。 7.谨慎全量操作Hash、Set等集合结构 在使用HASH结构存储对象属性时,开始只有有限的十几个field,往往使用HGETALL获取所有成员,效率也很高,但是随着业务发展,会将field扩张到上百个甚至几百个,此时还使用HGETALL会出现效率急剧下降、网卡频繁打满等问题【时间复杂度O(N)】,此时建议根据业务拆分为多个Hash结构;或者如果大部分都是获取所有属性的操作,可以将所有属性序列化为一个STRING类型存储!同样在使用SMEMBERS操作SET结构类型时也是相同的情况! 8.根据业务景合理使用不同的数据结构类型 目前Redis支持的数据库结构类型...阅读全文

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

容器原理之cgroup - abin在路上

多个 cgroup。 Google 工程师在 2006 年开始提出这个特性,最早叫“process containers[1]”,为了避免造成歧义,在 2007 年改名为“control group”,在 2008 年 1 月发布的 Linux Kernel 2.6.24 合入主线分支。此后,在此基础上又增加了一系列特性,包括 kernfs(伪文件系统,用于向用户导出内核的设备模型),firewalling(基于预定义的安全规则管理网络流量)和 unified hierarchy[2]。在 Linux Kernel 4.5 版本合入了 cgroup v2[3] 的实现代码。 cgroup 功能 在云原生景下,可以通过 cgroups 限制每个容器可以使用的资源。例如,对于...阅读全文

博文 2025-03-17 20:45:47 博客园

提问的智慧 – 全文

的,愚蠢的计算机操作员。 [6]指乐于分享,懂得专研和回报的人。 [7]人必自助而后人助之,而后天助之。出自《周易·系辞上》 提问前需要做的事情 在通过邮件、讨论组、论坛或社区提问之前,请先尝试做以下事情寻找答案: 使用论坛、知乎、百度知道、Quaro的搜索功能; 善用google、百度或其他搜索引擎在网络搜寻; 阅读说明书或者使用手册; 阅读网站上「常见问题解答」(FAQ); 自己检查或做试验; 请教熟悉此问题的朋友; 如果你是程序员,尝试阅读源代码。 提问时,请先表明你已做了上述事情,这将有助于改变你是懒又肥的寄生虫形象,同时给别人一种你不会浪费别人时间的印象。提问时最好再总结一下你从中学到的东西 ,我们喜欢那些善于学习总结的人,也喜欢回答他们提出的问题。 运用搜索,比如利用...阅读全文

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

王垠:如何掌握所有的程序语言

脚本语言的根本问题——他们的设计者不知道他们自己在干什么 采用脚本语言学编程,一个很严重的问题就是使得学习者抓不住关键。脚本语言往往把一些系统工具性质的东西(比如正则表达式,Web 概念)加入到语法里面,导致初学者为它们浪费太多时间,却没有理解编程最关键的概念:变量,函数,递归,类型…… 不推荐 Go 语言的原因类似,虽然 Go 语言不算脚本语言,然而他的设计者显然不明白自己在干什么。所以使用 Go 语言来学编程,你不能专注于最关键,最好的语言特性。 掌握关键语言特性,忽次要特性 为了达到我之前提到的融会贯通,一通百通的效果,初学者应该专注于语言里面最关键的特性,而不是被次要的特性分心。 举个夸张点的例子。我发现很多编程培训班和野鸡大学的编程入门课,往往一来就教学生如何使用 printf...阅读全文

博文 2017-07-10 10:13:17 debian.cn

Debian 9.3上安装和配置 Observium 监控平台

once every 2 hours 完成后保存并关闭文件,然后重新启动cron服务以应用此更改: systemctl restart cron 结论 恭喜! 您已经在Debian 9服务器上成功安装了Observium。 您现在可以轻松获得网络的状态和健康状况。 您可以检查Observium官方文档页面以获取有关配置设备,警报和身份验证模块的更多信息。【本文转载自 Howtoing.com,有增删】...阅读全文

博文 2017-12-30 11:35:21 debian.cn

Golang 中的 channel 通道详解

,channel的零值也是nil。两个相同类型的channel可以使用==运算符比较。如果两个channel引用的是相同的对象,那么比较的结果为真。一个channel也可以和nil进行比较。通道的操作发送ch := make(chan int,0) // 创建一个无缓存区的int channel ch <- 998 // 向通道发送一个int类型的值10 接收receiver := <-ch //将通道ch的值取出,赋值给变量receiver <- ch //将通道ch的值取出,忽结果 关闭close(ch) // 关闭通道 关于关闭通道需要注意的事情是,只有在通知接收方goroutine所有的数据都发送完毕的时候才需要关闭通道。通道是可以被垃圾回收机制回收的,它和关闭文件是不一样的,在结束操作之后关闭...阅读全文

下一代时间同步服务 Chrony 详解

会出现两次。因此,请放弃使用 ntpd、ntpdate 来校时。 makestep threshold limit 此指令使 Chrony 根据需要通过加速或减慢时钟来逐渐校正任何时间偏移。例如:makestep 1.0 3,就表示当头三次校时,如果时间相差 1.0s, 则跳跃式校时。 rtcsync 启用内核时间与 RTC 时间同步 (自动写回硬件)。 logdir 该参数用于指定 Chrony 日志文件的路径。 stratum weight 该参数用于设置当 chronyd 从可用源中选择同步源时,每个层应该添加多少距离到同步距离。默认情况下设置为 0,让 chronyd 在选择源时忽源的层级。 基本上常用的参数就只有这几个了,通常默认的配置文件就可以直接使用了,下面我们来看一个修改完...阅读全文

博文 2021-01-04 08:41:14 debian.cn

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

的网络架构复杂度高,节点、Pod、容器、服务、VPC 交相辉映,简直能让你眼花缭乱;网络问题排查需要一定的专业知识,大多数对网络问题都有种天生的恐惧;分布式 8 大谬误告诉我们网络不是稳定的、网络拓扑也不一成不变的、延时不可忽视,造成了端到端之间的网络拓扑不确定性。Kubernetes 环境下景的网络问题有:conntrack 记录满问题;IP 冲突;CoreDNS 解析慢、解析失败;节点没开外网。(对,你没听错);服务访问不通;配置问题(LoadBalance 配置、路由配置、device 配置、网卡配置);网络中断造成整个服务不可用。网络问题千千万万,但万变不离其宗的是网络有其表征其是否正常运行的”黄金指标“:网络流量和带宽;丢包数(率)和重传数(率);RTT。下面的示例展示了因网络问...阅读全文

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

Docker 17.06 社区版发布

的支持。可以将docker的/metrics端点暴露给插件: $ docker plugin install --grant-all-permissions cpuguy83/docker-metrics-plugin-test:latest $ curl http://127.0.0.1:19393/metrics 这个插件仅用于示范。它在主机的网络上运行了一个反向代理,能将请求转发给插件中的本地的指标套接字。在真实景中,可能会将收集的指标数据发送给外部的服务,或者使它可以被一个服务如Prometheus访问并收集。 注意尽管指标插件在非实验性的daemon中可以使用,指标标签(metrics label)仍应该被看作是实验性的,可能在Docker未来的版本中发生改动。 日志驱动插件 添...阅读全文

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

Linux系统诊断-内存基础

谈及linux内存,很多时候,我们会关注free,top等基础命令。当系统遇到异常情况时,内存问题的根因追溯,现诊断时,缺乏深层次的debug能力。本篇幅不做深层讨论,能把当前系统的问题描述清楚,是每个SRE应该具备的最基础能力。free========2.1 free命令原理free是通过查看 /proc/meminfo 来获取内存的使用情况。但是 /proc/meminfo 这个文件又是怎么来的?我们先了解下 /proc 目录:/proc 是一个虚拟文件系统,该目录下的所有文件都是伪文件,该类文件只存在于内存中,并不占用空间——使用 du -sh 即可验证,该模具路下的磁盘占用都是0。/proc 下的所有文件都是内核调用proc_create() 接口来创建的虚拟条目。/proc 中...阅读全文

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

2017 年会是 Serverless 爆发之年吗

大量数据的功能,例如搜索这类应用,我们不需要运行一个专用服务,而是通过 FaaS 模块,通过 API Gateway 对 HTTP 访问提供响应。这样可以使得客户端和服务端都从同一个数据库中读取相关数据。由于原始服务使用 Java 开发,AWS Lambda(FaaS 提供者)支持 Java 功能,因此可以直接从服务端将代码移植到搜索功能,而不用重写代码。 最后,可以将其他功能用另外一个 FaaS 功能取代,因为安全原因放在服务端还不如在客户端重新实现,当然前端还是 API Gateway。 常见的 Serverless 框架介绍 Amazon 的 Lambda 产品 2014 年 11 月 14 日,AWS 发布了 AWS Lambda。AWS Lambda 是面上最早,也是最为成熟的...阅读全文

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

三个技巧 大幅减少 Docker 镜像体积

Alpine 的镜像。它们的体积非常小,但代价是兼容性较差。Alpine 使用了微不同的标准 C 库——muslc。你可能会时不时地遇到一些兼容性问题。 原始基础镜像非常适合用于测试和开发。它虽然体积很大,但提供了与 Ubuntu 工作站一样的体验。此外,你还可以访问操作系统的所有二进制文件。 最后,我们再回顾一下各个镜像调整后的大小: node:8 681MB node:8 使用多阶段构建为 678MB gcr.io/distroless/nodejs 76.7MB node:8-alpine 69.7MB 英文原文:https://itnext.io/3-simple-tricks-for-smaller-docker-images-f0d2bda17d1e...阅读全文

博文 2018-09-06 10:50:29 debian.cn

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

,并且 toHexString()操作也进行了优化。重新使用 async-profiler 查看一下最新的火焰图信息。 之前的 toHexString() 耗时已经几乎看不到了,但是感觉日志append 的操作横轴还是长,于是将日志输出关闭来看看极限处理速度。 将日志级别调整为 warn,并启动程序,观测到处理速度已经能够达到 18万/s了,这相当于 toHexString()优化前的快3倍了。 此时决定再将日志append 模式改为异步模式,然后启动程序,观察,处理速率也能够达到 18万/s。 十、参考链接 火焰图的介绍论文 火焰图官方主页 火焰图生成工具 https://www.ruanyifeng.com/blog/2017/09/flame-graph.html https...阅读全文

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

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

。FSF 是 Debian 的赞助者,所以自然对我有所期望;但同时我在要求别人在闲时帮忙开发 Debian,所以那些人对我自然也有期望。有时候这两边的期望会出现分歧,我无法两边都满足。」 就这样,Debian 和 FSF 的正式合作关系画上了句号。不过 Murdock 始终都非常强调 Stallman 为 Debian 做出的贡献: 倘若没有他,没有他过去 15 年内从未动摇的坚定立,我们也就不会有如今「免费软件」的理念。 不久之后,1996 年 3 月,Murdock 决定辞退 Debian 项目领导人的身份。 我最近结婚了,我想花更多的时间陪伴我的家人。我已经为 Debian 埋头苦干了三年,我想我也是时候开始新的生活了。 在我们 1999 年面谈的时候,Murdock 表示他看到...阅读全文

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

WebAssembly:无需容器的 Docker (下)

-wasm:wordpress 可以访问 http://localhost:8087 并使用由 PHP Wasm 解释器服务的 WordPress,它由 Apache HTTPD 中的 mod_wasm 加载。直接在浏览器中服务 WordPress访问 https://wordpress.wasmlabs.dev 获得示例。 你将看到一个框架,其中 PHP Wasm 解释器会现渲染 WordPress。结论感谢阅读本文。 需要消化的内容很多,但我们希望本文有助于理解 WebAssembly 的能力以及它如何与你现有的代码库和工具(包括 Docker)结合运行。 期待看到你使用 Wasm 编程!如果你觉得 WasmEdge 不错,不要忘了给我们点个赞!...阅读全文

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

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

Kubernetes对象的关系。 豆荚在Kubernetes中无处不在,因此了解它们将有助于您的工作。部署概述 - 提供部署概述 。 了解部署控制器如何工作非常有用,因为它们在无状态应用程序中经常用于扩展和不健康应用程序的自动修复。服务概述 - 涵盖服务,Kubernetes集群中另一个常用对象。 了解服务类型及其选项对于运行无状态和有状态应用程序至关重要。 您可以研究的其他重要概念是Volumes , Ingresses和Secrets ,所有这些在部署生产应用程序时都会派上用。 Kubernetes提供了许多功能和特性。 Kubernetes官方文档是了解概念,查找特定于任务的指南以及查找各种对象的API参考的最佳位置。...阅读全文

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

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

阻止器 这款应用程序对我来说不可或缺。我的密码很长,每当我离开Ubuntu电脑一段时间,Ubuntu锁屏就会锁住屏幕。 但有时正当我起劲地在BuzzFeed上读一篇长文或者观看YouTube视频时,它也会锁住屏幕。这种情况下,我不想锁屏来干扰我,此时可以使用caffeine。 Caffeine提供了一种快速抑制(阻止)屏幕保护程序或锁屏的方法。只要你在需要它时启用它,不需要它时禁用它! 7. KdenLive视频编辑器 你需要在上传到YouTube之前修饰一个视频片段?想为长长的视频播客增添漂亮的转和炫酷的效果?那么,你应该使用Kdenlive。 Kdenlive是一款非线性视频编辑器,它很出色:用起来不仅很容易,还很可靠(其他Linux视频编辑器容易崩溃)。 替代方案:Flowblade...阅读全文

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

Apache Flink 1.14 新特性预览 - OSCHINA

在引擎层面,API 层面和算子的执行层面上做到了真正的流与批用同一套机制运行。但是在任务具体的执行模式上会有 2 种不同的模式: 下图是不同的执行模式: 对于无限的数据流,统一采用了流的执行模式。流的执行模式指的是所有计算节点是通过 Pipeline 模式去连接的,Pipeline 是指上游和下游计算任务是同时运行的,随着上游不断产出数据,下游同时在不断消费数据。这种全 Pipeline 的执行方式可以: 通过 eventTime 表示数据是什么时候产生的; 通过 watermark 得知在哪个时间点,数据已经到达了; 通过 state 来维护计算中间状态; 通过 Checkpoint 做容错的处理。 这两种各有优劣,可以根据作业的具体景来进行选择。 对于有限的数据集有 2 种执行模式,我...阅读全文

博文 2021-09-05 07:26:58 中文开源技术交流社区

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

次通知。 水平触发 水平触发则简单多了,他包含了边缘触发的所有景,简而言之如下: 当接收缓冲区不为空的时候,有数据可读,则读事件会一直触发。 当发送缓冲区未满的时候,可以继续写入数据,则写事件一直会触发。 同样的,为了使表达更清晰,我们也来举个栗子,按照上述入输入方式来进行。 服务端开启,客户端连接并发送单字符A,可以看到服务端输出情况如下: -->LT Mode: it was triggered once! get 1 bytes of content: A 这个输出结果,毋庸置疑,由于buffer中有数据,所以水平模式触发,输出了结果。 服务端开启,客户端连接并发送ABCDEFGHIJKLMNOPQ,可以看到服务端输出情况如下: -->LT Mode: it was...阅读全文

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