InfraPub 为您找到相关结果 621

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 表示当前缓冲区中有效数据的总量...阅读全文

架构师详解 Nginx 架构

主进程(master process)生成一个子进程(worker process)出来和客户端建立连接进行交互,直到连接断开,该子进程就结束了。使用进程的好处是各个进程之间相互独立,不需要锁,减少了使用锁对性能造成影响,同时降低编程的复杂度,降低开发成本。其次,采用独立的进程,可以让进程互相之间不会影响,如果一个进程发生异常退出时,其它进程正常工作,master 进程则很快启动新的 worker 进程,确保服务部中断,将风险降到最低。缺点是操作系统生成一个子进程需要进行内存复制等操作,在资源和时间上会产生一定的开销;当有大量请求时,会导致系统性能下降。 异步非阻塞 每个工作进程使用异步非阻塞方式,可以处理多个客户端请求。当某个工作进程接收到客户端的请求以后,调用 IO 进行处理,如果不能...阅读全文

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

最全 MongoDB 基础教程

', {capped: true, autoIndexId: true, size: 1024000, max: 10000}) # autoIndexId 已弃用,默认_id添索引 # 插入文档时,MongoDB会自动创建集合 db.ruochen.insert({'name': 'ruochen'}) 删除集合 格式:db.collection.drop() use ruochen db.createCollection('ruochen') # 创建集合 show tables db.ruochen.drop() show tables 插入文档 格式:db.COLLECTION_NAME.insert(document) 方法1 db.ruochen.insert({title: 'MongoDB...阅读全文

博文 2021-02-22 07:45:45 OSChina

一位五年工作经验架构师的感悟

