Dockerfile的语法非常简单,然而如何加快镜像构建速度,如何减少Docker镜像的大小却不是那么直观,需要积累实践经验。这篇文章可以帮助你快速掌握编写Dockerfile的技巧。目标更快的构建速度更小的Docker镜像大小更少的Docker镜像层充分利用镜像缓存增加Dockerfile可读性让Docker容器使用起来更简单总结编写.dockerignore文件容器只运行单个应用将多个RUN指令合并为一个基础镜像的标签不要用latest每个RUN指令后删除多余文件选择...
2023-08-08 11:11:40 2085浏览 0点赞 0回复 0收藏
一.现象在使用nginx反向代理后端服务器的时候,因为配置的是域名,导致HTTPS请求转发失败,报SSL错误,js报502二.排查过程1、查看nginx日志,发现报502,但是本地curlupstream中的后端域名是可以正常通的2、查看后端服务器上,没有收到请求,说明请求没过去,继续排查nginx本身的配置问题,Nginx渲染模版已支持HTTPS,尝试略过upstream配置,直接在conf文件中渲染https:域名,请求仍然失败3、然后换个思路,修改成内网ip不走域...
2023-08-08 11:09:28 4362浏览 0点赞 0回复 0收藏
Redis浮点数累计主要是有两个命令INCRBYFLOAT是SET指令的浮点数累计HINCRBYFLOAT是HASH类型的浮点数累计在内部HINCRBYFLOAT和INCRBYFLOAT自增实现相同。所以我们分析INCRBYFLOAT即可。基本使用直接使用指令INCRBYFLOATmykey0.1INCRBYFLOATmykey1.111INCRBYFLOATmykey1.111111使用lua脚本的方式,因为redis可以通过lua脚本来保证操作的原子性,所以当我们同时操作多个key的时候一般使用lua脚本的方式。eval"returnredis.call('IN...
2023-08-08 11:09:06 1324浏览 0点赞 0回复 0收藏
最近因为一些原因,需要招一个运维人员,所以就筛选了很多简历,也面了很多人,我发现大家都有一些相同的问题。主要表现在以下几个方面:简历重点不明确会的多,但不精个人规划不清晰下面从这三个方面说说自己的看法。简历重点不明确简历是非常重要的,简历是非常重要的,简历是非常重要的。简历是一个人的敲门砖,能不能获得面试的机会就看你的简历是否满足需求。我和你素未谋面,我对你知之甚少,我要怎么了解你呢?只有你的...
2023-08-08 11:08:46 1214浏览 0点赞 0回复 0收藏
在6月5号,唯品会发布了23年3月29号的故障报告,因为南沙IDC冷冻系统故障导致唯品会线上商城停止服务,造成了数以亿计的损失(作为小运维的我,瑟瑟发抖)。对于唯品会来说,线上商城是其核心业务入口,故障不可避免,但是故障如此之长却不能容忍,为什么会造成这种事情发生呢?在我们这种小运维的眼里,这种事故不应该发生在这种量级的公司中,我们都是在模仿、学习他们的PPT中寻找运维之路。但是,PPT的高大上,无法压住故障...
2023-08-08 11:08:25 1802浏览 0点赞 0回复 0收藏
什么是对象存储对象存储以独立的对象的形式管理数据,而不是传统的文件层次结构或块存储的形式。每个对象包括数据、元数据和唯一标识符。元数据是描述数据的信息,比如创建日期、类型和其他相关信息。主要用于非结构化数据,例如多媒体内容、备份数据、分析数据等,以及任何需要大规模、易于访问和经济有效的数据存储的应用。AmazonS3、GoogleCloudStorage和OpenStackSwift是一些常见的公有云对象存储服务。在私有云或本地环境...
2023-08-08 11:07:56 1947浏览 0点赞 0回复 0收藏
线上案例有一批量的数据,可以按照一个固定的key分组并发,但是要保证组内并行的处理。比如:商城中,不同的用户可以并发下单,但是一个用户只能进行顺序的下单。在全局并发的场景下保证局部有序,保证最小事务单元操作的原子性。针对上面的场景我们可以通过KeyAffinityExecutor(KeyAffinityExecutor是一个可以按照指定的Key亲和顺序消费的执行器)来解决这个问题,我们下面一起来了解下KeyAffinityExecutor。基本使用导入依赖<d...
2023-08-04 15:18:33 2346浏览 0点赞 0回复 0收藏
EtcdEtcd是Kubernetes的存储中心,所有资源信息都是存在在其中,它通过2381端口对外提供监控指标。指标采集由于我这里的Etcd是通过静态Pod的方式部署到Kubernetes集群中的,所以依然使用PrometheusAgent来采集指标。(1)配置Prometheus的采集配置apiVersion:v1kind:ConfigMapmetadata:name:prometheusagentconflabels:name:prometheusagentconfnamespace:flashcatdata:prometheus.yml:global:scrapeinterval:15sevalua...
2023-08-04 15:17:45 2511浏览 0点赞 0回复 0收藏
开始之前Kubernetes是一个简单且复杂的系统,简单之处在于其整体架构比较简单清晰,是一个标准的MasterSlave模式,如下:但是,它又是一个复杂的系统,不论是Master还是Slave,都有多个组件组合而成,如上图所示:Master组件a.apiserver:API入口,负责认证、授权、访问控制、API注册与发现等b.scheduler:负责资源调度c.controllermanager:维护集群状态Slave组件a.kubelet:维护容器生命周期、CSI管理以及CNI管理b.kubeproxy...
2023-08-04 15:15:24 2655浏览 0点赞 0回复 0收藏
最近因为公司的产研调整,决定将代码仓库从本地的Gitlab迁移到云效的Codeup,不是Gitlab不够好,而是Codeup在度量、安全等方面比原生的Gitlab要好,再则公司的产研管理也迁移到了云效,也为了统一化管理。有同学可能会问,都用云效了,为什么不直接用它的AppStack,还要用Zadig?AppStack还处于发展阶段,还有以下问题不适合我们现阶段的需求:AppStack不支持管理私有云Kubernetes集群(没有公网入口)。AppStack不支持Helm类应...
2023-08-04 15:14:45 2006浏览 0点赞 0回复 0收藏
mtail是谷歌开源的一款从应用日志提取metrics的工具,它会实时读取应用程序的日志,然后通过自己编写的脚本分析日志,最终生成时间序列的指标,项目地址是:https:github.comgooglemtail。夜莺的Categraf对日志指标的收集也是采用的mtail,不过做了一些优化,具体优化了什么我们慢慢道来。现在,我们先从谷歌的mtail开始聊起,再慢慢聊到夜莺的mtail插件。mtail的安装前面已经对mtail做了简短...
2023-08-04 15:14:03 2234浏览 0点赞 0回复 0收藏
有没有人和我一样,遇到同样的困惑:当我使用Prometheus来搭建监控体系的时候,每当有一个组件需要监控,我就要为其增加一个exporter,如果有10个组件,我就要增加10个exporter,先不说这10个exporter的质量如何(因为大部分exporter都是广大网友自己开发的),光学习成本、部署成本以及维护成本都让人头疼。有没有一个组件,就能搞定大部分指标采集的?Categraf就是这样的一个采集器。惊不惊喜,意不意外?什么是CategrfCategr...
2023-08-04 15:13:22 3846浏览 0点赞 0回复 0收藏
监控是方法,告警是手段,解决是目的。但是,大家有没有遇到这种困惑。我收集了一大堆指标,但是我不知道哪些指标应该告警,也不知道如何把这些告警发送到对应的团队或者个人,更不知道如何做告警升级。我之前用Prometheus+Altermanager这一套的时候,为每个团队弄一个钉钉群,然后打了一堆的标签,匹配不同的标签发送到不同的群,如果要做告警升级的话,很多时候都是通过阈值升级来完成,但是同一个告警通过时间来升级就不好办...
2023-08-04 15:12:45 2259浏览 0点赞 0回复 0收藏
前言可观测性是大部分中小公司比较头疼的问题,主要表现以下几个方面:需要不同的开源软件来组装以实现不同的功能,比如使用Skywalking实现链路监控,使用ELK实现日志收集监控,使用Grafana+Prometheus来实现指标监控。每个开源软件背后都是独立的一套体系,它们之前是相互独立的(Grafana全家桶已经实现组合)。数据孤岛,链路、日志、指标各玩各的,没有建立联系。目前市面上的解决方案要么是商业化产品,要么是自研。本文的...
2023-08-04 15:12:15 2338浏览 0点赞 0回复 0收藏
前言在当今数字时代,软件系统在我们的生活和工作中发挥着越来越重要的作用。我们需要确保这些系统能够在高负载、高并发的情况下稳定运行,为用户提供良好的体验。为了实现这一目标,我们需要关注系统性能监控指标,洞察系统运行的关键脉搏。本文将从指标分类、指标详细说明等方面介绍系统性能监控指标的相关知识,帮助你更好地理解和应用这些关键数据。指标分类:多维度看系统性能指标其实非常多,在公司就监控管理的人更能体...
2023-08-04 15:11:36 2617浏览 0点赞 0回复 0收藏
ChatGPT什么是ChatGPTChatGPT是一个基于人工神经网络技术的自然语言处理模型,由OpenAI开发。它可以理解和生成自然语言,用于进行对话、翻译、文本摘要等任务。ChatGPT是目前最先进的自然语言处理模型之一,它使用了大量的预训练数据和深度学习算法来实现高质量的自然语言处理能力。ChatGPT的工作原理ChatGPT是一个基于Transformer模型的自然语言处理模型,其工作原理可以分为两个阶段:预训练和微调。下面分别对这两个阶段进行...
2023-08-04 15:10:25 2199浏览 0点赞 0回复 0收藏
不止于监控,夜莺V6来了!今天我们郑重发布夜莺6.0beta版本,全面支持Metrics、Logging、Tracing,向着构建开源、开放、完整的可观测性解决方案迈进。您可以借助夜莺V6,接入和管理Prometheus、ElasticSearch、Jaeger多种数据源,实现数据的统一可视化、告警和分析。可以在页面管理数据源了无需修改配置文件里的Clusters配置了,直接在页面就可以管理了。除了兼容Prometheus查询协议的数据源,也支持Jaeger和ElasticSearch作为...
2023-08-02 15:47:18 2293浏览 0点赞 0回复 0收藏
!!大家好,我是乔克,一个爱折腾的运维工程,一个睡觉都被自己丑醒的云原生爱好者。作者:乔克公众号:运维开发故事博客:www.jokerbai.com数据库在每个企业都占据的非常重要的位置,它存储着一个公司的命脉。对于数据库的管理也非常的复杂多变,很多公司都有专业的DBA团队在管理。但是,不论有无DBA,对数据库的操作都不会变少,而且都面临着相同的问题:不是在提数就是在修数的路上不是在审核SQL就是在审核SQL的路上不是在找...
2023-08-02 15:46:51 2426浏览 0点赞 0回复 0收藏
计算过程以下代码叫做“扰动函数”java8中的散列值优化函数staticfinalinthash(Objectkey){inth;return(keynull)0:(hkey.hashCode())^(h>>>16);}理论上hash散列是一个int值,如果直接拿出来作为下标访问hashmap的话,考虑到二进制32位,取值范围在21474836482147483647。大概有40亿个key,只要哈希函数映射比较均匀松散,一般很难出现碰撞。一个客观的问题:要存下40亿长度的数组,服务器内存是不能放下的。通常咱们HashMap的默...
2023-08-02 15:46:26 1841浏览 0点赞 0回复 0收藏
6.2顺序消费顺序消息是指对于一个指定的Topic,消息严格按照先进先出(FIFO)的原则进行消息发布和消费,即先发布的消息先消费,后发布的消息后消费。顺序消息分为分区顺序消息和全局顺序消息。1、分区顺序消息对于指定的一个Topic,所有消息根据ShardingKey进行区块分区,同一个分区内的消息按照严格的先进先出(FIFO)原则进行发布和消费。同一分区内的消息保证顺序,不同分区之间的消息顺序不做要求。适用场景:适用于性能要...
2023-06-25 12:00:57 2737浏览 0点赞 0回复 1收藏