<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[spumetime1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/spumetime1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; spumetime1]]></copyright><item><title><![CDATA[用Github Pages做个人博客]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/148519835</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/148519835</guid><author>spumetime1</author><pubDate>Sun, 08 Jun 2025 22:37:23 +0800</pubDate><description><![CDATA[这里注意 jekyll server 和 bundle exec jekyll serve 两个的区别是前者基本本地 Jekyll 版本启动服务，后者基于目录下的 Gemfile 文件启动服务，所以我们要用后者。注意_post文件夹是放博客的，博客名称有强制规则，YEAR-MONTH-DAY-title.MARKUP。访问，后者不能使用zoe.github.io访问，而是spumetime.github.io/zoe.github.io。如果你不在本地部署个人博客的话，Jekyll可以不用了。]]></description><category></category></item><item><title><![CDATA[lambda$groupingBy 空指针问题]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/109079445</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/109079445</guid><author>spumetime1</author><pubDate>Wed, 14 Oct 2020 17:42:00 +0800</pubDate><description><![CDATA[开发功能时，用到了stream的collect(Collectors.groupingBy)方法，一直报NullPorintException，废了一些时间来定位问题，虽然最后其实比较简单。

记录一下，以下代码会报空指针


    public static void main( String[] args )
    {
        List&lt;Student&gt; list=new ArrayList&lt;&gt;();
        list.add(new Student("A",]]></description><category></category></item><item><title><![CDATA[三年工作后的一些感悟]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/108042956</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/108042956</guid><author>spumetime1</author><pubDate>Sun, 16 Aug 2020 21:38:52 +0800</pubDate><description><![CDATA[学了七年机械，17年硕士毕业。毕业其实也不知道自己能做什么，在找工作的时候提前三月将一本JAVA入门看了几遍，要说自己懂JAVA，我自己都不好意思。投过机械设计岗、产品岗、JAVA岗等，最后只有一个中厂（某个行业的NO1）要了我，从事JAVA开发。

入职三年，我一直想找到当初面试我技术的面试官，问问他是看重我哪一点，让我通过了面试。记得当时面试官问我问题，我直接回答不知道，说我就知道几个从书上背下来的答案，什么面向对象，AOP啥的。看我很多不知道，面试官就开始问一些譬如你在硕士做得最成功的一件事是什么？如]]></description><category></category></item><item><title><![CDATA[Redis分布式锁项目实践]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/103905879</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/103905879</guid><author>spumetime1</author><pubDate>Thu, 09 Jan 2020 13:00:16 +0800</pubDate><description><![CDATA[实现方案：

1. setNx(set if not exist)，这个是原子操作；

2. 加锁了之后如果机器宕机那么这个锁就不会得到释放，所以要加入过期时间，而且加入过期时间需要和setNx同一个原子操作；在Redis2.8之前我们需要使用Lua脚本达到我们的目的，但是redis2.8之后redis支持nx和ex操作是同一原子操作。

3. 使用ShardedJedis实现。

加锁：


 ...]]></description><category></category></item><item><title><![CDATA[MYSQL分区表如何保证数据唯一性]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/103611000</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/103611000</guid><author>spumetime1</author><pubDate>Thu, 19 Dec 2019 11:31:57 +0800</pubDate><description><![CDATA[背景：

由于业务数据量大，采用了分库分表（Mycat）；为了提高查询效率，使用了时间来分区；分区之后表的唯一索引必须带上分区字段。

假设有一张订单表（table_order）业务字段为order_no（订单号），分区字段为create_tm（创建时间）；唯一索引就是联合索引order_no+create_tm。

问题：

分布式系统中多个节点，对同一订单并发处理，发现table_order中...]]></description><category></category></item><item><title><![CDATA[一次Mycat聚合排序问题定位]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/103161602</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/103161602</guid><author>spumetime1</author><pubDate>Wed, 20 Nov 2019 14:20:56 +0800</pubDate><description><![CDATA[背景：

Mycat+Mysql实现分库分表；功能需要遍历表，数据量有点大，于是通过id排序分页查询。

问题：

在实现过程中发现有部分id查不出来，功能排期只能被迫延后。

定位第一阶段：

在确认了代码和SQL语句没有问题后，目光转至Mycat与Mysql排序逻辑上来。

定位第二阶段：

确认了Mycat与Mysql排序逻辑有问题，至少Mycat与Mysql排序逻辑表现不一致。

1.执行...]]></description><category></category></item><item><title><![CDATA[Guava Cache官网个人翻译]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/102613560</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/102613560</guid><author>spumetime1</author><pubDate>Thu, 17 Oct 2019 21:01:51 +0800</pubDate><description><![CDATA[示例


LoadingCache&lt;Key, Graph&gt; graphs = CacheBuilder.newBuilder()
       .maximumSize(1000)
       .expireAfterWrite(10, TimeUnit.MINUTES)
       .removalListener(MY_LISTENER)
       .build(
    ...]]></description><category></category></item><item><title><![CDATA[架构设计方法之一：分析系统复杂度]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/90703316</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/90703316</guid><author>spumetime1</author><pubDate>Thu, 30 May 2019 19:02:20 +0800</pubDate><description><![CDATA[书名：《从零开始学架构》

最主要是提出了一种观念，架构是为了应对系统复杂度；以及一个先分析系统复杂度来指导架构设计方法。

下图是书本脑图



PS:本书涉及的其它点

CAP理论



Consistency 一致性
	Availability 可用性
	Partition tolerance 分区容忍性
Eric Brewer 说，这三个指标不可能同时做到。这个结论就叫做 CAP 定理。...]]></description><category></category></item><item><title><![CDATA[中台战略=微服务+服务治理+组织架构]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/90510950</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/90510950</guid><author>spumetime1</author><pubDate>Fri, 24 May 2019 15:16:03 +0800</pubDate><description><![CDATA[前言

本文是对《企业IT架构转型之道——阿里巴巴中台战略思想与架构实战》的读书总结。

不会涉及太多技术具体点，而是将本书的逻辑脉络和结论梳理出来，方便大家阅读（带有个人理解，请批判性的阅读）。

已经读过该书或者在各种渠道了解中台后，本文可以帮忙梳理一下思路。

没有读过该书或不了解中台，本文可以作为读书路线，不迷路。

接下来我将按以下路线解读该书：

问题 —— 方案 —— 实现—— 总...]]></description><category></category></item><item><title><![CDATA[优雅地实现定时任务——记住这三点就够]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/89816482</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/89816482</guid><author>spumetime1</author><pubDate>Sat, 04 May 2019 18:57:36 +0800</pubDate><description><![CDATA[前言

定时任务=调度+执行

调度有很多框架实现：elastic-job、quartz等

执行需要程序员实现任务队列。实现任务队列有很多方式：数据库、redis、kafka

实现任务队列虽然很简单，但稍有不慎，也很容易出问题。

代码实现

首先把问题简单化，假如需要在单库实现定时任务，我们逐步实现优化代码

第一次实现


public void execute1() {
	List&l...]]></description><category></category></item><item><title><![CDATA[“要不你来改？”——多么痛的领悟]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/84969708</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/84969708</guid><author>spumetime1</author><pubDate>Wed, 12 Dec 2018 11:47:31 +0800</pubDate><description><![CDATA[项目小组一个新项目做了差不多一年，从第三个月开始，我就发现代码设计层面的漏洞。如果我觉得有必要，我就会指出来。但是每次向团队研发人员指出，他们总是说“时间紧、任务重，下次再改。”——绝望

后来如果我认为代码问题比较严重，影响到后期维护，研发人员还是说“要不你来改？”。我就会当着研发人员的面向研发负责人提出我的想法和疑问，让研发负责人定夺。

再后来，研发负责人也不太管了。为了项目进度，甚至代码评...]]></description><category></category></item><item><title><![CDATA[CXF报错解决]]></title><link>https://blog.youkuaiyun.com/spumetime1/article/details/84836657</link><guid>https://blog.youkuaiyun.com/spumetime1/article/details/84836657</guid><author>spumetime1</author><pubDate>Wed, 05 Dec 2018 15:16:46 +0800</pubDate><description><![CDATA[NoSuchMethodError-&amp;gt;JaxWsServiceFactoryBean.isWrapperPartQualified

报错堆栈：

Caused by: java.lang.NoSuchMethodError: org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.isWrapperPartQualified(Lorg/ap...]]></description><category></category></item></channel></rss>