Sam哥哥聊技术

互联网技术爱好者

CSDN 2018博客之星,需要您投上宝贵的一票

概述 在CSDN的技术博客,持续的写了三年了,通过写博客,自己也学习到非常多东西,别人也可以通过我的博客学到一些东西。最近本人参与了CSDN 2018年度的博客之星竞选,劳烦大家为我投上宝贵的一票。请投: 054 Sam 哥哥 。 投票地址是:CSDN 2018博客之星投票 ...

2018-12-29 10:47:27

阅读数 211

评论数 0

尽量避免bug的一些手法

尽量避免bug的手法

2018-12-28 11:43:32

阅读数 5210

评论数 50

遇到的一个缓存穿透故障

概述 在昨天下午,在做业务系统每日巡检的时候,发现营销系统的日志里,出现了209次ERROR,内容如下: 获取商品详情优惠券出错,request:{“productId”:123456,“shopId”:123456,“userId”:123456} 获取商品详情优惠券出错,request:{...

2018-12-27 12:26:20

阅读数 900

评论数 8

缓存时间小技巧-随机打散

概述 之前在营销系统里,开发了一个接口,用于在商品详情页里显示优惠券,方便用户在商详里看到优惠券和领取优惠券。由于商详的访问量比较大,因此显示优惠券的接口必须加上缓存。 缓存时间设计 原先优惠券缓存时间是固定设置为5分钟,但是5分钟过后,就会集体失效,因此便使用一个随机数工具,将缓存时间随机...

2018-12-26 14:23:28

阅读数 283

评论数 0

下单接口剥离秒杀和拼团逻辑

概述

2018-12-24 19:14:26

阅读数 357

评论数 0

Spring Boot bootstrap.yml外置

概述 有时候我们是需要将bootstrap.yml文件的外置的,也即是说,在spring boot应用启动后,不直接使用jar包里面的bootstrap.yml文件,而是读取某个目录下的bootstrap.yml文件,然后进行覆盖。注意在spring boot 2.0之前的版本,得使用如下参数:...

2018-12-13 18:30:25

阅读数 236

评论数 1

awk将文件某个列按照逗号分隔

概述 当我们在处理线上故障的时候,经常会从数据库表查询出某个列。 select product_id from order where user_id = 111; 查询出来的结果形式如下: 1 2 3 4 5 这个时候,我们通常会以 product_id in (1,2,3,4,5) 的...

2018-11-30 12:31:36

阅读数 130

评论数 2

写给测试人员的远程debug和异常断点设置

概述 我曾经在优秀互联网高级测试工程师应该具备的能力一文中提过: 测试人员能发现问题,还能定位问题,而且能给研发解释得清楚 定位问题并不是那么简单,尤其是在没有日志和异常的信息的情况下。对于不具备开发能力的部分测试人员来说,就更加难。这个时候,我们可以借助一些小技巧,来帮忙查找问题的原因。一...

2018-11-27 09:41:40

阅读数 316

评论数 2

awk神器呀

概述 在之前写过一篇一条慢SQL导致购物车服务无法使用的文章,由于购物车是入口,出了故障,自然都不是小问题。这不,老板说要统计一下影响面。如果没有成熟的业务监控和统计工具,干这种活,只能用最原始的查日志的方式。 本来我想把日志下载下来,写段JAVA代码分析一下,谁知日志文件居然有3个g,除了下载...

2018-11-22 10:39:23

阅读数 366

评论数 7

设计要做到扩展性强还挺难的

从营销工具-【满减活动】谈代码设计扩展性

2018-11-21 10:47:40

阅读数 1126

评论数 15

JDK 8 list分组获取第一个元素

概述 在JDK8 List分组一文中介绍了JDK 8如何对list进行分组,但是没有提到如何在分组后,获取每个分组的第一个元素。其实这个也很简单,代码如下: package test; import com.alibaba.fastjson.JSON; import com.alibaba....

2018-11-16 00:02:31

阅读数 1296

评论数 0

搜索框出现故障-又是一个通宵的晚上

搜索框出现故障-又是一个通宵的晚上 概述 每年的电商双11,都是注定要通宵的。流量一大,什么问题都可能发生。果然,今年的双11又是一个连续通宵的节奏。 小程序前端界面的搜索框出故障了,一片空白 顿时保障群里,保障消息铺天盖地,都在说搜索框用不了。顿时哥的头发感觉瞬间都是直的了,太紧张太害怕了...

2018-11-11 17:58:16

阅读数 5507

评论数 25

JDK8 List分组

概述 对List进行分组是日常开发中,经常遇到的,在JDK 8中对List按照某个属性分组的代码,超级简单。 package test; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.Seri...

2018-11-10 21:57:48

阅读数 532

评论数 0

JDK 8 List获取属性列表

概述 在JDK 1.8里,可以使用如下代码获取List元素对象中某个属性的列表。 import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class ListGr...

2018-11-10 21:06:36

阅读数 415

评论数 0

shell查找文件显示行号和对应区间的内容

概述 有时候我们需要一个文件大小不断变化的日志文件里,找寻一些错误信息。这个时候我们可以用如下的小技巧,找出错误日志的内容。 CAT的时候显示行号 cat -n cart.log | grep "支付失败" SED找到错误...

2018-11-10 18:34:30

阅读数 194

评论数 0

【Java微服务】一书第一章关键语句

概述 最近读了【Java微服务】一书,只有第一章看的比较认真,其他章节,如果对微服务已经有些了解的,可以大概浏览器一下就行。事实上,这本书写的最好的就是第一章。 下面把第一章中我觉得比较重要的语句摘录下来。 重要语句 可扩展性 随着整体式应用程序所有的部件都被打包在一起,它在扩展时是庞大...

2018-11-10 15:25:19

阅读数 848

评论数 0

淘宝大秒系统设计详解

概述 偶然从博客园读到了一篇关于秒杀设计的文章:淘宝大秒系统设计详解 真心写的不错,读完后,了解到一些之前未想过的方案。也推荐大家读一读。 ...

2018-11-09 12:36:17

阅读数 206

评论数 0

设置超时时间真的很重要

概述 在一条慢SQL导致购物车服务无法使用一文中,提到了客户端调用购物车服务的时候,超时了。如果当时客户端没有设置超时时间的话,会在客户端中产生级联故障。先用一张图来说明一下。 聚合层除了调用购物车微服务,还调用了营销系统微服务。如果购物车服务的接口响应时间很慢,而客户端聚合层调用购物车服务时...

2018-11-09 10:10:03

阅读数 1824

评论数 0

一条慢SQL导致购物车服务无法使用

概述 今天一大早就紧张兮兮的,因为要处理一个大故障:【购物车服务无法使用了】,这个故障直接导致前端添加购物车、获取用户购物车列表等操作都失败了。购物车是入口,一旦出现问题,影响极其严重。 临时处理 购物车服务所有接口,是有打印响应时间的,发现比平时慢了很多。由于情况已是十万火急了,我只能先重...

2018-11-08 14:37:49

阅读数 11668

评论数 95

一次判断失误的反思

概述 最近想把下单接口中耦合的营销逻辑剥离掉,不然每次修改营销工具或者新增营销工具的时候,下单接口都得改动,下单接口本身就非常复杂了,每次改动都得小心翼翼,深怕出错,从而影响下单。 公司的营销工具非常多,像砍价、满减、优惠券、拼团、秒杀等。那么到底是将全部营销逻辑一次性剥离还是一个一个来呢?当时...

2018-11-07 10:14:07

阅读数 244

评论数 4

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