InfraPub 为您找到相关结果 17

Scrapy 架构及数据流图简介

)。 其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。 数据流(Data flow) Scrapy中的数据流由执行引擎控制,其过程如下: 引擎打开一个网站(open a domain),找到处理该网站的Spider并向该spider请求第一个要爬取的URL(s)。 引擎从Spider中获取到第一个要爬取的URL并在调度器(Scheduler)以Request调度。 引擎向调度器请求下一个要爬取的URL。 调度器返回下一个要爬取的URL给引擎,引擎将URL通过下载中间件(请求(request)方向)转发给下载器(Downloader)。 一旦页面下载完毕,下载器生成一个该页面的Response,并将其通过下载中间件(返回(response)方向)引擎。 引擎从下载器中接收到...阅读全文

博文 2017-07-23 22:56:26 debian.cn

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

] else: return '' 需要先上传文件获得media_id,然后使用media_id将文件用户。另外,这里用到了poster,可使用pip安装: pip install poster 之后引入multipart_encode和register_openers函数: from poster.encode import multipart_encode from poster.streaminghttp import register_openers 给群会话发送消息 与给用户发送信息类似,区别是需要群会话id,而不是用户列表,以发送文本消息为例,代码如下: def send_text_to_chat(access_token, chat_id, text): msg_type, msg...阅读全文

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

Kubernetes调度算法浅析

在真正的生产环境中,如何合理的分配服务器资源、提高利用率、让整个集群运行的更加稳定使得 k8s-scheduler 这个角色在集群中的地位愈发重要。 kube-scheduler的预选(过滤)和精选(打分) api-server会将创建pod的请求kube-scheduler,并且将pod信息记录在etcd数据库中。之后kube-scheduler会根据预选(过滤)规则,首先过滤掉一部分node节点中的pod,没有被过滤掉的pod可以看做是可以被调度的pod,之后再通过更加严格的规则给剩下的pod打分,这一步也叫作优选。打分最高的pod可以看做被优先分配到pod任务。 调度流程简介 创建pod的命令被api-server的api接口接收到。api-server将pod信息存储在...阅读全文

博文 2020-12-20 11:01:10 debian.cn

Redis 6 将采用全新协议RESP3 提供客户端缓存功能

缓存功能,保证存储在客户端内存的数据,在收到来自服务器的失效通知时才失效。 另外,当客户端和服务器的连接中断时,客户端无法接收到数据失效通知,这可能会导致服务出现问题。针对这种情况,一般的做法是重新建立客户端和服务器之间的连接,并更新客户端当前的缓存。antirez 表示可以一直保持连接是最好的情况,但为了降低风险,Redis 服务器在与客户端断开连接时,会将失效通知其他客户端。 这项名为”Client side caching” 的功能尚未正式确定名字,最后可能会被成为”Tracking”。Redis 作者还表示在 Redis 6 候选版发布之前,这些功能都会进行调整,希望社区能积极反馈意见。 由于 Client side caching 功能需要使用 RESP3 协议来支持实现...阅读全文

如何在 Debian 中安装 DHCP 服务器

/default/isc-dhcp-server 使用 INTERFACES 选项定义 DHCPD 响应 DHCP 请求所使用的接口。 比如,如果你想让 DHCPD 守护进程监听 eth0,按如下设置: INTERFACES="eth0" 同样记得为上面的接口配置静态地址。 步骤 2:在 Debian 中配置 DHCP 服务器 3、 DHCP 配置的主文件是 /etc/dhcp/dhcpd.conf, 你必须填写会发送到客户端的所有网络信息。 并且 DHCP 配置中定义了两种不同的声明,它们是: parameters - 指定如何执行任务、是否执行任务,还有指定要 DHCP 客户端的网络配置选项。 declarations - 定义网络拓扑、指定客户端、为客户端提供地址,或将一组参数应用于一组声明...阅读全文

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

开源社区纠纷不断:20 年的 Debian 开发者被排挤出项目

