InfraPub 为您找到相关结果 373

Git 介绍与使用详解

,代码重新检查,避免修改问题引发新的问题 3.6撤销提交(reset) 当发现这一次commit的内容是有错误的,有两种处理方法: 1、修改错误内容,再次commit一次 2、使用git reset 命令撤销这一次错误的commit 第一种方法比较直接,但会多次一次commit记录,而且有可能改错 推荐第二种方法,因为错误的commit没必要保留下来,还原到上一次也能保证正常工作 git commit提交后的结果 重置有三种式:soft,mixed,hard git reset --hard HEAD 重置stage区和工作目录,就是没有commit的修改会被全部擦掉,适用于重新理清思路 git reset --hard HEAD^ 将你的 HEAD 和当前 branch 切到上一条...阅读全文

博文 2017-02-25 09:00:27 程序员

我要彻底放弃 Debian 操作系统!-Michael Stapelberg

施。 虽然拥有一个lint工具(能实现快速、本地/离线的反馈)非常好,但最好的情况还是完全不需要lint工具。实施变更(例如C++团队为所有包引入了一个新的强化标志)的团队应该能够让我明确看到他们的工作。 然而,实际情况却恰恰相反,目前所有的包都由于lint而变得不干净,所有的维护者都需要阅读新内容是什么、可能会造成怎样的破坏、是否有影响以及怎样的影响、手动运行一些测试、最后再决定是否采用。整个过程的工作量巨大,而且还需要手动执行机械的更改。 特别是,在Debian的变更型中,所有更改的工作都会分派给包维护者。在工作中,我们发现相反的工作方式更好:即让负责变更的团队自行选择那些能影响更多用户的更改,这样可以显著地提高效率,从而降低总体的成本和时间。当然,有些例外情况(例如滥用语言功能的大型...阅读全文

博文 2019-03-22 17:01:23 Michael Stapelberg

深入理解Golang之context

context是Go并发编程中常用到一种编程式。本文将从为什么需要context,深入了解context的实现原理,以了解如何使用context。 作者:Turling_hu 来源: 掘金 原文链接: https://juejin.im/post/5e52688c51882549417fc671前言这篇文章将介绍Golang并发编程中常用到一种编程式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用context。为什么需要context在并发程序中,由于超时、取消操作或者一些异常情况,往往需要进行抢占操作或者中断后续操作。熟悉channel的朋友应该都见过使用done channel来处理此类问题。比如以下这个例子:func...阅读全文

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

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

岗回了成都,成都是个远离核心的待发展的技术部,当时人就 20,30 号人吧。 回去后,由于原来是在杭州负责核心 A1 系统,大家都还挺羡慕,都还挺给面子的。所以,变得越来越自信。 当你自信后,同样你会越来越勇敢,越来越开放。当时,也看了些敏捷的书,虽然从来没有完整的看完一本敏捷的书,现在我对敏捷也是半懂不懂,依然很讨厌职业的咨询师,喊喊口号,比如 TDD,说实话,我就很难看到 TDD 的式,在如此复杂的业务系统成功过。 当时对于敏捷最深刻的一点就是:反馈环。怎么去利用反馈坏不断是提升自己,自己缩短反馈坏,让自己成长的更快。 回成都后,我变得更为开放,这种开放,让我收获更多,在交流,不断的学**中,成长更快。从一个基本是完成任务型的技术人员,渐渐去思考更全局,更开放性的内容。 成都远离核心...阅读全文

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

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

库提供商,将那台Redis最近一周的命令全部调用出来,最后发现,在那个时间点运行了一条keys *...*命令。公司的一个工程师执行keys糊的匹配命令是为了清理没用的键,但是没有考虑到keys *进行糊匹配引发Redis锁,造成Redis锁住,CPU飙升,引起了所有调用链路的超时并且卡住,等Redis锁的那几秒结束,所有的请求流量全部请求到RDS数据库中,使数据库产生了雪崩,使数据库宕机。 改进方案 所有线上操作,全部要经过运维通过后方可执行,运维部门逐步快速收回各项权限 新增Redis实例,进行分离 如果有使用类似keys正则命令需求,使用scan命令代替 总结 该事件中出现的两次事故,完全是由于人为操作引起的,如果那位工程师,看过Redis的开发规范,会发现是建议禁用keys命令的...阅读全文

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

分布式任务调度平台 XXL

务,可根据业务事件灵活触发。 16、任务进度监控:支持实时监控任务进度; 17、Rolling 实时日志:支持在线查看调度结果,并且支持以 Rolling 方式实时查看执行器输出的完整的执行日志; 18、GLUE:提供 Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持 30 个版本的历史版本回溯。 19、脚本任务:支持以 GLUE 式开发和运行脚本任务,包括 Shell、Python、NodeJS、PHP、PowerShell 等类型脚本; 20、命令行任务:原生提供通用命令行任务 Handler(Bean 任务,”CommandJobHandler”);业务方只需要提供命令行即可; 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后...阅读全文

博文 2018-11-05 21:47:15 JOB 2.0.0 发布

Spinnaker 介绍 – Netflix 的持续交付平台

,Google云,微软云等,后来还支持了容器,但是管理方式还是按照管理基础设施的式来设计的。 Spinnaker 中管理如下资源: Server Group:最基本的逻辑资源,包括了若干使用相同配置和镜像的虚拟机,若干负载均衡(load balancer),以及安全组。安全组规则(Security Group):就是 AWS 中的安全组,可以理解成防火墙。负载均衡(Load Balancer):AWS 中的 ELB,也可能是安装在虚拟机中的负载均衡。 2. 部署管理 管理部署流程是 Spinnaker 的核心功能,他负责将软件包(可能是手工创建的或者 jenkins 创建的)打成一个镜像,用这个镜像生成对应的虚拟机,让服务真正运行起来: pipeline 在 Spinnaker 中一个部署流程叫做...阅读全文

博文 2018-12-21 19:30:47 debian.cn

技术部门的 SEO 规范

为客户提供SEO顾问服务的时候,经常遇到一些作为外部顾问不方便全程参与的情况。比如有的公司要新建网站,或者现有网站推到重来,问我能否从一开始就参与,提供SEO建议。 网站规划设计阶段就考虑SEO当然是好事,但作为一个远在异国的顾问,参与到这种需要大量深度讨论、沟通、协调的过程中,实在是不好操作,内部SEO人员更适合这种工作。 有的客户公司规比较大,技术开发、内容、SEO等各部门是分开的,SEO部门的很多需求是要提交给技术、运营等部门实施的。反过来,其它部门的需求也由技术部门实施,但可就不一定经过SEO部门同意了。这个过程中就可能产生对SEO的不良影响。 也有的公司人员流动频繁,即使原先的开发人员都经过SEO培训,也还是会有完全不了解SEO的新人加入团队。 这些情况都需要有一个技术部门必须...阅读全文

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

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

荐后,会有一位专门的负责人来对他进行考核,这个人就是他的 AM。 10. WNPP: Work-Needing and Prospective Packages 的缩写,指需要有人接手或帮助的软件包。这个概念不是糊的,而是有明确的定义的。 11. MIA: Missing In Action 的缩写,指某位 Maintainer 长时间不参与维护自己的软件包,同时别人也没能成功地与之取得联系。这样的 Maintainer 被称为 Zombie Maintainer 。如果他是 DD,那么他的 Debian 项目帐号会被锁定,一年内无回应则会删除。 12. Debian Project: Debian 项目是构建自由的通用操作系统(The Universal Operating System...阅读全文

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

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

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

博文 2023-01-26 11:07:43 joseph

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

互联网协议正在发生变化

的安全是否是一个正确的解决方案有很多的争论。确实,仍然有可能对使用 TLS 1.3 的通讯进行解密,但是,你需要去访问一个短暂密钥才能做到,并且,按照设计,它们不可能长时间存在。 在这一点上,TLS 1.3 看起来不会去改变以适应这些网络,但是,关于去创建另外一种协议有一些传言,这种协议允许第三方去偷窥通讯内容,或者做更多的事情。这件事是否会得到推动还有待观察。 QUIC 在 HTTP/2 工作中,可以很明显地看到 TCP 有相似的低效率。因为 TCP 是一个按顺序发送的协议,一个数据包的丢失可能阻止其后面缓存区中的数据包被发送到应用程序。对于一个多路复用协议来说,这对性能有很大的影响。 QUIC 尝试去解决这种影响而在 UDP 之上重构了 TCP 语义(以及 HTTP/2 流型的一部分...阅读全文

最全 MongoDB 基础教程

Select * from ruochen where likes > 100 and likes < 200; 糊查询 查询title中包含 'py' 的文档 db.ruochen.find({title:/py/}).pretty() 查询title字段以 'p' 开头的文档 db.ruochen.find({title:/^p/}).pretty() 查询title 字段以 'p' 结尾的文档 db.ruochen.find({title:/p$/}).pretty() MongoDB $type 操作符 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果 类型 数字 备注 Double 1 String 2 Object 3 Array 4 Binary data 5...阅读全文

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

UCloud 叶理灯 谈:Docker、K8S 和 Serverless

产品叫 UGC,腾讯有 FaaS,阿里也有 PaaS,目前都不算是渗透率很高。 原因有几个。第一、国内用户对新技术接受程度是比较低的,可能是习惯问题,国内的IT的发展水平跟国外也有差距,有 5、6 年差距;其次,对国内用户来说,把一个架构改成 Serverless 架构,其实成本是很高,而且改造的收益和规相关;最后, FaaS 本身不是一个独立能起作用的产品,你会看到 Lambda 推出时,不是个独立的产品,它是体系的副产品,例如其他产品要开放事件源,通过事件去触发 Lambda 函数执行。只有产品体系开放足够多的事件源,FaaS 才能渗透到整个平台里面去,才能覆盖更多场景。 我们国内的厂商还没有做到这一点。AWS 刚推出 FaaS 时,它主要是 S3 上的图片处理,不是每个用户都有这个场...阅读全文

博文 2019-06-14 08:28:49 debian.cn

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

织支援,由来自世界各地的志愿者通过互联网协调完成工作的组织,能够存在这么久是了不起的事情。 这么多年来,Debian 就是凭借这样的式,给用户提供了超过25,000个软件,超过50,000个软件包,并正式支持10个计算机系统结构。 或许,就是这些开发者与 Debian 之间的这种“羁绊”,促使他们采取了行动。 2019年当选为DPL的 Sam Hartman 表示,他的首要任务之一就是改善决策过程。Hartman 也确实将大部分精力都放在了决策制定上,而且从结果来看,Hartman 成功了,他推动了许多基于共识的讨论,在这些讨论中 Debian 社区成员探讨了各种选择并得出结论。 Russ Allbery 在9月提出倡议时,Debian 内部也开始了激烈的讨论,大家几乎没有什么反对意见。进...阅读全文

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

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

定要配置重试要根据业务情况而定。也可以用同步发送的式去发消息,当然acks不能设置为0,这样也能保证消息发送的有序。 kafka保证全链路消息顺序消费,需要从发送端开始,将所有有序消息发送到同一个分区,然后用一个消费者去消费,但是这种性能比较低,可以在消费者端接收到消息后将需要保证顺序消费的几条消费发到内存队列(可以搞多个),一个内存队列开启一个线程顺序处理消息。 如果为了性能好,不允许所有消息只在同一个分区,同时又要保证顺序消费,那么可以给每条消息加一个下标,当消费者拿到消息后先不急着消费,而是先判断下标,然后根据下标以此进行消费; 2.1.4 消息积压 1)线上有时因为发送方发送消息速度过快,或者消费方处理消息过慢,可能会导致broker积压大量未消费消息。 此种情况如果积压了上百万未...阅读全文

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

Golang 操作 Kafka 样例

有更好的吞吐量,内置的分区,冗余及容错性,这让Kafka成为了一个很好的大规消息处理应用的解决方案。消息系统 一般吞吐量相对较低,但是需要更小的端到端延时,并尝尝依赖于Kafka提供的强大的持久性保障。在这个领域,Kafka足以媲美传统消息系统,如ActiveMR或RabbitMQ 站点的用户活动追踪: 为了更好地理解用户行为,改善用户体验,将用户查看了哪个页面、点击了哪些内容等信息发送到每个数据中心的Kafka集群上,并通过Hadoop进行分析、生成日常报告。 流处理:保存收集流数据,以提供之后对接的Storm或其他流式计算框架进行处理。很多用户会将那些从原始topic来的数据进行 阶段性处理,汇总,扩充或者以其他的方式转换到新的topic下再继续后面的处理。例如一个文章推荐的处理流程...阅读全文

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

中国开源人访谈系列之:清风博主

关的行业,不是没想过,但已经熬不了夜了,还是多给年轻人一些机会嘛(好吧,其实是水平实在有限,啥也干不了)。 5.您使用开源软件对您的学生有没有产生影响呢? 答:对于中学生,基本没影响。一,我不是信息技术老师,只是个教地理的;二,即便是现在的中学信息技术教学,在现行的IT教育式下,也没办法施加影响。 6.电脑高手在学校,大家日常工作是怎么看您的呢?会叫您“修电脑”吗? 答:硬件维修不至于找我,还有信息技术老师呢!不过,装个系统是常有的事,或者经常被问一些软件方面的问题,你懂的,交流始终不在一个频道,不胜其烦。再者,有一次犯了强迫症,把老婆电脑的重要数据给清理掉,被下了不许碰她电脑的禁令,就更没有耐心管别人的事了。所以,强烈建议:喜欢清理电脑且有强迫症的同学(这样的人会很多吧),千万不要乱动老...阅读全文

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

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

改Docker映像名称和任何相关标志(如ports和volumes ),也可以将以下命令用于其他容器化应用程序。 仍在主节点内,执行以下命令以创建名为nginx的部署: kubectl create deployment nginx --image=nginx 部署是一种Kubernetes对象,可确保始终根据已定义的板运行指定数量的pod,即使pod在群集生命周期内崩溃也是如此。 上面的部署将使用Docker注册表的Nginx Docker Image创建一个包含一个容器的pod。 接下来,运行以下命令以创建名为nginx的服务,该服务将公开公开该应用程序。 它将通过NodePort实现 ,该方案将通过在群集的每个节点上打开的任意端口访问pod: kubectl expose...阅读全文

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

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

RBAC 授权器举例,当请求进入时,授权器会将用户的初始状态缓存下来,然后用它来检索与 etcd 中的用户关联的所有 角色(Role)和 角色绑定(RoleBinding)。那么问题来了,Controller 是如何访问和修改这些资源对象的呢?事实上 Kubernetes 是通过 Informer 机制来解决这个问题的。 Infomer 是一种式,它允许 Controller 查找缓存在本地内存中的数据(这份数据由 Informer 自己维护)并列出它们感兴趣的资源。 虽然 Informer 的设计很抽象,但它在内部实现了大量的对细节的处理逻辑(例如缓存),缓存很重要,因为它不但可以减少对 Kubenetes API 的直接调用,同时也能减少 Server 和 Controller 的大量重复性...阅读全文

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