铠甲蘑菇
码龄16年
关注
提问 私信
  • 博客:171,225
    问答:1,680
    172,905
    总访问量
  • 73
    原创
  • 2,338,323
    排名
  • 14
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2009-06-15
博客简介:

码云

博客描述:
没事喜欢做点小研究
查看详细资料
个人成就
  • 获得45次点赞
  • 内容获得25次评论
  • 获得83次收藏
创作历程
  • 8篇
    2021年
  • 3篇
    2019年
  • 8篇
    2018年
  • 13篇
    2017年
  • 37篇
    2016年
  • 4篇
    2015年
成就勋章
TA的专栏
  • 方法论
    2篇
  • netty
    1篇
  • web
    3篇
  • mybatis
    2篇
  • mysql
    11篇
  • groovy
    1篇
  • linux
    2篇
  • java
    22篇
  • jrebel
    1篇
  • 游戏
    3篇
  • spring
  • maven
  • logback
    2篇
  • jvm
    6篇
  • tomcat
    1篇
  • jetty
    1篇
  • mq
    1篇
  • idea
    2篇
  • h5
  • nginx
  • 正则
    1篇
  • python
    3篇
  • markdown
  • mycat
    1篇
  • 架构
    12篇
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

百度ID生成器高性能原因

百度ID生成器可以达到百万TPS,为什么如此高性能?1、消费未来时间百度ID生成器也是基于雪花算法,雪花算法中最后12位用于自增序列,这决定了雪花算法只支持每秒生成最多4096个id,这在一些批量生产数据的场景会不够用,百度ID生成器可以每秒几百万甚至更多,是因为百度ID生成器可以消费未来时间。消费未来时间是什么意思呢?正常雪花算法是取当前时间,百度的ID生成器可以利用未来时间生成好id缓存起来。并发大时可以使用到未来时间。2、本地生成并缓存和常规雪花算法...
原创
发布博客 2021.07.11 ·
643 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何读好一本书?

背景有没有这样一种感觉,读的书也不少,但是感觉吸收的很少,甚至有些书读了跟没读一样,讲的啥全忘了,更别说应用于生活了。这可能就是我们常说的“读了这么多书,还是过不好这一生” 的原因,毕竟书里的东西只有在生活中得到应用,才能改变生活,才有可能改善生活。只是一味的读,理论上说效果是不会太好,这个跟记忆原理有关,要掌握一个东西,是需要输出的,而读只是一种输入,没有输出强化我们很快就忘了,大脑为了保持高效必须丢弃这些没啥输出的记忆,而强化那些经常输出的记忆。所以都说输入比输出更重要嘛!那读一..
原创
发布博客 2021.05.05 ·
249 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

基于百度ID生成器二次开发方案

背景百度开源的UidGenerator,比较适合我们交易的应用场景,但并不能直接拿来用,因为我们交易并不是使用spring体系,另外也还有其它需求,因此需要做一些二次开发目标1、提供框架无关的工具包,UidGenerator依赖Spring2、提供原数据获取接口,通过id查询id是由哪个机房,哪个国家生成的等架构主mysql:提供id元数据的管理,workId 通过mysql表自增生成,机房、地区等元数据存储到mysql表备mysql:采用半同步复制同步数据,提供主备自.
原创
发布博客 2021.05.04 ·
279 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java动态脚本选型

