第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCore 无罪,.NET 5.0 继续背锅 第4集:一个.NET,两手准备,一个issue,加倍关注 第5集-案情突破:都是我们的错,让 .NET 5.0 背锅 第6集-案发现场回顾:故障情况下 Kubernetes 的部署表现 第7集-大结局:捉拿真凶 StackExchange.Redis.Exte…
在第1集的剧情中,主角是".NET 5.0 正式版 docker 镜像",它有幸入选第1位嫌疑对象,不是因为它的嫌疑最大,而是它的验证方法最简单,只需要再进行一次发布即可.我们在周五晚上(11月13日)进行了发布验证,发布后没有出现故障,docker 镜像的嫌疑指数下降,但这不能100%证明它的清白,因为可能是因为周五晚上的并发量不够触发故障. 在这一集中,主角是 memcached 客户端 EnyimMemcachedCore,它是到目前为止我们发现的最大嫌疑对象,它是我们从 .NE…
第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCore 无罪,.NET 5.0 继续背锅 第4集:一个.NET,两手准备,一个issue,加倍关注 第5集-案情突破:都是我们的错,让 .NET 5.0 背锅 今天晚上我们发布了最新版博客系统的 .NET Core 3.1 版,之前回退的都是以前的 .NET Core 3.1 版,最新版是基于 .NE…
第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCore 无罪,.NET 5.0 继续背锅 第4集:一个.NET,两手准备,一个issue,加倍关注 第5集-案情突破:都是我们的错,让 .NET 5.0 背锅 第6集-案发现场回顾:故障情况下 Kubernetes 的部署表现 我们的博客系统是部署在用阿里云服务器自己搭建的 Kubernetes 集群…
今天晚上基于第2集中改进版的 EnyimMemcachedCore 进行了发布,发布过程中故障重现,最大的嫌犯 EnyimMemcachedCore 被证明无罪,暂时委屈 .NET 5.0 继续背锅. 发布操作启动后,Kubernetes 集群在 20:05 左右开始更新 pod 在 20:09 之前一切正常,20:09 开始日志开始出现 tcp 连接相关的异常. 最先报异常的是 redis 客户端 StackExchange.Redis StackExchange.Redis.RedisTim…
第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCore 无罪,.NET 5.0 继续背锅 第4集:一个.NET,两手准备,一个issue,加倍关注 考虑到案情的复杂性与戏剧性,今天我们进行了第2手准备,从基于 .NET 5.0 的最新版博客系统修改出 .NET Core 3.1 版.之前回退的 .NET Core 3.1 版是10月14日生成的,中…
今天我们分析了博客站点的2次故障(故障一.故障二),发现一个巧合的地方,.NET 5.0 正式版的 docker 镜像是在11月10日提前发布上线的. 而在11月10日下午4点左右,由于 CI 服务器磁盘空间用完,我们进行了磁盘清理,删除了 CI 服务器上的所有镜像,清理之前 CI 服务器上 .NET 5.0 镜像版本对应的是 .NET 5.0 RC 2,所以11月10日晚上发布博客站点时,CI 服务器重新下载了镜像,这时正好下载了 .NET 5.0 正式版的 docker 镜像,所以发布时博客…
在 .NET 5.0 背锅 . Memcached 的惹祸 .缓存雪崩之后,我们没有找到问题的真正原因,我们知道没有找到根源的故障总是会再次光临的,不是在这周就是在下周,也许就在双11前后. 就在今天双11的前一天晚上,在我们 20:30 进行常规发布的时候,它来了... 原本平滑的 memcached 服务器 tcp 连接数走势曲线开始爬坡,博客站点大量的访问请求响应缓慢,每次都"惹祸"的 memcached 自然首当其冲地成为嫌疑的焦点. 我们重启了所有 memcached 服务,…
抱歉,拖到现在才写这篇为 .NET 5.0 洗白的博文(之前的博文),不好意思,又错了,不是洗白,是还 .NET 5.0 的清白. 抱歉,就在今天上午写这篇博客的过程中,由于一个bug被迫在访问高峰发布,在10:30~11:10再次引发上次遇到的同样故障,由此给您带来麻烦,请您谅解. 2020年10月14日晚上我们发布了升级至 .NET 5.0 RC 2 的博客系统,在正式版发布之前进行升级不是我们想追求前卫,而是因为: 微软官博已经说明可以用于生产环境 RC2 is a "go live&qu…
C++ 是 编程界 的 背锅侠, C++ 背的包袱 之 庞大复杂, 举世瞩目, 令人感动 . C++  标准 委员会 俨然 已成了一个 职业 . C++  把  静态编译 体系 发展到 庞大复杂, C#  把 CLR 体系 发展到 庞大复杂, Java 的 初衷 是 简单, 但是 在 简单 上 卡住了,  为了应对 新的 需求, 也变得 复杂 . C++  的 复杂 是 不肯 放弃 纯静态编译 体系 的 代价 . C#   的 复杂 是  试图 提供一个 “抽象层” 的 代价 . “抽象层” …
新东方年会上,一曲吐槽式的<释放自我>火遍网络,据说这六位员工,是冒着被解雇的风险完成演出的,歌词内容涉及到非常敏感的大企业病,如机构臃肿.效率低下.内耗甩锅.拍领导马屁等等,而最高潮的部分对PPT的吐槽,"干活的累死累活,到头来干不过做PPT的",金句一出,全场沸腾,可见普通员工讨厌PPT,已经渗入骨髓.当然,吐槽者最后的落脚点依旧是正能量和心灵鸡汤,不至于,创造完尴尬又无法收场,年会结束后,六名员工依旧任职新东方,董事长俞敏洪微博亲自转发<释放自我>,同时,…
神秘URL 我叫小风,是Windows帝国一个普通的上班族.上一回说到因为一个跨域请求,我差点丢了饭碗,好在有惊无险,我的职场历险记还在继续. "叮叮叮叮~~~~",闹钟又把我给吵醒了,我一看时间竟然已经这么晚了. 我赶紧起身,准备要去上班,好不容易在那家浏览器公司谋了个差事,可不敢迟到. 今天又是普通的一天,很快就到了深夜,上网业务少了,我和小雪妹子一合计,伙同负责网络连接的老白和负责存储的小黑,一起打起了麻将. 一连打了几圈,正在兴头上,公司的美女前台跑了过来,"你们几个…
系统:centos 6.9软件版本:redis-4.0.8,rubygems-2.7.7,gcc version 4.4.7 20120313,openssl-1.1.0h,zlib-1.2.11 yum install c++ gcc 1.安装redis tar -xf redis-4.0.8.tar.gz cd redis-4.0.8 make make install PREFIX=/redis-cluster 2.安装ruby和rubygems及相关组件(zlib和openssl) 安装…
线上环境elasticsearch5.0.1集群的配置部署 es集群的规划: 硬件: 7台8核.64G内存.2T ssd硬盘加1台8核16G的阿里云服务器 其中一台作为kibana+kafka连接查询的服务器 其他6台都作为node和master两种角色 操作系统:centos7.2 x86_64 为方便磁盘扩容建议将磁盘进行lvm逻辑卷配置,可以参考: aliyun添加数据盘后的物理分区和lvm逻辑卷两种挂载方式 http://blog.csdn.net/reblue520/article/d…
参考并感谢 官方文档 https://hub.docker.com/_/mysql y0ngb1n https://www.jianshu.com/p/0439206e1f28 vito0319 https://blog.csdn.net/warrior_0319/article/details/80805030 下载mysql镜像(不带tag标签则表示下载latest版本) docker pull mysql/mysql-server 配置my.cnf 文件 my.cnf文件参考nginx的临…
Redis 5.0.7 讲解,单机.集群模式搭建 一.Redis 介绍 不管你是从事 Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业务代码的程序员,实际工作中或许只用到了 set value.get value 两个操作. Redis 概念 Redis 是一个开源的底层使用 C 语言编写的 key-value 存储数据库.可用于缓存.事件发布订阅.高速队列等场景.而且支持丰富的数据类型:string(字符串).hash(哈希).…
搭建 Kafka:2.13-2.6.0 和 Zookeeper:3.6.2 集群 一.服务版本信息: Kafka:v2.13-2.6.0 Zookeeper:v3.6.2 Kubernetes:v1.18.4 二.制作 Zookeeper 镜像 Zookeeper 使用的是 docker hub 中提供的官方镜像,使用如下命令可以直接下载: docker pull zookeeper:3.6.2 由于官方镜像中使用的启动脚本不适用于我们公司内部使用,所以对其中的 docker-entrypoin…
版权声明:本文为CSDN博主「mythinker2」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/mythinker2/article/details/86746427 ----------------------------------------------------------------------------------------------------- 高分屏上Firefox调整缩放比…
最近遇到一个 Nginx 转发的坑,一个请求转发到 Tomcat 时发现有几个 http header 始终获取不到,导致线上出现 bug,运维说不是他的问题,这个锅我背了. 新增的几个 header 是这样的: accept_sign accept_token ... 反复检查代码,确定这些 header 是传了的,而且本地测试单独在 tomcat 中是可以接受到这些参数的,所以 tomcat 和命名本身是没问题的,初步断定是 Nginx 的问题. 经过一翻搜索,终于找到了一个 Nginx 的…
也希望自己记住这些题并不是真的很难很难... 平行四边形... 这个题要两个直线上的两个点和给出点中的两个点组成的平行四边形面积最大. 确定两个点后,发现线上的点随之确定.那么我们解出线上的点 然后求面积表达式,化简.... 这个过程算得好辛苦..... 发现S =( a*a`(x1^2-x2^2) +b*b`(y1^2-y^2)+(a*b`+b*a`)*(x1*y1-x2*y2) )/(ad-bc) ...............................................…
今天分享一个RedisTemplate的问题,感兴趣的可以继续看下去了,不感兴趣的继续撩妹去吧! 如下图:一位朋友给了我一个报错的图片,为啥为啥取不到值? 我也有点懵,第一反应就是RedisTemplate和StringRedisTemplate会不会用的两个不同的Connection,导致相同的Key一个能查到,一个不能查到. 经过反复确认,Connection没问题,是同一个,还是那句话:每个奇怪问题的背后一定有故事. 只能调试源码了呗,还能怎么办.最后在redis.clients.jedi…
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 自从做了推送以后,每隔一段时间就发现有各大的公司推送事故出现. 你问我做开发的慌不慌,我当然慌得一批了. 为什么经常会有推送事故 为什么会经常出现类似的事故呢?我认为最主要的原因是:预发和线上的环境是同一套. 众所周知,我们的系统都有几套的环境(比如说本地/线下/预发/线上 环境),其中大多数公司的预发和线上环境数据库是同一套的,只是预发环境调用…
我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者. Spring Cloud 系列文章已经完成,可以到 我的github 上查看系列完整内容.也可以在公众号内回复「pdf」获取我精心制作的 pdf 版完整教程. 写代码多年,我一直有个习惯,只要是要做的功能模块不是很复杂,一般都是上来狂写一通代码,等功能做好了,再启动服务测试,哪里有问题再改(实话说,单元测试写的也不多).而不是写完一个接口…
上一篇:<坎坷路:ASP.NET 5 Identity 身份验证(上集)> ASP.NET Core 1.0 什么鬼?它是 ASP.NET vNext,也是 ASP.NET 5,以后也可能叫 ASP.NET XXX(微软改名很不靠谱,说改就改…
(一)Quartz单机 1.Quartz简介 Quartz是一个完全由java编写的开源作业调度框架,能实现业务的定时调度.Quartz主要有三个核心调度器.任务和触发器: ①任务-JobDetail:Quartz在任务调度的时候,需要创建一个任务实例,JobDetail正是承担这个角色.在Quartz2.0以前的版本中,创建一个任务通过new JobDetail(String jobName, String gruop, Class jobCLass)这个方法来创建,在2.0之后的版本中通过J…
目的 这份文档描写叙述了怎样安装.配置和管理从几个节点到有数千个节点的Hadoop集群. 玩的话,你可能想先在单机上安装.(看单节点配置). 准备 从Apache镜像上下载一个Hadoop的稳定版本号. 安装 安装一个Hadoop集群,一般包含分发软件到全部集群中的机器上或者是安装RPMs. 一般地,集群中的一台机器被唯一地设计成NameNode,还有一台机器被设置成ResourceManager.这是master(主). 集群中剩下的机器作为DataNode 和 NodeManager.这些是…
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberry 选项: Android 选项: 生成makefile 遇到链接检查失败的情况 生成makefile后进行编译 编译时的错误 多重定义’QT_MODBUS()’和’QT_MODBUS_LOW()’ qt_static_plugin_AssimpParserPlugin未定义 在Qt Creator…
经过一系列的前期环境准备,现在可以开始Hadoop的安装了,在这里去apache官网下载2.7.3的版本 http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz 不需要下载最新的3.0版本, 与后续Hive最新版本有冲突,不知道是不是自己的打开方式不对.  hadoop有三种运行方式:单机.伪分布式.完全分布式,本文介绍完全分布式. 安装Hadoop 现在有三个机器,一个Master…
出错条件: 1.实体属性为bool?类型 2.对应字段为可空的tinyint(1)类型 3.该字段查询结果内即含有null,又含有正常值 google答案,两种建议: 1.修改sql语句,直接cast转换(未通过) 2.修改字段类型为tinyint长度为2或更长(此法可行,测试发现,改成bit类型也行),在datareader 的getfieldtype时,tinyint长度为1类型为Boolean,大于1时类型为byte,short,int 然,因我的查询结果中此类字段数量较多,且以上两种方案…
准备3台centos7机器/虚拟机,每台都安装上elasticsearch6.7.0 ,安装过程参考我的另一篇博客<Elasticsearch-6.7.0系列(一)9200端口 .tar.gz版本centos7环境--下载安装运行> 我这里的三台虚拟机IP是: 192.168.10.130.192.168.10.140.192.168.10.150 修改3台ES的配置文件config/elasticsearch.yml 参考https://www.cnblogs.com/jstarseven/…