- 博客(111)
- 资源 (12)
- 收藏
- 关注
原创 代码审查问题思考
代码审查的目的不是指出某个功能性问题,也不是针对谁的代码写的不好,而是要用第三者的目光去审视这份代码(可能哪里不好,或者很难阅读,或者会出现潜在的问题),从而加强代码质量(顺便提高开发人员开发水平),提高项目的可维护性、扩展性
2022-08-21 16:13:35
646
原创 mybatisPlus-mapper的注入值得思考
mybatisPlus-mapper好用,好用到感觉自己不会写sql了(哈哈)!!!!本人接触mybatisPlus-mapper一年半(用的比较多的是mybatis),所以一直对xxxMapper面向编程的sql编写这种玩法,随心所欲的写法很感兴趣(牛逼plus)。...
2022-07-20 16:32:51
1331
2
原创 接口限流技术调研
1. 限流算法工作中对外提供的API 接口设计很多时候要考虑限流,如果不考虑,可能会造成系统的连锁反应,轻者响应缓慢,重者系统宕机。而比较成熟的限流算法有令牌桶算法,本篇介绍令牌桶算法原理如上图,系统以恒定速率不断产生令牌,令牌桶有最大容量,超过最大容量则丢弃,同时用户请求接口,如果此时令牌桶中有令牌则能访问获取数据,否则直接拒绝用户请求2.单机解决方案Guava rateLimiter实现 //单机全局限流器,QPS为1 privatestaticfinal...
2022-05-09 14:48:32
264
原创 程序员职业素养
背景1.概念梳理2.职业素养背景做一行,就得遵守一行的基本职业操守,想做的好,就需要具备相应的职业素养。但很多人连这个基本都做不好,何谈优秀?好在这是一种能力,自然也就可以培养、提升。1.概念梳理职业素养包含很多层面的东西,其中比较重要的可以拆分为:职业道德(品德、原则)、职业思想(习惯)、职业技能(专业技能)。一般大家注意的最多的可能是职业技能,少部分职业思想,职业道德几乎忽略,实际上这恰恰和重要性相反了。重要性顺序:职业道德>职业思想>职业技能。2.职业素养公司或团队
2022-04-24 12:48:38
1171
原创 程序员思想提升
引子有些技术人只关注技术提升,其实软实力一样很重要。毕竟先做人,后做事。团队内部做一下思想提升,很有必要。-D神引子1.团队管理篇2.项目管理篇3.技术设计篇4.职业发展篇1.团队管理篇1)【团队定位】团队需要容纳各种类型的人:奋斗型、中庸型、知足型、创新型、领导型、稳定型...希望每个成员都能找到自己的定位(有存在感,体现价值),并超越自己一小步。2)【遵守规则】守规矩,讲道理。圈子的规则,当无法打破的时候,先遵守进圈子,等有能力后再讲道理。(小到一个团队一个公司,大到行业,国家,世
2022-04-24 12:47:45
372
原创 使用RocketMQ实现分布式事务
RocketMQ半事物原理 可以百度落地代码1、首先添加以下工具类@ConfigurationpublicclassRocketMQExecutorServiceConfig {privatestaticfinalAtomicInteger counter =newAtomicInteger(1);privatestaticclassRocketMQThreadFactoryimplementsThreadFactory {...
2021-10-14 16:13:37
281
原创 分布式锁
分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的:加锁在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他进程或者线程,看到沙滩上已经有脚印,证明锁已被别人持有,则等待。解锁把脚印从沙滩上抹去,就是解锁的过程。锁超时为了避免死锁,我们可以设置一阵风,在单位时间后刮起,将脚印自动抹去。分布式锁的实现有很多,比如基于数据库、memcached、Redis、系统文件、zookeeper等。它们的核心的理念跟上面的过程大致相同。数据库
2021-03-31 20:16:46
344
原创 数据库id转name
我们遇到了什么在我们日常的工作过程中 设计表的时候是不是经常遇到如用户表有个组织id对应的是组织表id,但是前端再查询用户信息时确需要的是组织名称,或者用户表有个status状态在字典表里对应0-编辑中 1-发布成功 2-发布失败 数据库存的是数字但是前端确需要中文显示 这种现象及其常见比如用户表[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U3U9ItSG-1598408486970)(/uploads/it-community/images/m_7a52
2020-08-26 10:21:49
1514
1
原创 对账清分设计总概览
在移动互联网支付行业中,公司一般核心业务主要四大模块,基础数据服务模块,支付服务模块,对账服务和清分服务模块,本系列文章重点讲述对账清分服务模块 包含如何设计千万级别订单对账 如何适应各种银行清分服务能力以及对账清分过程遇到的各种坑什么是对账百度百科:传统的对账就是核对账目,是指在会计核算中,为保证账簿记录正确可靠,对账簿中的有关数据进行检查和核对的工作。在银行或者第三方支付中,对账其...
2020-03-13 17:06:31
3272
2
原创 如何设计千万级数据的java对账系统之一
本篇文章主要聊聊如何设计千万级别的对账系统。其他一些业务问题可以参看对账清分设计总概览。目前系统运行的对账总情况:对账日交易量两千万,交易金额50亿,对账时间5分钟以内本篇文章分两个模块 第一个模块主要文字描述下目前系统对账的流程,第二个模块主要讲述系统对账的发展历程第一个模块:对账主要干些什么支付系统对账主要干些什么事情呢,其实同样的对账系统差不多,每家公司业务不一样,可能...
2020-03-13 17:06:20
7350
5
原创 如何设计复杂多变的java清分系统之一
再讲解如何设计复杂多变的清分系统之前 先看下咱们整体架构清分我们接入服务是两台服务器,一个缓存服务器,共享目录设置在接入服务服务器其中之一,一天缓存服务器,oracle数据库主备库 这是目前大致情况,由于清分服务 主要是内部人员使用,使用人数不多,对高并发要求不高,主要用于清算,所以系统必须稳定问题一 为何设置主备库因为私网对账清分有很多统计服务 主要以查询为主,一般查询使用...
2020-03-13 17:06:09
1627
原创 一次去o索引建错引起的血案
故事背景:公司之前的数据库存储使用的都是oracle,后面为了跟上时代步伐 进行了一次浩浩荡荡的去o过程,首当其冲的就是将oracle换成mysql,在后期帮甲方开发项目我们都统一使用mysql,由于我们的程序是一套程序适配两个数据库类型,这样就出问题了,问题点是突然某一天甲方反馈用户在高峰期 操作有点慢,对于这种情况,我们一般情况就是优化数据库创建索引,我们查询条件主要是前端传入时间范围条件,但...
2020-03-13 17:05:58
360
1
原创 如何设计千万级数据的java对账系统之二
在讲解对账系统设计前 先画个大致的草图 说明下背景我们为什么这样做公网对账:简单的可以说 就是一个大平台 部署了很多应用 比如支付接口 基础平台 对账服务等应用,主要用于对外 当然公网的系统架构整体布局比较复杂 这里暂且不去表述这个大平台架构,对于公网对账就是对外拉取所有的通道对账单文件和公网平台的本身的数据库订单做对账私网对账:简单来说就是一个个项目应用(公网和私网都有各自的数...
2020-03-10 19:34:51
4169
2
原创 对账清分过程中各种血案
总纲:清分:什么是清分 复杂多变清分:从策略+模板模式如何解耦 适应各银行需求清分:清分流水号如何生成 保证高并发清分:锁:内存锁-分布式内存锁-分布式redis锁清分:金额类型处理 一分钱引发的血案题记:公私互导的点点滴滴&kettle总结:分页查询引发的重复血案BigDecimal 加减引发一分钱血案数据源问题 事物生效并发问题一:查看和发起并发...
2020-01-09 09:39:27
489
原创 Spring非事务方法使用事务的性能问题及使用建议
Spring非事务方法使用事务的性能问题及使用建议一、现象弱网环境下通过@Autowired注入service获取数据,以下两种形式性能差距巨大(均无数据库操作)。代码生成的service继承了CrudServiceImpl的Servicepublic class ChannelConfigServiceImpl extends CrudServiceImpl<Ch...
2020-01-09 09:36:31
699
原创 bug,debug…就是个死循环
随着传统行业与互联网行业融合发展,程序员成为炙手可热的职业。国家统计局今年5月数据显示,私营单位就业人员年平均工资最高的是信息传输、软件和信息技术服务业。工信部数据显示,2013年全国软件从业人员达470万人。 《劳动报》通过网络调查、直访抽样调查、相关政府部门、人力资源机构等多渠道对上海程序员的薪金状况进行了统计。调查显示,有近8成的程序员月薪在5000元-1.5万元这一区间。受访者的...
2019-05-24 13:48:09
316
原创 为什么二十几岁的人很迷茫……
在20多岁刚进入社会的时候,你扮演的是一个候补队员的角色,甚至可能连候补队员都不是,只是一个足球爱好者。到了30岁,你就混成了一个候补队员,到了40岁,就差不多可以上场踢球了。快乐的感觉是一种自我体验,当然,也要有社会的评价。如果你自己的体验和社会的评价能平衡,那你的快乐分值就会比较高。比如,你认为自己很牛,大家也吹捧你很牛,这就说明你的自我体验和社会对你的评价是一致的。 而像唐骏[微博],...
2019-05-20 11:16:16
452
原创 一个人的武林
小时候,爱剑源于武侠,曾经无数次的幻想过自己背负长剑,行走江湖的场景。而如今在熙熙攘攘的魔都里穿梭,在那么一刹那,想到,程序员的世界,何尝不是一个江湖? 在武林中,我们常常流传着关于高手的传奇故事。手中无剑,心中也无剑,是无数剑客们追求的境界。因为虽然手中无剑,心中也无剑,但是落花飞叶皆为剑,剑剑杀招,可取敌人首级。但是这样的高手毕竟是非常稀缺的。多数的人都奋斗在手中有剑,心中无剑的层...
2019-05-20 11:15:27
377
转载 Java多线程编程模式实战指南:Two-phase Termination模式
http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-two-phase-termination
2018-03-24 16:38:08
271
原创 java esl连接freeswitch(三)之多台freeswitch切换上
java esl连接freeswitch 接口调用,先通过在线的esl(不在线的,此时可以通过esl重新发起请求使其在线)判断每台fs的当前通话数,然后比较fs的使用率
2016-09-12 15:35:24
4515
1
原创 java esl连接freeswitch(二)之事件监听
freeswitch从启动到关闭过程中会产生大量的事件,而事件的监听都可以通过socket监听接口,去监听你想要的事件
2016-09-12 15:13:41
14855
4
sqluldr2全量数据库导入导出包
2018-01-11
freeswitch xml_curl模块使用
2015-11-26
java操作word书签
2014-09-17
java定时收取邮件
2014-07-28
java代码实现word转换成pdf
2013-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人