背景对账平台需要快速接入各种内部对账和渠道对账,提升接入效率是一个很有价值的点,通过引入动态脚本,将对账流程完全脚本化,能较大的提升接入效率,脚本化后,无需冗长乏味的开发部署周期,只要在管理后台做一些配置就能实现对账接入。备选方案 动态脚本 优点 缺点 原理 示例 参考资料 AviatorScript 1、轻量级 (...
原创
发布博客 2021.05.04 ·
333 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何评价做事能力,如何提升做事能力?

如何评价做事能力?认可极客时间上的一个大牛说的说法,主要从三个维度评价 看闭环思维 看做事方法论 看最终结果 如何提升做事能力?思路:针对评价的三个维度逐一去努力增强 闭环思维 做事只看到一个点不够,要搞清事情的前因后果,来龙去脉,有闭环思维(1)5W2H分析发做一件事之前,最重要的是搞清事情的来龙去脉(2)PDCA循环做事有始有终,有节奏,有持续性 方法论 不能只靠运气,更不能瞎搞用蛮力,做事需要寻找、运用正确...
原创
发布博客 2021.05.04 ·
145 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ID生成器选型

背景支付服务准备在海外部署,这引入了新的需求,一个是需要保证id全局唯一,另外一个是需要通过id拿到机房等信息,而公司现有的id生成器并不能保证多中心生成的id唯一,这还不是主要问题,这个可以重构一下就好了,但是要通过id拿到机房等信息这个需求要在现有的id生成器上改则是代价太大,几乎是改不动,因此我们部门决定搞一套新的ID生成器。备选方案到了一定规模,市面上开源的方案,基本就两类,一类是基于“号段模式”做的增强,一类是基于“雪花算法”做的增强,大体整理出如下三个备选方案...
原创
发布博客 2021.03.31 ·
224 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用xxl的分片广播路由策略实现对账的分片计算

背景最近在做一个新的对账平台,旧的对账系统存在很多问题,其中一个问题就是性能问题,因此新的对账平台从设计之初就考虑了性能这一块,下面不会讲为什么选择做新的对账平台,也不会讲对账平台的其他设计,就说一下如何使用xxl的分片广播路由策略实现对账的分片计算。场景分析渠道对账,一天一个批次,我们对接了100个渠道,然后每个渠道一天有100W的订单数,这是假设,不过对账平台的对账数据量的确会不断增加,事实上我们的对账平台不仅仅只有渠道对账,还有内部业务对账,因此单机计算不行,很自然的想到分片计算,就是我们
原创
发布博客 2021.02.14 ·
1503 阅读 ·
0 点赞 ·
1 评论 ·
4 收藏

记一次大数据表危机处理

背景基础交易数据库trade_base使用的是mysql数据库,有两张大表trade_base_order 和trade_base_resource_change_record,数据量分别达到了187G和258G,达到了总磁盘的81%,由于磁盘告警阀值设置在85%,加上数据主要集中在两张大表,导致了发现问题的时候已经无法增加索引和字段还有整块磁盘快耗尽的问题,mysql普通的delete无法释放磁盘空间,执行optmize table来释放磁盘空间也不行,因为剩余空间不够这个命令执行的要求,因此事情变.
原创
发布博客 2021.02.14 ·
290 阅读 ·
1 点赞 ·
3 评论 ·
0 收藏

中台学习笔记

什么是中台中台是企业级业务能力复用平台,企业级说明涉及的问题不是一条业务线的而是集团层面多条业务线的,能力复用不只是面向过去做些消除重复的事情,更重要的是面向未来赋能业务,新业务能复用已有的能力,达到快速响应满足用户的需求,提升企业生存和竞争的能力。复用的能力基本上就是四类:业务数据、业务功能、业务流程以及通用的技术能力。常见的中台有业务中台、数据中台、技术中台、研发中台、移动中台...
原创
发布博客 2019.09.30 ·
333 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

spring cloud 微服务架构学习笔记

什么是微服务架构“微服务”一词源于Martin Fowler的名为Microservices的博文。简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成许多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过RPC/RESTFul API进行通信协作。微服务九大特征服务组件化 按业务组织团队 做“产品”的态度 智能端点与哑管道 去中心化治理...
原创
发布博客 2019.09.21 ·
274 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Netty线程模型总结

netty是一个异步的,事件驱动的基于NIO的高性能的网络应用程序框架,下面主要看看netty的线程模型.Netty线程模型netty的线程模型是基于reactor模式的一种实现 如果服务只需要绑定一个端口(比如8888),那么boss线程只需要一个线程,如果有多个才需要多个线程,一个NioEventLoop负责一个端口 服务启动时会创建两个线程组 bossGroup 和 work...
原创
发布博客 2019.09.18 ·
528 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

记一次jmeter压测的坑

最近做了一个安全传输方案,因为怕对性能有较大影响,因此测试安排了针对性的压测压测的过程出现了一点小问题发现失败率特别高,测试怀疑是服务端出了错,但是我查看日志发现没有报错。后面我观察TCP链接数排除了服务端的嫌疑我发现跑着跑着,tcp链接数就突然就降低下来,也就是这个时候jmeter显示的错误率急剧升高。因此排除了服务端的嫌疑,然后让测试把日志输出打开,果然打开日志输出后,发现了大量的错误拿上面的...
原创
发布博客 2018.06.10 ·
16427 阅读 ·
4 点赞 ·
1 评论 ·
36 收藏

一个分布式事务解决方案

分布式系统中,只要涉及到跨服务调用并且服务各自用自己的数据源,就会存在数据不一致问题.通常来说要保证强一致性代价太大,绝大部分场景也不需要,根据BASE法则,我们保证最终一致性就好了,下面设计的方案就是一个保证最终一致性的方案.架构及原理 实现最终一致性本质上是通过重试确保的,因此业务一定要保证逻辑幂等性,之所以选择 redis 和 mq 是出于性能考虑。正常通知A1->A2->A3-...
原创
发布博客 2018.06.02 ·
590 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

关于Java泛型你应该知道的二三事

Java编程中无处不在的泛型!既然避不开,那最好多了解点。泛型是什么?“泛型” 这个术语的意思是 “使用许多许多的类型”使用泛型的好处?1、写出更通用的代码2、写出更安全的代码3、写出更简洁的代码泛型接口/类泛型方法使用边界实现具体方法调用协变与逆变协变逆变PECS原则java泛型的缺陷泛型代码内部无法获取获取泛型参数类型的实际类型想通过T来new出一个实例对象 、数组 和判断类型都是办不到的!擦...
原创
发布博客 2018.05.11 ·
449 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java 多环境配置的两种实现

使用maven的filter<filters>    <filter>src/main/filters/filter-${env}.properties</filter>    </filters>    <resources>    <resource>    <directory>src/main/r
原创
发布博客 2018.03.29 ·
3130 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

特性开关之开关策略

特性开关有时只是简简单单的通过配置true or false来决定开或关,而有时要根据某种策略来决定开或关。对于开关策略,特性开关框架一般会提供不少默认的策略给我们用,但有时我们也会遇到框架没有提供而我们又想要的,这时则需要我们自定义。掌握特性开关框架默认提供的开关策略及如何自定义开关策略都很重要。下面我以FF4J这个框架为例,介绍它自带提供的策略及如何扩展实现自己的策略。FF4J默认提供的策略上...
原创
发布博客 2018.03.10 ·
3290 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

特性开关框架选型之FF4J vs Togglz

目前发现两个主要的开源的Java特性开关框架,togglz 和 ff4j。但是两个框架都优秀,都能达到开关切换等主要目的。选哪个?togglz vs ff4j比较项togglzff4j补充说明特性开关Togglz的开关需要定义在枚举中,ff4j不需要,通过一个字符串名就可以了特性分组togglz的分组是中看不中用,只是显示上的分组,而ff4j的分组可以以组的粒度进行开关Admin Consolet...
原创
发布博客 2018.03.10 ·
5378 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

特性开关应用场景调研

金丝雀发布XXX项目的金丝雀发布2017年下半年《XXX》项目新版本上线多次出现意料之外的问题,原因是测试环境环境和线上环境终究有差别,测试环境测试没问题,但并不能保证生产环境没问题。当时的解决方案是申请一台服务器,将其部署的跟生产环境一样,用相同的配置中心,相同的数据库…..,然后在路由层,针对内部一个特定的域名做映射,这样达到只有我们内部可以可以对其访问,这样测试先在这个环境的测试,无问题再发...
原创
发布博客 2018.03.10 ·
1373 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

特性开关之策略模式

响应领导号召,我开始研究特性开关。发现在实现特性开关的方式上大有文章。使用不当会引入一些问题,而使用得到则可大大减少问题。实现特性切换很简单,使用if…else方式实现特性切换很简单嘛!就if….else …嘛,比如下面这个真的就这么简单吗?if…else…方式存在的问题其实真的就这么简单,使用if..else就实现了特性切换。但是if..else…这种方式会带来两个问题。容易造成逻辑混淆,降低可...
原创
发布博客 2018.03.09 ·
1233 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Mycat总结

mycat简介基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。MYCAT背后有一支强大的技术团队,其参与者都是5年以上资深软件工程
原创
发布博客 2017.09.29 ·
1671 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多