0%

在大型互联网项目中我们经常会用到消息队列(简称MQ);主要用在异步消息,应用解耦,流量削锋等场景;在实际应用中经常需要保证消息的可靠投递

阅读全文 »

引言

我们的支付系统最初作为单体应用的子模块存在,随着业务规模扩大,高并发下的掉单重复支付问题频发,日均人工对账成本高达数小时。为解决这些痛点并支持未来业务扩展,我们决定将支付系统重构为独立的微服务架构,核心目标包括:

阅读全文 »

Sharding-JDBC(ShardingSphere)作为分布式数据库中间件,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务。引入sharding-jdbc-spring-boot-starter可以快速完成与springboot的集成; 但是默认情况下只能支持到一个数据库,如果支持多数据库,需要做部分扩展;本文记录支持多数据库所做的扩展。

阅读全文 »

最近经常有人跟我一起讨论JVM的相关话题,所以将以前分享过的一篇JVM的基础知识在这里分享出来,欢迎大家指正.

阅读全文 »

技术人员在技术选型的时候如何做好技术与业务的平衡,如何推广技术方案,甚至与产品人员沟通改变某些功能的实现方式,这些问题值得每一个技术人员思考。我们不管采用什么技术方案,最终目的是为了帮助业务发展,使公司在商业上获取回报。如果技术人员能有一些产品和运营的思维,对整个业务的发展会起到更好的效果。

阅读全文 »

为什么需要调度系统

我们可能有这样的需求:

  1. 在某个指定的时间点执行一个任务, 比如凌晨对前一天的数据进行汇总;
  2. 在某个操作后的指定时刻执行某一操作,比如:电商下单后一小时没有支付的订单需要被取消;
  3. 微服务失败后补偿操作;
阅读全文 »