15 水边2

福建米客互联网科技有限公司 - 高级架构师

我要认证

原91助手/百度手机助手服务端

等级
TA的排名 1w+

线上故障小记:低效的组合算法导致的崩溃

快12点了,准备吃饭了,突然收到告警:Process [user2-activity] CPU Time > 50%某个站点CPU占用超50%了。注:因为是服务混部,所以对机器上的单个服务,CPU不应该超过50%。排查步骤:1、看了一下监控大屏,该服务的所有节点,CPU都偏高,不正常。2、检查对应的数据库慢查询,一切正常。3、网关上,下线某台节点,然后对该站点的进程,导出一个内存Dump文件;4、用WinDebug打开分析,发现有4个线程执行时间较长,卡在 ProcessCalTicke

2020-09-04 12:05:25

MySQL写入emoji表情,并读取emoji表情的操作。

先放结论,读写emoji表情都正常的操作方式是:1、数据库的表定义,必须是 utf8mb4;2、SpringBoot配置文件里的连接串必须加 characterEncoding=utf83、配置文件里同时要添加初始化SQL语句: initSQL: “SET NAMES utf8mb4”保证以上3步,就可以正确写入,也能正确读取出emoji表情字符。-------------------------------------------------我是分隔符----------------------

2020-07-30 20:06:39

JPA-JpaRepository方法命名语法小记