欺负项目成员3 月 8 日,外媒通过电子邮件联系了现任领导人 Jonathan Carter,就他对 Preining 问题的看法进行咨询,但没有收到任何回复。而据报道,目前 2022 Debian 项目负责人选举已开启,三位候选人:Felix Lechner、Hideki Yamane 和 Jonathan Carter 正在竞选。3 月 9 日, Carter 的邮件被转到 Debian 新闻团队和项目负责人手中 ,新闻团队的一位发言人回应说:“目前我们没有关于 Norbert Preining 的声明。”Preining 表示,基本上发生的事情是 DAM 认为他在欺负该项目的成员。DAM 是 Debian 客户经理团队,可以批准和开除项目成员。“我猜他们指的是我与 Martina...阅读全文

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

deployments,而背后的复杂性被隐藏在简单的抽象中。但为了充分理解它为我们提供的价值,我们需要理解它的内部原理。 本指南将引导您理解从 client 到 Kubelet 的请求的完整生命周期,必要时会通过源代码来说明背后发生了什么。 这是一份可以在线修改的文档,如果你发现有什么可以改进或重写的,欢迎提供帮助! 1. kubectl 验证和生成器 当敲下回车键以后,kubectl 首先会执行一些客户端验证操作,以确保不合法的请求(例如,创建不支持的资源或使用格式错误的镜像名称)将会快速失败,也不会 kube-apiserver。通过减少不必要的负载来提高系统性能。 验证通过之后, kubectl 开始将 kube-apiserver 的 HTTP 请求进行封装。kube-apiserver 与...阅读全文

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

journalctl 清理journal日志 - 九重霄

(kmsg),默认值为"no"。 此选项可以被内核引导选项 "systemd.journald.forward_to_kmsg" 覆盖。 ForwardToConsole= 表示是否将接收到的日志消息转发给系统控制台,默认值为"no"。 如果设为"yes",那么可以通过下面的 TTYPath= 指定转发目标。 此选项可以被内核引导选项 "systemd.journald.forward_to_console" 覆盖。 ForwardToWall= 表示是否将接收到的日志消息作为警告信息所有已登录用户,默认值为"yes"。 此选项可以被内核引导选项 "systemd.journald.forward_to_wall" 覆盖。 MaxLevelStore=, MaxLevelSyslog...阅读全文

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

Web前端知识体系精简

) 对style的操作(对不同的属性操作,影响不一样) 还有一种是用户的操作,比如改变浏览器大小,改变浏览器的字体大小等(回流+重绘) 4、本地存储 本地存储最原始的方式就是 cookie,cookie 是存放在本地浏览器的一段文本,数据以键值对的形式保存,可以设置过期时间。 但是 cookie 不适合大量数据的存储,因为每请求一次页面,cookie 都会服务器,这使得 cookie 速度很慢而且效率也不高。因此cookie的大小被限制为4k左右(不同浏览器可能不同,分HOST),如下所示: Firefox和Safari允许cookie多达4097个字节,包括名(name)、值(value)和等号。 Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号...阅读全文

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

Hadoop 核心 - HDFS 分布式文件系统详解

packet 为单位(默认64K),A 收到一个 packet 就会传给 B,B 传给 C。A 每传一个 packet 会放入一个应答队列等待应答; 数据被分割成一个个 packet 数据包在 pipeline 上依次传输,在 pipeline 反方向上, 逐个发送 ack(命令正确应答),最终由 pipeline 中第一个 DataNode 节点 A 将 pipelineack Client; 当一个 block 传输完成之后,Client 再次请求 NameNode 上传第二个 block,重复步骤 2; 7.1 网络拓扑概念 在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,其主要限制因素是节点之间数据的传输速率——带宽很稀缺。这里的想法是将两个节点间的带宽作为距离的...阅读全文

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

Kafka生产问题总结以及性能优化

用kafka生产者的幂等性来实现。 kafka生产者的幂等性:因为发送端重试导致的消息重复发送问题,kafka的幂等性可以保证重复发送的消息只接收一次,只需在生产者加上参数 props.put(“enable.idempotence”, true) 即可,默认是false不开启。 具体实现原理是,kafka每次发送消息会生成PID和Sequence Number,并将这两个属性一起broker,broker会将PID和Sequence Number跟消息绑定一起存起来,下次如果生产者重发相同消息,broker会检查PID和Sequence Number,如果相同不会再接收。 PID:每个新的 Producer 在初始化的时候会被分配一个唯一的 PID,这个PID 对用户完全是透明的。生...阅读全文