过去而蹉跎;不要羡慕别人现在的生活;不要羡慕陈冠希,长得帅,女朋友交的多。你明明没有别人找的帅,不努力,你就是天天守着电脑看看片。说不定那天你去创个业,成功了,然后的然后,你想想然后的然后。。。 所以,不为过去蹉跎,活在当下,把握当下。 找到你的追求,然后就去追求 首先,我这里没有使用信念。信念,可能太重了。尤其对于中国人而言,信仰普遍都是缺失的,很难一直相信、坚信一件事。 第二,很多人,不知道自己想要什么,想去追求什么。所以一直不知道,该怎么去改变,该怎么去追求。 我是为了追求钱? 其实我不追求钱,当然我不是圣人,我家里不富裕,就是从农村出来的,我结婚的时候没有自己的房子(谢谢妻子),我还有很多东西没有买。我需要钱,但是不是为了钱而工作,工作这么多年,没有询问过薪,没有为了薪而跳槽(当...阅读全文

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

协议介绍之深入了解 gRPC

HTTP/1.x 做过推送的同学,大概就知道有多么的痛苦,因为 HTTP/1.x 并没有推送机制。所以通常两种做法: Long polling 方式,也就是直接给 server 挂一个连接,等待一段时间(譬如 1 分钟),如果 server 有返回或者超时,则再次重新 poll。 Web-socket,通过 upgrade 机制显式的将这条 HTTP 连接变成裸的 TCP,进行双向交互。 相比 Long polling,笔者还是更喜欢 web-socket 一点,毕竟更高效,只是 web-socket 后面的交互并不是传统意义上面的 HTTP 了。 Hello HTTP/2 虽然 HTTP/1.x 协议可能仍然是当今互联网运用最广泛的协议,但随着 Web 服务规模的不断扩大,HTTP/1.x 越...阅读全文

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

如何在 Debian 中安装 DHCP 服务器

255.255.255.0 { option routers 192.168.10.1; option subnet-mask 255.255.255.0; option domain-search "tecmint.lan"; option domain-name-servers 192.168.10.1; range 192.168.10.10 192.168.10.100; range 192.168.10.110 192.168.10.200; } 步骤 3:在 DHCP 客户端上配置静态地址 6、 要给特定的客户机分配一个固定的(静态)的 IP,你需要显式将这台机器的 MAC 地址以及静态分配的地址添到下面这部分。 host centos-node { hardware ethernet 00:f0...阅读全文

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

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

,但是当应用程序繁重,需要 CPU 做大量工作时,Node.js 肯定会有所欠缺。在这种情况下,PHP 最适合做 Web 应用程序的后端。 5.单页应用程序: 如果您使用过 Gmail,那么您可能知道什么是单页应用程序(Single Page Application)。Web 应用程序在初始客户端请求时载,之后根据客户端请求刷新的网页的特定部分。Node.js 与 AngularJS 的联合是开发单页应用程序的完美方案。 6.开发环境: Node.js 可以用于桌面应用程序开发(Windows,Linux和Mac),移动应用程序开发(混合和跨平台应用程序),甚至构建基于控制台的应用程序。虽然有一些也可以使用 PHP 来开发,但是大多数开发人员不会这样做。 7.社区支持: 由于 PHP 比...阅读全文

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

Rust 1.37.0 稳定版发布

Cargo 项目中选择默认二进制文件 cargo run 对于快速测试 CLI 应用程序是可以的,当多个二进制文件出现在同一个包中时,必须使用 --bin 标志显式声明要运行的二进制文件的名称。这使得 cargo run 不像我们想要的那样符合人机工程学,特别是当一个二进制文件比其他的更频繁地被调用时。 Rust 1.37.0 通过添 default-run 来解决这个问题,这是 Cargo.toml 中的一个新键,当这个键在 [Package] 部分中声明时,如果没有传递 --bin 标志,cargo run 将默认为所选的二进制文件。 枚举上的 #[repr(align(N))] #[repr(align(N))] 属性可用于提高类型定义的对齐性。以前,该属性仅允许在 struct 和...阅读全文

博文 2019-08-17 21:17:23 debian.cn

Go1.16 新特性:一文快速上手 Go embed

" //go:embed hello.txt var s string func main() { print(s) } 我们首先在对应的目录下创建了 hello.txt 文件,并且写入文本内容 “吃煎鱼”。 在代码中编写了最为核心的 //go:embed hello.txt 注解。注解的格式很简单,就是 go:embed 指令声明,外读取的内容的地址,可支持相对和绝对路径。 输出结果: 吃煎鱼 读取到静态文件中的内容后自动赋值给了变量 s,并且在主函数中成功输出。 而针对其他的基础类型,Go embed 也是支持的: //go:embed hello.txt var s string //go:embed hello.txt var b []byte //go:embed hello.txt var f...阅读全文

博文 2021-02-17 08:44:12 CSDN

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

. Vsftpd添FTP账号 A. 登录Linux主机后,运行命令:”useradd ftp-clin003 -s /sbin/nologin “。该账户路径默认指向/home/ftp-clin003目录;如果需要将用户指向其他目录,请运行命令:useradd ftp-clin003 -s /sbin/nologin –d /www(其他目录) B. 设置ftp-clin003用户密码,运行命令:”passwd ftp-clin003” ; 输入两次密码,匹配成功后,就设置好了ftp-clin003用户的密码了。 C.测试连接,您可以在“我的电脑”地址栏中输入 ftp://IP 来连接FTP服务器,根据提示输入账户密码。 umask=022 umask=022中”022″是八进制的写法,如果换成二进制是...阅读全文

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

为什么 Django 能持续统治 Python 开发世界

完全构建之前,您也可以从外部贡献者处获取有关信息。 这就是Django的力量。 该框架使您能够快速轻松地从应用模型生成管理站点。 代码设计 与大多数 Web 框架相反,Django 通过使用称为 app 的东西,更容易地将新功能添到产品中。 因此,开发者可以感受到 Django 鼓励大家编写模块化的代码。 Django对ORM的完善支持 Django的对象关系映射 (ORM) 对数据库进行了完善的支持。所以,它用于查询数据库所需的数据时,没有处理结构化查询语言(SQL)的麻烦。 与许多通过SQL直接在数据库上工作的Python框架不同,Django开发人员有一个独特的选择来操纵相应的Python的Model对象。 Django对于PostgreSQL,MySQL,SQLite和Oracle...阅读全文

博文 2017-07-21 14:15:11 debian.cn

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

: Temperature/speed normal Apr 20 00:12:20 vivek-desktop mysqld: Database Server failed 8. setterm 命令 这个命令可以设置中断的属性。下面的例子是强制屏幕全黑15分钟,并且60分钟后把显示器设为待机状态: setterm -blank 15 -powersave powerdown -powerdown 60 下面这段命令可以在中断显示下划线的文字: setterm -underline on; echo "Add Your Important Message Here" setterm -underline off 或者你可以关闭光标: setterm -cursor off 9. smbclient:向 MS...阅读全文

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

APISIX Ingress 如何使用 Cert Manager 管理证书

": [ { "title": "Wake up to WonderWidgets!", "type": "all" }, { "items": [ "Why WonderWidgets are great", "Who buys WonderWidgets" ], "title": "Overview", "type": "all" } ], "title": "Sample Slide Show" } } 经过上述操作,可以看到访问成功,说明证书已经生效。注意,由于证书是自签名的,这里需要上 -k 选项来忽略证书的校验。 此外,如果你想要轮转证书,删除 httpbin 这一 Secret 对象即可,Cert Manager 会立刻创建一个新的 httpbin Secret...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

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

自从 Linux 上的 容器 变得流行以来,了解 Linux 容器和虚拟机 之间的区别变得更棘手。本文将向您提供详细信息,以了解 Linux 容器和虚拟机之间的差异。 Linux 容器 vs 虚拟机 – 应用程序与操作系统 首先要了解的有关容器和虚拟机的一个事情是,一个运用于应用程序,另一个是为操作系统设计的。这就是为什么您经常会看到一些企业应用程序运行在容器上而不是自己的虚拟机上。在虚拟机上使用容器有一些优点。 容器最大的优点之一是可以预留比虚拟机少的资源。请记住,容器本质上是单个应用程序,而虚拟机需要更多资源来运行整个操作系统。 如果您需要运行 MySQL,NGINX 或其他服务,使用容器是非常有必要。但是,如果您需要在自己的服务器上运行完整的 LAMP 堆栈 ,则运行虚拟机更好。虚...阅读全文

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

使用 MongoDB 之前应该知道的 14 件事

MongoDB 服务器都很重要。尤其是,除非有非常好的理由要使用mapReduce、group 或 $where,否则你应该 在配置文件中设置 javascriptEnabled:false,禁用 JavaScript。因为标准 MongoDB 的数据文件是不密的,另外, 使用专门的用户运行 MongoDB 也是一个明智的做法,对数据文件的完全访问仅限于那个用户,这样就可以使用操作系统自带的文件访问控制了。 没有设计一个模式 对于模式,MongoDB 没有强制要求。这不是说它不需要模式。如果你真想保存文档而又没有一致的模式,那么你可以非常快速、简单地保存它们,但是 检索会十分麻烦 。 “MongoDB 模式设计的六大经验原则 ”是一篇值得一读的经典文章,而第三方工具(如 Studio 3T)提供的类似...阅读全文

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 详解(下)

处理器架构消亡史

架构也都是由RISC体系中发展出来的处理器架构。包括IBM所推出的Power架构也都是RISC体系中的一员。他们的到来,构建了出了璀璨的处理器架构时代,也对当时的英特尔造成了一定的压力。各领风骚数十载SPARC(可扩展处理器体系结构)是最初由Sun Microsystems开发的精简指令集计算(RISC)指令集体系结构(ISA)。它的设计在很大程度上受到早期RISC设计的影响,包括来自利福尼亚大学伯克利分校和IBM 801的RISC I和II 。这些原始的RISC设计极简,包括尽可能少的功能或操作码,旨在以每个时钟周期几乎一条指令的速率执行指令。SPARC于1986年首次开发,并于1987年发布,是最成功的早期商业RISC系统之一。在其推出首款SPARC处理器产品后,SPARC就很快地占领...阅读全文

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

复制。有三个Prometheus配置文件。它们具有外部标签,在执行远程写入时将标签添到所有指标。Prometheus1和Prometheus3容器写入Cortex1,而Prometheus2容器写入Cortex2。我们将在Cortex3上运行查询。以下代码片段显示了三个Prometheus实例的配置差异。# Prometheus one global: # ... external_labels: cluster: two # ... remote_write: - url: http://cortex2:9009/api/prom/push # Prometheus two global: # ... external_labels: cluster: two...阅读全文

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

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

的灵感有一部分也来自于 Linux。 事实上 Debian 的子任务思路就是继承了 Linux 的理念。有些人负责写文件系统,有些人负责写驱动程式。就算你不过是路人甲,你要是给 Linux 编写一套新的文件系统然后发给 Linus,说不定就你写的东西就真的被采用了。 所以我希望 Debian 的用户也能够毫无顾忌地给我们提意见,比如「嘿你知道吗,我觉得在 Debian 的系统里这个软件包会超赞的。」我觉得这是件大好事,因为只要跟着我们发布的系统模型走,用户是完全有可能开发出自己的软件包的。而且如果你遵循我们的指南和标准,那你的软件包在我们的系统上运行应该不成问题。 Deb-Ian 这个名字的来源想必已是众所周知的了;Murdock 在 1999 年告诉我, 我妻子叫 Deb,我叫 Ian...阅读全文

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

什么是线程安全,以及并发需要知道的几个概念

里等待,直到售货员把衣服交给你后才算购物成功,这就相当于同步的过程。 不过,如果是在网上购物的话,我们只需下单并完成支付,对我们来说整个购物过程就算完成了。网上的商家接到订单会帮我们紧安排送货,这段时间我们可以去做其他的事,比如去外面打个篮球之类的。等送货上门并签收商品就完事了,这个过程就相当于异步。 并发和并行并发和并行的功能很相似,两者都可以表示多个任务一起执行的情况,但本质上两者其实是有区别的。 严格意义上来说,并行的多任务是真实的同时执行,而并发更多的情况是任务之间交替执行,系统不停的在多个任务间切换执行,也就是 “串行” 执行。 最直接的例子的就是我们的计算机系统,在单核CPU时代,系统表面上能同时进行多任务处理,比如听歌的同时又浏览网页,但真实环境中这些任务不可能是真实并行的...阅读全文

博文 2018-12-31 20:44:06 debian.cn