最近我们进行了一个项目的重构,其中一个重要目标是减少数据库访问的负载。由于核心数据库被多个应用程序访问,并且数据库服务器只能对整体数据库流量进行监控,我们需要在应用程序端监控不同应用程序的SQL请求,并将其与现有的指标集成在一起
灰度发布过程中缓存数据一致性问题
灰度发布是一种常见的上线策略。如果灰度发布时间较长,且在灰度期间各分组共用缓存,那么该过程中可能会面临缓存数据一致性的挑战。本文将讨论在灰度发布过程中导致缓存数据不一致的问题和解决方案。
RestTemplate使用Apache HttpClinet连接池默认大小引发耗时瞬间升高
在Spring项目中,RestTemplate简化了HTTP请求和响应的封装,并且执行了Restful原则。底层HTTP请求由HttpURLConnection
,Apache HttpComponents
和OkHttp
三种实现。最近我们在使用Apache HttpClient作为RestTemplate底层实现时,由于使用不当导致耗时瞬间升高
基础组件升级策略与实践
基础组件是我们系统构成的关键要素,包括中间件SDK、基础架构组件等。它们为系统提供了核心功能和基本服务,为业务逻辑的实现提供支持; 近几年多做了一些基础组件的升级,有些经历了较长的升级周期,也有的一次上线直接成功,还有个别组件升级失败了,目前仍然在寻找改进方法;
基于protobuf的定义在跨语言消息传递中的应用
消息的可靠投递
在大型互联网项目中我们经常会用到消息队列(简称MQ);主要用在异步消息,应用解耦,流量削锋等场景;在实际应用中经常需要保证消息的可靠投递
转载:寂静之城 -- 马伯庸
转载马伯庸一篇短篇小说 「寂静之城」 ;记得好多年前看的时候认为是科幻小说,现在想想还是自己太年轻
一个三年前的Bug导致上线失败
上周某核心服务上线过程中内存瞬间飙升,导致上线失败。经查是一个三年前的bug引发的。
Sharding-JDBC(ShardingSphere)多数据库与springboot集成 -- 读写分离
Sharding-JDBC(ShardingSphere)作为分布式数据库中间件,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务。引入sharding-jdbc-spring-boot-starter
可以快速完成与springboot的集成; 但是默认情况下只能支持到一个数据库,如果支持多数据库,需要做部分扩展;本文记录支持多数据库所做的扩展。
JVM初探
最近经常有人跟我一起讨论JVM的相关话题,所以将以前分享过的一篇JVM的基础知识在这里分享出来,欢迎大家指正.