自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 JPA-JpaRepository方法命名语法小记

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

2020-05-21 20:27:34 38 0

原创 快捷键冲突情况小记

有相当长一段时间,在使用IDEA调试的时候,发现F8按钮不好使,但是F7和F9又OK,还以为是键盘坏了,今天突然想起以前修复过快捷键冲突的问题,就查了一下安装过的软件,果然,F8被有道词典给注册了,关闭有道的快捷键就好了,写一个文章记录那些有冲突的软件吧。 建议如下这些软件,关闭所有快捷键,谁也不...

2020-05-13 11:12:45 32 0

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

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

2020-03-27 23:55:20 71 0

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

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

2020-03-21 13:02:02 164 0

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

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

2020-03-18 22:38:10 26 0

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

早上过来,有数据需要刷库, 简单整理更新语句如下: UPDATE tb SET content='xxx' WHERE tcode=1 因为该表的 tcode 定义如下,并且是唯一索引: `Code` varchar(128) NOT NULL COMMENT '短...

2020-03-10 09:56:25 23 0

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

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

2019-09-29 17:11:40 105 0

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

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

2019-06-10 20:27:42 195 0

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

Java学习-01:环境配置与编译第一个程序 Java学习-02:项目打包与发布 本文介绍,如何在IDEA里,创建一个maven项目,并安装到本地的maven仓库时,然后在SpringBoot项目里引用它。 1、新建一个Maven项目,操作如图,从maven-archetype-quicksta...

2019-05-15 20:00:37 42 0

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

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

2019-05-07 20:33:37 80 0

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

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

2019-03-29 15:01:40 332 2

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

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

2019-03-27 10:57:34 82 0

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

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

2019-03-21 15:58:02 203 0

原创 System.Web.PreApplicationStartMethodAttribute应用场景

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

2019-02-27 13:15:26 235 0

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

在Web开发过程中,有时需要在整个生命周期里传输数据,一般常见的做法就是使用 : HttpContext.Current.Items.Add(“name”, “value”); 这样就可以在整个上下文里访问到需要的对象了,甚至HttpContext.Current.Items也是支持async异步...

2019-01-22 20:49:45 1521 0

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

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

2019-01-09 16:36:29 71 0

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

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

2018-12-07 16:59:27 3702 0

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

昨天,有兄弟跑过来找我,说正在开发的支付宝小程序,只支持HTTP协议里的GET和POST请求,不支持PUT/DELETE请求!?!? 我们的很多线上服务都已经是按restful设计,有PUT和DELETE的api,总不可能让这些服务都为了支付宝,适配一堆POST的api吧?这个工作量不说,后续的维...

2018-11-30 13:32:13 2649 0

原创 使用Windows服务无法操作GIT的问题与解决

最近做了一些工具,对线上服务数据进行备份和版本管理,比如域名解析清单、nginx配置变更、数据库表结构变更等等。 为了简单,工具里对Git的操作,是调用Git.exe进行commit 和 push的, 经过测试没发现问题,就配置为Windows的系统服务,以便让它不中断,结果问题来了! 发现服务启...

2018-11-09 15:25:42 286 0

原创 踩坑记:C#访问阿里云的API小结,阿里云的文档有待改善……

为运维管理方便需要,写了一个小工具去调用阿里云的API,包括操作ECS、SLB、域名等等API,结果就这么一点点小东西,也被阿里云的文档坑了好多次,下面5个问题,有3个跟阿里云文档相关…… 关键是阿里云的客服服务还差…… 1、计算签名的AccessKeySecret不能直接用,要在末尾添加一个...

2018-09-04 17:52:40 1222 0

原创 Visual Studio Code使用记录

写在最前,本文中所有涉及的文件,都在这里可以下载到:https://pan.baidu.com/s/1ABOlq8_p-_V04SnA0bFRPQ 安装VSCode的步骤就不说了,需要注意的是安装过程会有个选项,在文件右键菜单中集成:在Code中打开,默认是不选中的,建议你选中它。 VSCod...

2018-08-14 11:47:20 495 0

原创 SqlServer日常维护中,常用SQL备份

1、–查看数据库版本信息 1 SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY('edition'); -...

2018-08-13 13:12:51 477 0

原创 Fiddler抓包,快速显示耗时列、请求发起列等

我们在用Fiddler抓包时,左边的请求列表会缺少一些数据,导致不够直观,我们可以添加一些我们需要的列,例如 请求消耗时间等,这里就需要用到Fiddler提供的脚本功能了, 找了一下网上,基本上都不是我想要的,在Fiddler官网研究了一下,写篇博客留档吧: 官网这里有Session的所有属性...

2018-08-03 18:16:07 2316 0

原创 Visual Studio编译出的程序,以32位模式运行的问题与解决

前段时间,线上有一个.net写的服务程序,会不定期的卡死且无法恢复,需要手工重启进程。 经过一段时间的跟踪和性能监控,发现在卡死之前,内存都会上升到1.8G左右,然后就开始波动,重启进程后,内存跌到较低的水平,再经过慢慢上升,几天后升到1.8G又卡死…… 简单排查了一下内存上升的原因,是业务上...

2018-07-25 11:03:07 3532 0

原创 RabbitMQ的ack或nack机制使用不当导致的队列堵塞或死循环问题

记录几个RabbitMQ使用过程中容易踩的那些坑: 1、启用ack机制后,没有及时ack导致的队列异常; 简要代码如下,设置消息自动ack,会导致消息未处理完,出异常了,结果消息丢失了, 解决方法就是把代码里的true,改成false,并在消息处理完后发ack响应。 // 要监听队列,所以...

2018-05-24 09:10:02 22497 10

原创 RabbitMQ使用详解与C#版Demo

