第1集:验证 .NET 5.0 正式版 docker 镜像问题 第2集:码中的小窟窿,背后的大坑,发现重要嫌犯 EnyimMemcachedCore 第3集-剧情反转:EnyimMemcachedCore 无罪,.NET 5.0 继续背锅 第4集:一个.NET,两手准备,一个issue,加倍关注 第5集-案情突破:都是我们的错,让 .NET 5.0 背锅 第6集-案发现场回顾:故障情况下 Kubernetes 的部署表现 我们的博客系统是部署在用阿里云服务器自己搭建的 Kubernetes 集群…
第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…
今天晚上基于第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 镜像,所以发布时博客…
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统[系列3:实现点对点通讯] SignalR 2.0作为一个新的而且强大的通信工具,发布博客之后得到了很多人的支持,谢谢...也有人对性能和架设等问题提出了各种质疑..真的很感谢.. 我特意下载了SignalR 2.0的源码硬着头皮用我二流子的英语在微软官方的Demo里翻滚.. 今天这个负载均衡下使用…
在 .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帝国一个普通的上班族.上一回说到因为一个跨域请求,我差点丢了饭碗,好在有惊无险,我的职场历险记还在继续. "叮叮叮叮~~~~",闹钟又把我给吵醒了,我一看时间竟然已经这么晚了. 我赶紧起身,准备要去上班,好不容易在那家浏览器公司谋了个差事,可不敢迟到. 今天又是普通的一天,很快就到了深夜,上网业务少了,我和小雪妹子一合计,伙同负责网络连接的老白和负责存储的小黑,一起打起了麻将. 一连打了几圈,正在兴头上,公司的美女前台跑了过来,"你们几个…
开发环境: vs2010+.net framework 4.0+ System.Data.SQLite.DLL (2.0)今天在做Sqlite数据库测试,一运行程序在一处方法调用时报出了一个异常 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集 其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了…
背景: 本人上次做申领campaign的PHP后台时,因为项目上线后某些时段同时申领的人过多,导致一些专柜的存货为负数(<0),还好并发量不是特别大,只存在于小部分专柜而且一般都是-1的状况,没有造成特别特别严重的后果,但还是要反思了自己的过错. 这次又有新的申领campaign,我翻看了上次的代码逻辑: 正文: [先select后update] beginTranse(开启事务) try{     $result = $dbca->query('select amount from s_st…
Issue NBU7.0 Image Cleanup作业在没有配置hot catalog backup的情况下失败,Status=1 Error NBU7.0 Image Cleanup作业失败, Detailed status显示如下内容: 2010-2-8 17:35:06 - Info bpdbm(pid=1060) image catalog cleanup 2010-2-8 17:35:06 - Info bpdbm(pid=1060) Cleaning up tables in th…
目的 这份文档描写叙述了怎样安装.配置和管理从几个节点到有数千个节点的Hadoop集群. 玩的话,你可能想先在单机上安装.(看单节点配置). 准备 从Apache镜像上下载一个Hadoop的稳定版本号. 安装 安装一个Hadoop集群,一般包含分发软件到全部集群中的机器上或者是安装RPMs. 一般地,集群中的一台机器被唯一地设计成NameNode,还有一台机器被设置成ResourceManager.这是master(主). 集群中剩下的机器作为DataNode 和 NodeManager.这些是…
看到一个kinect大牛编写的一个水果忍者的体感游戏版本号,让我为自己一直以来仅仅用现有的网页游戏来模拟kinect体感游戏控制感到羞愧,没办法.我还是菜鸟.学习一段后自己模仿星际大战这个游戏.自己写了一个模仿版(对这个游戏我想大家是不陌生的).可是当我開始加入有关kinect控制代码时.突然系统报错"混合模式程序集是针对"v1.1.4322"版的执行时生成的,在没有配置其它信息的情况下.无法在 4.0 执行时中载入该程序集",调断点看了下问题出在程序集引用上,由于…
其他信息: V5.7.4.4 Can't find the System.Data.SQLite.dll more info : 混合模式程序集是针对"v2.0.50727"版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集. 解决办法,web.config 添加…
准备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/…
本文使用的是redis-4.0.13.tar.gz版本. 两个centos7系统虚拟机:192.168.10.140.192.168.10.150 redis各版本下载地址:http://download.redis.io/releases/ 单个redis下载.安装.启动.验证 在192.168.10.140上依次执行以下命令: cd /home/soft     进入软件存放目录 wget http://download.redis.io/releases/redis-4.0.13.tar.…
系统: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…
在把以前写的代码生成工具从原来的.NET3.5升级到.NET4.0时,将程序集都更新后,一运行程序在一处方法调用时报出了一个异常: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集 其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了一个问题,就是现有的System.Data.Sqlite这个数据…
看到一个kinect大牛编写的一个水果忍者的体感游戏版本,让我为自己一直以来只用现有的网页游戏来模拟kinect体感游戏控制感到惭愧,没办法,我还是菜鸟.学习一段后自己模仿星际大战这个游戏,自己写了一个模仿版(对这个游戏我想大家是不陌生的),但是当我开始添加有关kinect控制代码时,突然系统报错“混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集”,调断点看了下问题出在程序集引用上,因为是在.net 2.0版本上写的游戏…
C#连接Sqlite 出现: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集.的解决方案 C#连接sqlite数据库代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SQLite; using System.Drawing; usin…
参考并感谢 官方文档 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的临…
很多人说docker改变了运维世界,这句话是从群体角度来说的,是统计学意义上的改变,像mysql,python这样被大规模使用的基础应用,docker化之后为整个群体所节省的时间是非常巨大的. 有人可能会问,我只有一台服务器,也不太可能会迁移.我的python服务,mysql服务,只需要部署一次,就可以在以后重复使用了.那这样docker对于我来说还有优势吗?毕竟docker也是有学习成本的. 如果你确信你的应用都是一次性的,而且只提供给自己使用,那么docker在这种场景下的优势不是特别明显:…
“System.IO.FileLoadException”类型的未经处理的异常在 XXX.dll 中发生 其他信息: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集. 这时需要改dbconfig配置 在configuration 节点中 加或修改startup节点 <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedR…
Redis 5.0.7 讲解,单机.集群模式搭建 一.Redis 介绍 不管你是从事 Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业务代码的程序员,实际工作中或许只用到了 set value.get value 两个操作. Redis 概念 Redis 是一个开源的底层使用 C 语言编写的 key-value 存储数据库.可用于缓存.事件发布订阅.高速队列等场景.而且支持丰富的数据类型:string(字符串).hash(哈希).…