上周某核心服务上线过程中内存瞬间飙升,导致上线失败。经查是一个三年前的bug引发的。
Sharding-JDBC(ShardingSphere)多数据库与springboot集成 -- 读写分离
Sharding-JDBC(ShardingSphere)作为分布式数据库中间件,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务。引入sharding-jdbc-spring-boot-starter
可以快速完成与springboot的集成; 但是默认情况下只能支持到一个数据库,如果支持多数据库,需要做部分扩展;本文记录支持多数据库所做的扩展。
JVM初探
最近经常有人跟我一起讨论JVM的相关话题,所以将以前分享过的一篇JVM的基础知识在这里分享出来,欢迎大家指正.
Open Tracing(Jaeger) 遭遇多线程
我们知道在Java技术体系中,链路跟踪严重依赖ThreadLocal;因此在多线程的场景下会导致链路跟踪失效.
Java与Go之间gRPC调用失败问题排查
最近接手了一个新项目,被告知Java代码的gRPC客户端无法访问当前项目中Go代码的gRPC服务。通过问题的排查和部分代码改造个人对gRPC的理解更深入了一层.
技术给业务赋能
技术人员在技术选型的时候如何做好技术与业务的平衡,如何推广技术方案,甚至与产品人员沟通改变某些功能的实现方式,这些问题值得每一个技术人员思考。我们不管采用什么技术方案,最终目的是为了帮助业务发展,使公司在商业上获取回报。如果技术人员能有一些产品和运营的思维,对整个业务的发展会起到更好的效果。
分布式调度系统选型
海恩法则与生产Bug
「海恩法则」是航空涡轮发动机的发明者帕布斯·海恩提出一个在航空界关于飞行安全的法则。海恩指出:每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。法则强调两点:一是事故的发生是量的积累的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。「海恩法则」虽然针对的是飞行领域,在软件开发领域遭遇生产bug
服务化多项目测试环境隔离
单体应用依赖比较少,大部分情况我们只需要启动一个应用就可以开始测试工作。架构升级到服务化后,每个应用依赖比较多,任何一个依赖有问题都会影响测试结果;如果服务化环境中多项目并行测试,测试效率会更差 。
服务化架构升级实践
目前我们大部分业务都接入了服务化,在过去将近一年的时间里,我们踩了很多坑,也出现了几次生产事故,同时,从某种意义上讲,我们也做了某些「微创新」,使得架构更适合我们团队的实际情况。从目前的结果来看,基本达成了预定目标;