对RabbitMQ的使用也有一段时间了,也经常给别人做一些解释,看网上很多总结都不尽人意,我也在这里做一个总结吧。 当然,看官方文档写的更加详细就是了:http://www.rabbitmq.com/documentation.html 我这里只总结一些常用的知识点,并尽可能描述的清楚一些,如...

2018-05-23 09:56:22 3601 4

原创 Redis的事务和分布式锁实现

先做Redis事务介绍 Redis提供了简单的事务命令:Watch、Multi、Exec,注意没有Rollback。 简单应用: watch aaa watch bbb multi set aaa value1 set bbb value2 set ccc value3 exec 上述...

2018-05-10 20:14:56 802 0

原创 当nginx遇上http的delete请求+IIS部署

一个团队闭关开发独立的cs构架的项目,千辛万苦出来了第一个版本,测试通过,线上单台服务器灰度测试通过,很开心, 于是走流程正式发布,按常规项目部署分布式多服务器,结果问题来了,很多访问几乎都报400错误…… 整个团队都方了,周末排查,最终定位到如下特点: - GET/POST/PUT请求都...

2018-04-21 23:09:53 1449 0

原创 RabbitMQ.Client.TopologyRecoveryException问题与解决

封装了一下RabbitMQ驱动的调用,扔给团队用,一直也没出现啥问题, 昨天同事突然反馈给我,说调试时一直报错: Topology recovery exception: RabbitMQ.Client.TopologyRecoveryException: Caught an except...

2018-01-10 15:08:53 4162 0

原创 演示C#里的async和await的使用

写了段小代码,给同事演示一下这2个语法糖的代码执行顺序:class Program { static void Main() { Msg("Begin"); DisplayValue(); ...

2017-11-30 10:39:41 2602 0

原创 秒杀系统并发应对的设计思路小结

秒杀系统跟抽奖不同,抽奖是随机中奖,秒杀需要在启动时的瞬间, 把所有物料,顺序分配给进入系统的用户,直到分配完毕为止, 用户量大的时候,对系统的冲击也是非常大的,经常出现系统失去响应,崩溃等, 甚至于系统挂了,用户却中不到奖品(奖品超发是程序bug,本文暂不讨论)。 说明: - 本文主要...

2017-10-15 14:16:19 397 0

原创 IIS部署日志站点时出现的UTF8文件乱码问题及解决

问题产生原因 为方便查看线上问题日志,在服务器的IIS上新建了一个站点,根目录指向log目录,并开始了目录浏览; 嗯,可以进入网站,看到目录列表了,找到一个txt文件,点击看看日志,咦,怎么里面的中文变成了#%$@ 好吧,以前经常处理这个问题,就是点击chrome的菜单=》更多工具=》编码=...

2017-09-19 11:27:36 4713 3

原创 PHP的trim和preg_replace导致乱码的问题及解决

trim问题发现某天,线上展示的数据,发现多了问号,一排查,上游数据里多了0xC2和0xA0,百度查了一下,说是UTF8格式的空格,对应 网页里的 这个东东。 ok,问题找到了,简单对数据做一个trim就好了嘛,于是代码改成:$name = trim($name, chr(0xc2) ...

2017-09-05 18:34:19 2385 0

原创 C#读取超大文本文件的部分内容

线上用如下命令导出完整的数据库脚本: mysqldump -h10.1.9.36 -P8306 -uroot -p123456 business –default-character-set=utf8 –skip-lock-tables > dbback.sql 结果这个备份文件超级大...

2017-07-13 11:34:54 4310 0

原创 PHP获取网址的http code状态码或其它header方法

curl方案获取大文件链接的http code会内存溢出的解决方案

2016-07-07 13:38:25 5362 0

原创 Centos下给php安装Redis扩展及编译问题解决

1、第一步自然是去github下载源码了,记得加上参数 --no-check-certificate,不然https校验会出错 wget https://github.com/phpredis/phpredis/archive/develop.zip --no-check-certificate...

2015-11-30 10:51:38 3281 1

原创 PHP5.5在IIS7.5上无法运行,改用5.3版本后正常

部门有个前端工程师要在IIS下部署PHP,给装了一个PHP5.5.14,结果部署完成后,打开页面一直提示500错误:发生未知 FastCGI 错误 网上搜索半天,有的说是没装PHP5.5.14用到的VC11运行时,于是去这里下载并安装,问题依旧 继续搜索,说是 PHP5.5开始,已不支持xp...

2014-11-25 11:26:44 5608 1

原创 转PHP开发时,一些常见的坑

1、null和空、0、false等四个值的比较 在PHP中,== 会先进行类型转换,再进行对比,而===会先比较类型,如果类型不同直接返回不相等,参考如下示例 $a = null; $b = ''; $c = 0; $d = false; echo ($a == $b)?1:0...

2014-11-11 19:24:09 5544 0

原创 PowerDesigner中导入MYSQL数据库结构的步骤及问题解决

今天在使用PowerDesigner,要导入MySql的表结构到PowerDesginer里, 记录下具体的操作步骤: 1、首先要确保机器安装了MySql的ODBC驱动,去http://dev.mysql.com/downloads/connector/odbc/5.1.html 下...

2014-10-27 11:04:44 16698 2

原创 VS2013自带的Newtonsoft导致的编译异常

重装系统后,安装了最新的VisualStudio2013, 结果发现有些项目死活无法编译通过,一直报错,说“未能找到类型或命名空间名称“abc.model”(是否缺少 using 指令或程序集引用?)”,可是这个dll明明是引用了,而且重装之前也一直是正常的,再显示错误信息里的警告,发现一堆的引用...

2014-09-05 14:54:43 11848 4

提示
确定要删除当前文章?
取消 删除