梳理了一遍JPA的方法命名语法,记录一下,以便后续备查。注:本文不介绍JPL语法,版本为spring-data-jpa-2.3.0.RELEASE。假设实体类名为 aaa,且定义如下:import lombok.Data;import javax.persistence.Entity;import javax.persistence.Id;@Entity@Datapublic class aaa { @Id private long id; private long

2020-05-21 20:27:34

快捷键冲突情况小记

有相当长一段时间,在使用IDEA调试的时候,发现F8按钮不好使,但是F7和F9又OK,还以为是键盘坏了,今天突然想起以前修复过快捷键冲突的问题,就查了一下安装过的软件,果然,F8被有道词典给注册了,关闭有道的快捷键就好了,写一个文章记录那些有冲突的软件吧。建议如下这些软件,关闭所有快捷键,谁也不知道哪天就冲突了呢……1、有道词典设置=》取词划词=》开关热键 默认是F8,删除它;影响IDEA的F8调试 和 Chrome开发者工具的F8调试其它:设置=》常规Ctrl+Alt+X 打开有道词典Ct

2020-05-13 11:12:45

SpringBoot加62进制,自增序列,实现短网址服务

看了一个短网址项目,需要提前批量生成大量短网址,并转为二维码,然后打印出来,线下运营去客户那边贴码,同时在后台绑定跳转地址。这个项目的实现是生成随机的6位字符串,再判断数据库不存在时,才插入数据库,伪代码就是:string code;do{ code = Random.Get(6);// 6位随机串短码}while(DB.Exist(code));DB.Add(code);r...

2020-03-27 23:55:20

仿Java实现的,DotNet版本的Feign类库

简介Feign是Java里的一个声明式的http api请求库,可以通过注解(类似.Net的特性)来快速并优雅的封装对http的调用,并且方便理解和后续的维护,已经广泛的在Spring Cloud的解决方案中应用。基于这些优点,我也为.Net封装了一个类似的类库:Beinet.Feign,下面简单介绍一下使用方法。注1:该库基于Framework4.0开发(可以支持WinXP系统),并依...

2020-03-21 13:02:02

简介LinFu.DynamicProxy动态代理,及Attribute的构造过程

这里写自定义目录标题这2天,基于项目可维护性的考虑,要实现一套类似于Java Feign的类库,可以快速并且优雅的声明和调用API,当然,Feign都是接口声明,不考虑做接口实现,因此采用LinFu.DynamicProxy作为动态代理,来拦截所有Feign接口方法的调用。LinFu.DynamicProxy介绍,可以参考这里,至于为啥不用Castle DynamicProxy,因为Castl...

2020-03-18 22:38:10

MySQL隐式转换,导致的误操作更新数据一则

早上过来,有数据需要刷库,简单整理更新语句如下:UPDATE tb SET content='xxx' WHERE tcode=1因为该表的 tcode 定义如下,并且是唯一索引:`Code` varchar(128) NOT NULL COMMENT '短码'没有想太多,直接安排刷库了,一看刷库结果,影响行数4097行,头一晕,赶紧用查询语句看一下:SELECT tcode F...

2020-03-10 09:56:25

.Net常见线程安全问题整理

最近线上又出现了几次线程安全问题 导致的服务异常,线程安全问题都是隐藏的炸弹,有可能几个月都不出问题,也有可能连续几天爆炸好几次,问题出现的结果完全是无法确定的,包括但不限于如下结果:应用异常,且无法自恢复,必须重启站点或服务;陷入死循环,导致CPU占用100%,从而整台服务器崩溃;错误数据入库,导致一系列的排查、数据修复的困难,甚至可能无法修复数据;因此,很有必要做几次全局的筛查...

2019-09-29 15:15:27

记一次Windows与.Net 线上请求超时的问题排查过程

某日,收到同事反馈,大量支付数据丢失,未能正常入库,无法确定原因。找同事了解了一下流程和日志,流程很简单:错误日志就是job那边有大量的超时异常:System.Net.WebException: 操作超时 在 System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 在 System.Net...

2019-06-10 20:27:42

Java学习-03:Maven项目创建/安装与引用

Java学习-01:环境配置与编译第一个程序Java学习-02:项目打包与发布本文介绍,如何在IDEA里,创建一个maven项目,并安装到本地的maven仓库时,然后在SpringBoot项目里引用它。1、新建一个Maven项目,操作如图,从maven-archetype-quickstart模板创建:2、在下一步窗口里,输入这个项目的:Group 项目所属的组织,如beinet公司...

2019-05-15 20:00:37

Java学习-02:项目打包与发布

IDEA安装参考前文:Java环境配置IDEA项目开发完成后,怎么进行打包和发布?有2种方案,第一种是用IDEA直接打包,第二种是用maven打包。我们的项目都是通过Jenkins调用maven命令行进行打包和推送线上服务器。这里不介绍IDEA本身的打包,只讨论maven打包的2种方式:0、pom配置:在打包前,要先对项目的pom文件增加一些配置:0.1、在下添加 jar,表示打j...

2019-05-07 20:33:37

WinDbg排查.net性能或内存问题步骤简述

安装步骤:第一步当然是安装了,需要注意的是,千万不要搜索 windbg 然后下载,搜索到的windbg安装文件,都不是我们想要的,真正的windbg,实际上是在微软的SDK里,下载链接在这里:https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk点击这个网页里的 DOWNLOAD THE .ISO,文件...

2019-03-29 15:01:40

业务开发部署时,消息消费者是独立部署还是跟站点一起部署的考虑。

在当前互联网场景下,消息队列作为业务解耦的中间件服务,已经越来越多的得到了应用;但是,在实际的部署中,我发现有相当多的开发人员,把队列的消费代码,直接写到了Web站点的代码里,并且部署上线。应该说,在小规模的应用场景下,这种作法没有太大的问题:开发简单,一个项目完成所有业务场景;部署简单,只需要部署一个站点就完事了,后续的更新维护和日志排查,也只需要看一个地方就ok。但是,在规模较大...

2019-03-27 10:57:34

记录一次问题排查过程:Random线程不安全导致的CPU满

先写结论System.Random是线程不安全的,要避免使用单例,或者进行加锁操作。参考:https://docs.microsoft.com/en-us/dotnet/api/system.random这里有一句话:If you don’t ensure that the Random object is accessed in a thread-safe way, calls to me...

2019-03-21 15:58:02

System.Web.PreApplicationStartMethodAttribute应用场景

前几天整理了一下开发框架的内容,记录一下我们的项目中,对 System.Web.PreApplicationStartMethodAttribute这个属性的一些应用场景。注:Nuget上有个WebActivatorEx库,它也定义了相同的一个类:PreApplicationStartMethodAttribute,简单来说:WebActivatorEx.PreApplicationStartM...

2019-02-27 13:15:26

.net异步上下文对象简介:AsyncLocal 和 CallContext

在Web开发过程中,有时需要在整个生命周期里传输数据,一般常见的做法就是使用 :HttpContext.Current.Items.Add(“name”, “value”);这样就可以在整个上下文里访问到需要的对象了,甚至HttpContext.Current.Items也是支持async异步上下文的。如果你只做web开发,那么用它就对了,可以不考虑其它对象。注:我在测试过程中,发现有时a...

2019-01-22 20:49:45

.net的线程本地存储Thread Local Storage:ThreadStaticAttribute/TheadLocal/LocalDataStoreSlot

在项目中,发现有同学使用了ThreadStaticAttribute,之前没怎么使用过,特意了解和测试了一下,不是很推荐使用这个特性。这3个东西,叫做线程本地存储,全名:Thread Local Storage。ThreadStaticAttribute的文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.threadstaticatt...

2019-01-09 16:36:29

Chrome或Firefox浏览器对静态资源文件的缓存时长是多久!

先放上结论吧,Chrome和Firefox对js、css之类的文件,在内存中的缓存时长,是:(访问时间 - 该文件的最后修改时间) ÷ 10假设文件 a.js 最后编辑时间是 2018年12月1号 10点0分0秒;Chrome的第一次访问时间是 2018年12月1号 12点0分0秒;第一次访问与文件编辑时间相差2小时,即7200秒,那么缓存时长就是720秒即结论如下:1、在 201...

2018-12-07 16:59:27

HTTP中间层不支持PUT/DELETE等特定METHOD时的处理

昨天,有兄弟跑过来找我,说正在开发的支付宝小程序,只支持HTTP协议里的GET和POST请求,不支持PUT/DELETE请求!?!?我们的很多线上服务都已经是按restful设计,有PUT和DELETE的api,总不可能让这些服务都为了支付宝,适配一堆POST的api吧?这个工作量不说,后续的维护以及新功能开发,都存在麻烦!暂时不考虑这种方案!这时,一个同事说有一个扩展属性:X-HTTP-Me...

2018-11-30 13:32:13

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 回归勋章
    回归勋章
    授予重新回归CSDN的真爱粉用户,我们不会让你失望哒!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。