12 Sam哥哥

尚未进行身份认证

我要认证

沉浸电商第六个年头了。

等级
TA的排名 2k+

利用DB实现分布式锁的思路

概述以前参加过一个库存系统,由于其业务复杂性,搞了很多个应用来支撑。这样的话一份库存数据就有可能同时有多个应用来修改库存数据。比如说,有定时任务域xx.cron,和SystemA域和SystemB域这几个JAVA应用,可能同时修改同一份库存数据。如果不做协调的话,就会有脏数据出现。对于跨JAVA进程的线程协调,可以借助外部环境,例如DB或者Redis。下文介绍一下如何使用DB来实现分布式锁...

2018-03-05 15:06:42

Python基础学习-函数

Python基础学习-函数

2019-12-07 12:22:18

Spring RabbitMQ Channel理解

有了TCP连接后,为何还需要channel,是基于什么场景呢?channel的性能又如何呢?

2019-12-06 21:30:35

研发Owner的职责

概述技术组长或者PMO,可能在同一个上线周期里,需要跟多个项目,有时候会跟不过来,这个时候可以指派一个owner,分担一些压力。owner定义owner是临时授予的小组长,负责主导某个项目某个端(后端或者前端)的整体工作。owner具体职责,主要是关注技术侧的,非技术侧的,由PMO跟进。且这里说的owner,是指单端的owner,例如:后端侧owner,前端侧owner。对内...

2019-12-06 12:29:01

简单说一下业务接口自动化测试

概述在创业公司里,项目都比较赶,测试人员也是疲于测试功能模块,基本没空去写什么自动化测试,以提升回归测试的效率。但一个必须承认的事实便是,依赖测试人员去做全面回归测试,保证质量,是不可取的,因为难度太大,成本太高。因此自动化测试还是要做一些的,具体如何着手呢,下文说一下我这边的做法。注意:本文主要描述一下业务接口自动化测试的方案,至于GUI自动化测试和压力自动化测试不在本文的讨论范围内。...

2019-12-06 11:49:35

说一说单体应用的不良影响

1、业务耦合一个单体应用后,多人在上面开发代码,各种代码冲突,提交后,各种编译不通过,启动不起来,严重影响了开发效率;2、不好做水平扩展;3、一个小的功能点改动后,需要整体上线;4、由于功能耦合多了,单体应用启动的时间变的很长,无法做到快速启动和发布,想我们这边的一个大应用,16台机器,滚动发布的时候,需要16分钟。5、...

2019-12-03 15:47:49

关于日志打印

概述关于日志打印

2019-12-02 16:42:02

线上应用遇到了oom killer

概述在2019年10月21日,公司的一个后台应用中【生成营销活动数据】的操作,执行到一半突然不执行了,导致部分活动数据没生成,运营人员对此怨声载道的,因为影响了他们的运营效率了,要求我们技术人员尽快解决。定位过程首先是从日志入手,分析线程执行。...

2019-10-30 09:56:02

socket.accept后,会产生新端口吗?

概述前段时间,组内的一个小伙伴问了俺一个问题:调用socket.accept方法,建立连接后,服务器端会为其创建一个新端口吗?客户端与服务端成功建立连接后,客户端这边肯定是需要开启一个新的端口的,而服务端其实只需要一个监听端口就行,不用每个新连接一来,就创建一个新的端口。如上图,客户端跟服务端,建立了两个连接,连接1和连接2,端口分别是59989和59990,而服务端的监听端口是8...

2019-09-29 16:43:46

RabbitMQ使用场景简单介绍

概述Rabbit MQ的使用场景非常多,典型的场景主要分为下面几种:跨系统的异步通信基于pub/sub模型的事件驱动削峰下面主要是讲自己以前用过MQ的场景,简要的介绍一下。秒杀订单之削峰sec-kill-order独立集群的职责有三个:接收所有瞬时涌入的秒杀请求,并以先进先出的方式将请求保存到队列里,将请求排队,起到削峰的作用;提供拉取数据接口,给秒杀业务处理层使用...

2019-09-15 18:29:37

Spring Boot RabbitMq 并发与限流

