个人工作中的总结
红尘之一骑
红尘之一骑
展开
-
个人对架构上分层分域的理解
在本人工作的公司,原创 2018-07-03 22:00:53 · 3429 阅读 · 2 评论 -
工作中遇到的sql优化相关问题总结
本文主要总结下工作以来,所遇到过的sql优化问题,至于一些通用sql优化常识,还有一些简单的场景加加索引index就可以这些情况本文就不描述了,本文主要挑选些工作中曾经遇到过的,个人认为(毕竟我不是专业的dba)还是有点价值的总结下,总体感觉下来,在优化sql的时候要多看sql的执行计划,便于你分析如何去优化sql。1,mysql相关在讲述问题前,我们先来准备下相关环境,如下:数据表:...原创 2018-12-07 19:32:29 · 823 阅读 · 0 评论 -
关于分布式系统流控的思考
考虑一个场景,在1s的时间内,同一个ip只允许访问某个系统3次,都有哪些实现方式?1,基于Nginx实现Nginx使用ngx_http_limit_zone_module 模块实现,其可以按照定义的键限定每个键值的连接数。特别的,可以设定单一 IP 来源的连接数。其优点在于避免了大流量传递到后端系统,消耗后端资源。但是,由于nginx.conf不能热加载,使用这种方式只能配置一些静态的参数...原创 2018-01-24 16:00:18 · 4281 阅读 · 0 评论 -
关于模块化开发的思考
缘起为曾经的一次面试,先介绍下背景。还是以本人现在工作中的业务背景为例吧,二级市场的业务有三种模式:转让、回购、质押,这三种模式构成了二级市场这条业务线的全部功能,这三个功能是分别互斥的,这导致三个功能之间彼此会有些依赖,比如回购时需要看下当前资产是否发生了转让或者质押。当前我们的业务量还不是太大,在搭建应用时,这三个功能都在同一个app中,考虑到未来万一哪天业务量大了,可以方便的(尽可能少改代码...原创 2018-11-25 21:19:07 · 486 阅读 · 0 评论 -
数据库中间件tddl与mycat使用总结
做订单中心项目的时候正好涉及到了数据库中间件,翻了翻以前的笔记,整理下曾经学习使用过的两款中间件,嗯,简要总结下。tddl是淘宝在几年前推出的一款基于客户端分片的数据库访问中间件,mycat(社区活跃)是开源社区基于服务端分片推出的数据库中间件,具体的介绍百度上都有,这里我主要根据自己的实际使用情况来总结下其异同以及优缺点:1,基于客户端分片的方案应该是数据库分片方案中最快的,它以jar包...原创 2018-10-26 19:32:20 · 7104 阅读 · 0 评论 -
订单中心项目分析与总结
需求背景:随着业务的发展,公司逐步上线了多种产品和业务线,每个业务线除了一些基础的服务(比如支付,资产交割等)使用公共服务外,剩余的部分都是业务线自行处理,这样就形成了各个业务线自己的订单。在业务发展的初期,这样的方式是很方便快捷的,可以使得产品快速上线,但同时也埋下了一些问题:1,用户如果需要查自己的订单,需要到不同的业务线(网站上不同的tab)进行查询,用户体验差(比如无法按照订单金额排序...原创 2018-10-26 19:32:04 · 7511 阅读 · 0 评论 -
秒杀系统分析与总结
秒杀是一种常见的营销手段,商品以极低的价格,在特定的时间点开售,引发大量的用户抢购,制造轰动效应。但是它给网站技术带来了极大的挑战,下面我们首先看下秒杀活动的一些业务特性与行为:1,活动时间短,并发流量极高,对网站的其他业务形成冲击2,因为秒杀活动,用户访问量突然增加,大大超过平时网站的带宽3,秒杀活动前,用户为了不错过秒杀,不停的刷详情页,如果请求一直穿透到后端服务器和数据库,会对后...原创 2018-09-18 22:53:02 · 3154 阅读 · 1 评论 -
分布式系统延时任务方案
在实际项目开发中,我们遇到了如下需求:1,机票订单下单后,如果30分钟内未支付,则自动取消2,产品上架后,24小时都没有人买,则自动下架3,一定时间后自动评价或者自动收货4,其他类似需求...类似这样的需求,我把它叫做延时任务,叫做定时任务不大合适,因为这类任务没有固定的触发时间,下面我们来分析总结下这类任务的解决方案:a,定时轮询数据库启动一个job(job调度与业务...原创 2018-08-20 22:46:53 · 1535 阅读 · 0 评论 -
分布式系统全局唯一id的生成
在实际项目中,本人在做需求时遇到了以下场景需要生成全局唯一id:1,为解决mq消息可能乱序的问题,我们需要一个全局且自增的id来标识消息2,数据库分库分表也需要一个全局唯一升序的id所以下面总结下生成全局唯一id的思路:方法1:使用数据库提供的自增sequence以Oracle为例,我们可以新建一个序列seq_common,使用sql:select seq_common.nex...原创 2018-08-02 23:09:36 · 2694 阅读 · 0 评论 -
个人对系统拆分的理解
在本人现在的公司和本人工作过的上一家公司,本人有幸参与并实施了公司业务系统的架构拆分,现将之前的工作总结下。1,为什么要进行系统拆分首先我们需要想想,到底什么样的系统需要进行拆分?并不是所有的系统都需要进行拆分,拆分系统是一件耗时并且有风险的操作,所以再拆分前需要再三考虑是否真的需要拆分,拆分的好处是否大于风险。个人认为进行系统拆分的原因主要有以下几个方面:a,组织结构发生了变化,从最...原创 2018-07-18 14:25:41 · 9793 阅读 · 1 评论 -
junit单元测试所踩到的坑
背景:某天,team内某童鞋叫我帮忙一起看个问题,原本运行正常的一个case(本人在一年前编写的),突然跑不过了,而且现象还非常诡异,搞了好久,不知道啥原因,严重影响移交进度(单测必须全过才能进行后续的发版流程)。现象:1,本地跑单元测试能够全部通过(我们是直接执行gradle clean test),打个tag,一拿到单测服务器上跑,fail了 2,单独跑这个fail...原创 2019-04-16 22:25:21 · 3870 阅读 · 0 评论