博文 2023-01-05 23:16:48 CSDN博客

Golang 操作 Kafka 样例

leader 3.leader将消息写入本地磁盘 4.follower从leader拉取消息数据 5.follower将消息写入本地磁盘后向leader发送ACK 6.leader收到所有的follower的ACK之后向生产者发送ACK 复制代码 2.1.3. 选择partition的原则 那在kafka中,如果某个topic有多个partition,producer⼜怎么知道该将数据发往哪个partition呢? kafka中有几个原则: 1.partition在写入的时候可以指定需要写入的partition,如果有指定,则写入对应的partition。 2.如果没有指定partition,但是设置了数据的key,则会根据key的值hash出一个partition。 3.如果既没指定...阅读全文

博文 2023-01-10 13:46:09 掘金

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

,会获取到此套接字的文件描述符。 然后,bind到指定的地址进行监听listen。这样,服务端就在特定的端口启动起来并进行监听了。 之后,利用开启accept方法来监听客户端的连接请求。一旦有客户端连接,则将获取到当前客户端连接的connection文件描述符。 双方建立连接之后,就可以进行数据互传了。需要注意的是,在循环开始的时候,务必每次都要重新设置当前connection的文件描述符,是因为文件描描述符表在内核中被修改过,如果不重置,将会导致异常的情况。 重新设置文件描述符后,就可以利用select函数从文件描述符表中,来轮询哪些文件描述符就绪了。此时系统会将用户态的文件描述符表发送到内核态进行调整,即将准备就绪的文件描述符进行置位,然后再用户态的应用中来。 用户通过...阅读全文

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

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

存在本地的日志,大概就是类似于这个样子:上图显示,共有八条日志数据,其中已经提交了7条,提交的日志都将通过状态机持久化到本地磁盘当中,防止宕机。日志复制的保证机制如果两个节点不同的日志文件当中存储着相同的索引和任期号,那么他们所存储的命令是相同的。(原因:leader最多在一个任期里的一个日志索引位置创建一条日志条目,日志条目所在的日志位置从来不会改变)。如果不同日志中两个条目有着相同的索引和任期号,那么他们之前的所有条目都是一样的(原因:每次RPC发送附加日志时,leader会把这条日志前面的日志下标和任期号一起follower,如果follower发现和自己的日志不匹配,那么就拒绝接受这条日志,这个称之为一致性检查)日志的不正常情况一般情况下,Leader和Followers的日志...阅读全文

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

最全的 DevOps 工具集合

用 Marathon 的 Apache Mesos 架构,©AdrianMouat 如图所见,集群中有四个元素。ZooKeeper 帮助 Marathon 查找 Mesos master 的地址,可以使用多个实例来处理故障。 Marathon 负责启动、监视并扩展容器。Mesos master 将分配给节点的任务 Marathon,并在节点具有一些可用的 CPU/RAM 时向 Marathon 提出要约。Mesos slaves 负责运行容器并提交自身可用资源的列表。 Kubernetes Kubernetes 是用于 Docker 容器的编排系统,使用标签和 pods 的概念将容器分为许多逻辑单元。Pod 是 Kubernetes 与其他两种解决方案之间的主要区别所在——它们是位于同...阅读全文

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

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

asset——这是检查的基础。我们使用检查来延迟(而不是拒绝)对生产的更改。 Annealing可以洞察并且控制它执行的整个服务。这让Annealing拥有独特的中央视角,允许检查在整个生产过程中轻松实施不变量。这让检查在概念上通常很简单,但功能很强大。比如: 日历检查避免在周末或者节假日推送监控检查验证当前没有警报,或者系统现在没有过载容量检查会阻止将服务容量降低到最近最大使用率之下的推送依赖解决器对并发更改进行排序,以确保正确的执行顺序。 依赖解决器是我们介绍的第一个check。它确保以正确的顺序推送asset。想一想图6的Shakespeare服务:当减少某个集群的占用空间时,通常需要更新负载均衡器的配置,以减少该群集提供的最大容量,然后再减少前端的副本数量——这样,你不会遇到前端无法承担...阅读全文

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