概述电商中秒杀请求,属于瞬间大流量,同一时刻会有大量的请求涌入到系统中,可能导致系统挂掉。应付这种瞬间大流量的其中一种方式,便是利用消息队列。1、利用消息队列先进先出的特性,将请求进行削峰;2、控制好消费端的消费速度,进行必要的限流。在消费端,要做到上面提到的第2点,在Spring Boot RabbitMQ中只需要利用@RabbitListener`注解,做一些简单配置就可以了。...

2019-09-09 12:51:25

Spring Boot Controller层测试

概述对业务Service层的代码进行详尽的单元测试是非常必要的,但也不能忽视Controller层的测试,毕竟Controller层的接口输出都是给前端用的,且Controller层拿到业务Service层的返回结果后,通常也会做一些业务处理或者转换的问题,以适配前端的展示需求。目前参与的项目,都是基于Spring Boot的,下面就简单介绍一下如何基于Spring Boot 2' 和 J...

2019-09-07 09:47:28

Git log修改时间格式

概述我们经常会使用git log去查看提交记录,但是默认展示的提交时间是如下格式的:Date: Thu Aug 29 19:15:05 2019 +0800不太容易看懂,因此最好使用如下的命令,讲提交时间格式化一下:git config --global log.date format:’%Y-%m-%d %H:%M:%S’执行成功后,再执行git log命令,就可以看到格...

2019-09-04 11:38:14

Spring Boot下使用RabbitMQ

概述本文主要一下在JAVA 中使用Rabbit MQ的三种方式:– 原始方式– 结合Spring– 结合Spring Boot下面将使用逐步演进的方式来讲解JAVA下如何使用Rabbit MQ的发布订阅模式。最原始的方式本文的DEMO是用Window版本的Rabbit MQ的,具体的安装方式,可以参考:Win10下安装erlangwin10下安装rabbitmq我们先...

2019-09-01 23:16:47

无论多紧急,预发布一定要走查一下

概述2019年6月28日晚上,bug群里的客服抛出了一个问题,订单结算页无法切换收货地址了,由于订单结算页离下单非常近了,如果出问题,会直接影响下单,也就影响了公司收入。由于618大促时,没发任何版本,而这个问题是大促结束后,发版本后才出现的,因此火速联系相关人士排查问题,最后通过日志发现,新版本的地址接口,增加了部分参数必填的校验,而这个地址接口的调用入口是有三个的,其中一个入口并没有传入参...

2019-06-30 15:18:59

敏捷中的双周迭代导致的恶性循环

概述最近公司使用敏捷中的双周迭代,也即是每两个星期发布一次应用。双周迭代是控制团队交付节奏的,但是如果玩的不好,会导致大量的线上bug。下面先说说我们之前的玩法。1、进入下一个双周迭代前,产品侧会出需求,我们提前分析。当然有时候,产品没那么快出需求,就会在当前迭代里分析需求;2、开发这边分...

2019-06-30 14:31:18

学以致用,解决系统问题的人才算牛人

概述在公司里,你肯定会看到部分程序员,一直在研究技术,像算法、新技术、底层知识等,给人的印象就是,他挺牛的,懂挺多底层知识的,但是如果他的这些技能,没有用于解决公司系统问题,那么在老板眼中,他不是牛人。学以致用,能把学到的知识,用于解决公司实际存在的系统问题,带来了实际的价值的,才算牛人。平时多思考当前情况下,团队的问题、流程的问题、测试的问题,业务的问题,梳理出来,看看当前自己掌握的...

2019-06-30 13:56:08

DOD

概述最近做项目的时候,发生一个事情,我们把一个用户系统重构后上线了,采用代码重写,新DB的方式。但是上线不久,就陆续发现了一些BUG。定位后,才知道,是因为用户系统的上线,其实只是上线了一部分,并没有完整上线。另外这个跟老板心中认为的已上线是不同的。老板认为的已上线,就是整个用户系统都重构完毕,接入方对接完毕,完整的交付了。这里老板和员工对所谓的任务完成的理解,出现了不一致。为了避免这种情...

2019-06-28 12:17:40

Linux grep -v 命令排除输出

概述有时候,我们在线上查日志定位问题的时候,经常会使用catxxxx.log|grepyyyy命令,如果grep的时候,想排除某些字段,那么可以如下操作:cattest.log|grep"login"|grep-v"deviceType"上面的命令的意思是:找出test.log中包含login信息的,且没有deviceType这个字段的。这个其实非常有用的,因为有些业...

2019-05-24 13:53:02

小程序access_token耗尽问题

概述前几天,产品经理紧急打我电话,说后台好些商品无法生成小程序码了,这些商品小程序码是需要紧急推到公众号文章里的,让我赶紧解决。我立马登录到后台操作了一下,果然报错了。但是由于报错信息只是:“操作失败”。啥都没有,简直醉了,只能用tail-fxxxx.log命令,看看具体的报错堆栈,发现是空指针错误,仔细看了一下代码,当access_token为空的时候,会走入到一段特有的逻辑,但是这段...

2019-05-19 19:41:59

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 精彩红人
    精彩红人
    发布高质量Blink获得高赞和评论,进入精彩栏目即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。