- 博客(12)
- 收藏
- 关注
原创 中台战略=微服务+服务治理+组织架构
前言本文是对《企业IT架构转型之道——阿里巴巴中台战略思想与架构实战》的读书总结。不会涉及太多技术具体点,而是将本书的逻辑脉络和结论梳理出来,方便大家阅读(带有个人理解,请批判性的阅读)。已经读过该书或者在各种渠道了解中台后,本文可以帮忙梳理一下思路。没有读过该书或不了解中台,本文可以作为读书路线,不迷路。接下来我将按以下路线解读该书:问题 —— 方案 —— 实现—— 总...
2019-05-24 15:16:03 2564
原创 优雅地实现定时任务——记住这三点就够
前言定时任务=调度+执行调度有很多框架实现:elastic-job、quartz等执行需要程序员实现任务队列。实现任务队列有很多方式:数据库、redis、kafka实现任务队列虽然很简单,但稍有不慎,也很容易出问题。代码实现首先把问题简单化,假如需要在单库实现定时任务,我们逐步实现优化代码第一次实现public void execute1() { List&l...
2019-05-04 18:57:36 1461
原创 跳槽6个月后的一些感悟
薪资1.跳槽给你的涨幅,是依赖你定级时的薪资范围,大多时候跟你上家公司薪资不太相关。2.在级别的薪资范围内,争取高区间,一依赖你的上家工资,二是看HR留你的意愿层度。如果HR意愿很强,此时手上有几个对比offer就很好了。职场1.从P6到P9,每个人都很忙,压力大。只要你一天在工薪阶级,老板们就不会让你舒服起来。2.职场真正关心你的人几乎没有,因为个个都是泥菩萨过江。3.大厂求职的考察点:大厂背景>稳定性>项目>学历...
2020-11-19 21:00:52 211
原创 lambda$groupingBy 空指针问题
开发功能时,用到了stream的collect(Collectors.groupingBy)方法,一直报NullPorintException,废了一些时间来定位问题,虽然最后其实比较简单。记录一下,以下代码会报空指针 public static void main( String[] args ) { List<Student> list=new ArrayList<>(); list.add(new Student("A",
2020-10-14 17:42:00 3012
原创 成长记录:三年工资翻三倍
学了七年机械,17年硕士毕业。毕业其实也不知道自己能做什么,在找工作的时候提前三月将一本JAVA入门看了几遍,要说自己懂JAVA,我自己都不好意思。投过机械设计岗、产品岗、JAVA岗等,最后只有一个中厂(某个行业的NO1)要了我,从事JAVA开发。入职三年,我一直想找到当初面试我技术的面试官,问问他是看重我哪一点,让我通过了面试。记得当时面试官问我问题,我直接回答不知道,说我就知道几个从书上背下来的答案,什么面向对象,AOP啥的。看我很多不知道,面试官就开始问一些譬如你在硕士做得最成功的一件事是什么?如
2020-08-16 21:38:52 1271
原创 Redis分布式锁项目实践
实现方案:1. setNx(set if not exist),这个是原子操作;2. 加锁了之后如果机器宕机那么这个锁就不会得到释放,所以要加入过期时间,而且加入过期时间需要和setNx同一个原子操作;在Redis2.8之前我们需要使用Lua脚本达到我们的目的,但是redis2.8之后redis支持nx和ex操作是同一原子操作。3. 使用ShardedJedis实现。加锁: ...
2020-01-09 13:00:16 264
原创 MYSQL分区表如何保证数据唯一性
背景:由于业务数据量大,采用了分库分表(Mycat);为了提高查询效率,使用了时间来分区;分区之后表的唯一索引必须带上分区字段。假设有一张订单表(table_order)业务字段为order_no(订单号),分区字段为create_tm(创建时间);唯一索引就是联合索引order_no+create_tm。问题:分布式系统中多个节点,对同一订单并发处理,发现table_order中...
2019-12-19 11:31:57 2366
原创 一次Mycat聚合排序问题定位
背景:Mycat+Mysql实现分库分表;功能需要遍历表,数据量有点大,于是通过id排序分页查询。问题:在实现过程中发现有部分id查不出来,功能排期只能被迫延后。定位第一阶段:在确认了代码和SQL语句没有问题后,目光转至Mycat与Mysql排序逻辑上来。定位第二阶段:确认了Mycat与Mysql排序逻辑有问题,至少Mycat与Mysql排序逻辑表现不一致。1.执行...
2019-11-20 14:20:56 779
翻译 Guava Cache官网个人翻译
示例LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterWrite(10, TimeUnit.MINUTES) .removalListener(MY_LISTENER) .build( ...
2019-10-17 21:01:51 294
原创 架构设计方法之一:分析系统复杂度
书名:《从零开始学架构》最主要是提出了一种观念,架构是为了应对系统复杂度;以及一个先分析系统复杂度来指导架构设计方法。下图是书本脑图PS:本书涉及的其它点CAP理论Consistency 一致性 Availability 可用性 Partition tolerance 分区容忍性Eric Brewer 说,这三个指标不可能同时做到。这个结论就叫做 CAP 定理。...
2019-05-30 19:02:20 512
原创 “要不你来改?”——多么痛的领悟
项目小组一个新项目做了差不多一年,从第三个月开始,我就发现代码设计层面的漏洞。如果我觉得有必要,我就会指出来。但是每次向团队研发人员指出,他们总是说“时间紧、任务重,下次再改。”——绝望后来如果我认为代码问题比较严重,影响到后期维护,研发人员还是说“要不你来改?”。我就会当着研发人员的面向研发负责人提出我的想法和疑问,让研发负责人定夺。再后来,研发负责人也不太管了。为了项目进度,甚至代码评...
2018-12-12 11:47:31 351
原创 CXF报错解决
NoSuchMethodError->JaxWsServiceFactoryBean.isWrapperPartQualified报错堆栈:Caused by: java.lang.NoSuchMethodError: org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.isWrapperPartQualified(Lorg/ap...
2018-12-05 15:16:46 1921 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人