InfraPub 为您找到相关结果 17

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

、Hyperloglogs等。 Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis Sentinel实现的高可用方案,同时还支持通过Redis Cluster实现的数据自动分片能力。 Redis的主要功能都基于单线程模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法时间,这些信息意味着: Redis是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发产生数据异常 Redis的速度非常快(因为使用非阻塞式IO,且大部分命令的算法时间都是O(1)) 使用高耗时的Redis命令是很危险的,会占用唯一的一个线程的大量处理时间,导致所有的请求都被拖慢。(例如时间为O(N)的...阅读全文

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

Python3: 二分法查找的两种实现方法

二分法查找是一种基础的、简单而高效的算法,又称为折半查找。顾名思义,就是将待查表一分为二,从而减少了查找次数,提高了效率。但缺点就是待查表必须为顺序表,并且待查表在查找时不宜做增删操作。 其最优时间为O(1),最坏时间为O(logn)。代码样例: ``` # coding:utf-8 方法一:递归法 def binarySearch_01(listx, item): """Be of recursion""" length = len(listx) if length > 0: #定义中间值下标: split = length // 2 if listx[split] == item...阅读全文

Zoom 5.0是重大更新 增强加密功能提供更多安全选项

。 Zoom 升级到 AES 256 位 GCM 加密标准,为会议数据提供了更多的保护和防篡改功能。这为 Zoom 会议、Zoom 视频网络会议和 Zoom 电话数据的保密性和完整性提供了保障。Zoom 5.0 将于本周内发布,支持 GCM 加密,一旦所有账户启用 GCM,该标准将生效。 现在通过点击界面会议菜单栏中的安全图标,就可以找到Zoom的安全功能。会议密码是现有的 Zoom 功能,Zoom 5.0 对大多数客户,包括所有基本版、单授权专业版和 K-12 客户,都默认开启了会议密码。对于管理账户,账户管理员现在可以定义密码(如长度、字母数字和特殊字符要求)。此外,Zoom Phone 管理员现在可以调整访问语音信箱所需的密码长度。 另外,Zoom 5.0 将为大型企业提供新的数据结构,允...阅读全文

博文 2020-04-23 07:54:44 debian.cn

Cloudpods容器化经验分享

Cloudpods是一个开源的多云混合云管理平台。Cloudpods首先是一个私有云云平台,具备将计算节点使用开源QEMU/KVM虚拟化技术虚拟出虚拟机,实现私有云的功能。其次,Cloudpods能够纳管其他的云平台,包括主流私有云和公有云,实现云管的功能。 Cloudpods的目标是帮助用户基于本地基础设置以及已有云基础设置,构建一个统一融合的云上之云,达到降低,提高管理效率的效果。Cloudpods从3.0开始全面拥抱Kubernetes,基于Kubernetes部署运行云平台的服务组件,采用Kubernetes Operator,基于Kubernetes集群自动化部署服务,实现了云平台的服务的容器化分布式部署。本文总结了Cloudpods在过去3年云平台底层容器化改造的经...阅读全文

Debian 上安装搭建 Shadowsocks 服务

-cfb, aes-192-cfb, aes-256-cfb,**bf-cfb, camellia-128-cfb, camellia-192-cfb,**camellia-256-cfb, cast5-cfb, des-cfb timeout:连接超时时间,单位秒。要适中。 如果客户端有OpenWRT路由器等设备,推荐rc4-md5,性能更好;否则可以选用安全性更好的aes-256-cfb等,不过计算上升,会有性能的损失,不过对于PC机以及现在的只能手机来说没有任何问题。路由器性能较弱所以可以考虑rc4-md5 保存配置文件后,就重启 shadosocks-libev 服务 $ service shadowsocks-libev restart 然后就搭建完成了,查看shadowsocks...阅读全文

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

分布式运行时 Dapr 知多少

了答案。 从单机到分布式,是追求更快和更高的性能,但也带来了更多的不确定性。比如,不确定计算机何时异常,不确定磁盘何时损坏,不确定网络通信的延迟,也不确定消息是否被正常消费。这些不确定性构成了分布式应用的挑战,简而言之: 异构的机器与网络:稳定性问题普遍的节点故障:可靠性问题不可靠的网络:一致性问题 面对这些挑战,业界提出了诸多的分布式理论、协议,如CAP定理,BASE理论,一致性协议2PC/3PC/ZAB,来保证系统的正常运行。虽然问题貌似是有了解决方案,但是应用的升高了。应用除了需要实现业务需求,还要兼顾非业务需求,集成诸如服务发现、负载均衡、失效转移、动态扩容、数据分片、调用链路监控等分布式系统的核心功能,对应用有很强的侵入性,这就是以Spring Cloud为代表的微服务框架的...阅读全文

2017年DevOps的5大发展预测

DevOps解决方案营销副总裁Aruna Ravichandran预测道。她说,“鉴于攻击者强度和的提高,以及安全问题快速公诸于众对品牌带来潜在不可挽回的损害,代码本身必须考虑安全问题,并且部署在牢固的安全架构中。” Ravichandran认为,随着微服务框架和SDK的引入,开发人员为了避免影响用户体验,应该从一开始就考虑安全功能。当到了测试和部署阶段,安全验证应该被视为特殊情况处理。她提到“安全相关代码需求测试要求是非常特殊和动态的,这个过程非常有可能需要专家和用户的介入,这不是传统DevOps流程的一部分。” 更加注重安全的时期 按照Tufin首席技术管兼联合创始人Reuven Harrison的说法,DevOps可能是企业的最新漏洞。2017年,他期望能够看见安全相关流程能够融入到...阅读全文

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

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

一、当 Kubernetes 成为云原生事实标准,可观测性挑战随之而来当前,云原生技术以容器技术为基础,通过标准可扩展的调度、网络、存储、容器运行时接口来提供基础设施。同时,通过标准可扩展的声明式资源和控制器来提供运维能力,两层标准化推动了开发与运维关注点分离,各领域进一步提升规模化和专业化,达到成本、效率、稳定性的全面优化。在这样的大技术背景下,越来越多的公司引入了云原生技术来开发、运维业务应用。正因为云原生技术带来了越发纷繁复杂的可能性,业务应用出现了微服务众多、多语言开发、多通信协议的鲜明特征。同时,云原生技术本身将下移,给可观测性带来了更多挑战:​1、混沌的微服务架构,多语言和多网络协议混杂业务架构因为分工问题,容易出现服务数量多,调用协议和关系非常复杂的现象,导致的常见问题...阅读全文

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

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

统瘫痪! 5.线上Redis禁止使用Keys正则匹配操作 Redis是单线程处理,在线上KEY数量较多时,操作效率极低【时间为O(N)】,该命令一旦执行会严重阻塞线上其它命令的正常请求,而且在高QPS情况下会直接造成Redis服务崩溃!如果有类似需求,请使用scan命令代替! 6.可靠的消息队列服务 Redis List经常被用于消息队列服务。假设消费者程序在从队列中取出消息后立刻崩溃,但由于该消息已经被取出且没有被正常处理,那么可以认为该消息已经丢失,由此可能会导致业务数据丢失,或业务状态不一致等现象发生。 为了避免这种情况,Redis提供了RPOPLPUSH命令,消费者程序会原子性的从主消息队列中取出消息并将其插入到备份队列中,直到消费者程序完成正常的处理逻辑后再将该消息从备份队列...阅读全文

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

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

遍历,O(n)的轮询时间。 poll模型 考虑到select模型的几个限制,后来进行了改进,这也就是poll模型,既然是select模型的改进版,那么肯定有其亮眼的地方,一起来看看吧。当然,这次我们依旧是先翻阅linux man二类文档,因为这是官方的文档,对其有着最为精准的定义。 int poll(struct pollfd *fds, nfds_t nfds, int timeout); 其实,从运行机制上说来,poll所做的功能和select是基本上一样的,都是等待并检测一组文件描述符就绪,然后在进行后续的IO处理工作。只不过不同的是,select中,采用的是bitmap结构,长度限定在1024位的文件描述符表,而poll模型则采用的是pollfd结构的数组fds,也正是由于...阅读全文

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

Apache Flink 1.14 新特性预览 - OSCHINA

模作业调度的优化 构建 Pipeline Region 的性能提升:所有由 pipline 边所连接构成的子图 。在 Flink 任务调度中需要通过识别 Pipeline Region 来保证由同一个 Pipline 边所连接的任务能够同时进行调度。否则有可能上游的任务开始调度,但是下游的任务并没有运行。从而导致上游运行完的数据无法给下游的节点进行消费,可能会造成死锁的情况 任务部署阶段:每个任务都要从哪些上游读取数据,这些信息会生成 Result Partition Deployment Descriptor。 这两个构建过程在之前的版本都有 O (n^2) 的时间,主要问题需要对于每个下游节点去遍历每一个上游节点的情况。例如去遍历每一个上游是不是一个 Pipeline 边连接的关系...阅读全文

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

架构师详解 Nginx 架构

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

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

粘合万种芯片的“万能胶” 是摩尔定律的续命丹吗? - 硬件

需要细小的引线和线宽,高,良率受制程影响大,成本也会很高。"刘宏钧说到。以英特尔的EMIB为例,从英特尔所发布的公开论文中可以发现,EMIB在工艺实现上面临不少难题,需要进行材料和工艺的开发,其硅桥的设计工作需要由懂材料、懂封装、懂制程和懂信号完整性的资深工程师们来共同实现。另外,晶圆制造材料、设备都需要进行改进,其时间和成本是除苹果、英特尔等头部芯片公司之外无法承受的。不仅如此,即便是有了UCIe这芯片万能胶,"Chiplet在哪里"的问题也难以解决。"UCIe之后,Chiplet面临的是Chiplet供应商和应用商谁先迈出第一步的问题。这也是一个'鸡与蛋'的问题。Chiplet供应商较为关心的是Chiplet一次性工程费用(NRE)该由谁来承担,而应用商则担心是否有足够丰富的...阅读全文

博文 2022-04-08 07:35:46 cnBeta.COM

Apollo 配置中心简单介绍

我们应用自身的容器中启动,也就是说我们的应用启动完之后,既充当了Eureka的角色,同时也是服务的提供者。这样就极大的提高了服务的可用性。这一点是我们选择Eureka而不是zk、etcd等的主要原因,为了提高配置中心的可用性和降低部署,我们需要尽可能地减少外部依赖。Open Source 最后一点是开源,由于代码是开源的,所以非常便于我们了解它的实现原理和排查问题。 4.6 客户端设计 上图简要描述了Apollo客户端的实现原理: 客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。客户端还会定时从Apollo配置中心服务端拉取应用的最新配置。 这是一个fallback机制,为了防止推送机制失效导致配置不更新客户端定时拉取会上报本地版本,所以一般情况下,对于定时拉取的操作...阅读全文

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

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

,非常的耗时且影响集群的可用性。元数据更新网络开销大整个元数据的更新操作也是以全量推的方式进行,网络的开销也会非常大。强耦合违背软件设计原则Zookeeper对于运维来说,维护Zookeeper也需要一定的开销,并且kafka强耦合与zk也并不好,还得时刻担心zk的宕机问题,违背软件设计的高内聚,低耦合的原则。网络分区高Zookeeper本身并不能兼顾到broker与broker之间通信的状态,这就会导致网络分区的成几何倍数增长。zk本身不适合做消息队列zookeeper不适合做消息队列,因为zookeeper有1M的消息大小限制 zookeeper的children太多会极大的影响性能znode太大也会影响性能 znode太大会导致重启zkserver耗时10-15分钟...阅读全文

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

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

样空间就大幅度下降了。 从下往上看时:从下往上看时大体思路跟从上往下看一样,但是要简单一些,因为不用考虑边界数据,从下往上看时,每进来上面一行,上面一行每个数字有两条路径到达下面一行,所以选一条最大的就可以 3 3 3 25 1 5 1 5 1 5 18 22 8 4 3 8 4 3 17 16 17 17 16 17 2 6 7 9 8 9 12 14 8 9 12 14 8 9 12 14 6 2 3 5 1 6 2 3 5 1 6 2 3 5 1 6 2 3 5 1所以最大值就是最上面数字就是25. 具体方法也是建立一个二维数组,最下面一行数据添到二维数组最后一行,从下往上填数字,所以状态转化方程是dp[i][j]=Math.max(dp[i+1][j+1], dp[i+1][j...阅读全文

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

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

求intent;前者需要工作流。:变更是否要求一些特殊步骤——比如,批处理job的一次性运行,一些用户输入等?如果是这样,工作流可能更合适。你是否更在意一致性而不是更好的调优?Intent这时候更好。 直接的后果是基于intent的执行和基于工作流的执行必须总是能够相互集成。我们使用两种集成机制。 第一种机制通过改变SoT的内容让高层级工作流驱动intent的更新。比如,服务器二进制的创建大部分由工作流驱动,随后Annealing和Prodspec部署这些二进制文件。 另一种机制是在技术栈的另一端:可以使用工作流引擎实现Annealing插件Push操作。比如,我们使用这个模型来更新网络交换机的firmware:专有的工作流系统实现许多自定义逻辑,然后Annealing自行启动工作流...阅读全文

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