Category: Java Architecture

[转]如何使用消息队列解决分布式事物 0

[转]如何使用消息队列解决分布式事物

1. 引言 这篇说说分布式事务的问题。企业现在的架构都由传统的架构转向了微服务架构,如下图所示: 那么,都不可避免的会遇到跨数据库调用的,分布式事务问题! 目前,业内解决分布式事务问题,都基本不用JTA这种强一致性的解决方案,基本是采用如下两套方案 基于TCC的事务框架 消息队列

[转]消息中间件–5消息中间件集群崩溃,如何保证数据不丢失? 0

[转]消息中间件–5消息中间件集群崩溃,如何保证数据不丢失?

“上一篇讲消息中间件的文章《扎心!线上服务宕机时,如何保证数据100%不丢失?》,初步给大家介绍了一个在生产环境中可能遇到的问题,就是你的消费者服务可能会宕机,一旦宕机,你就需要考虑是否会导致没处理完的消息丢失。 这篇文章,再给不太熟悉MQ技术的同学,介绍另外一个生产环境中可能会遇到的问题。

Spring Batch in Spring MVC 0

Spring Batch in Spring MVC

Today I have implemented Spring Batch in my Spring MVC project for importing data from CSV file to database. There are plenty of tutorials on the internet but I met a lot of problems during...

[转]分布式缓存竟这样把注册中心搞垮 0

[转]分布式缓存竟这样把注册中心搞垮

每当有机会写故障类主题的时候,我都会在开始前静静地望着显示器很久,经过多次煎熬和挣扎之后才敢提起笔来,为什么呢? 因为这样的话题很容易招来吐槽,比如 “说了半天,不就是配置没配好吗?”,或者 “这代码是猪写的吗?你们团队有懂性能测试的同学吗?”,这样的评论略带挑衅,而且充满了鄙视之意。 不过我觉得,在技术的世界里,多数情况都是客观场景决定了主观结果,而主观结果又反映了客观场景,把场景与结果串起来,用自己的方式写下来,传播出去,与有相同经历的同学聊上一聊,也未尝不是一件好事。 上个月,我们的系统因注册中心崩塌而引发的一场事故,本是一件稀松平常的事件,可我们猜中了开始却没料到原因,始作俑者竟是已在产线运行多年的某分布式缓存系统。

[转]最全面的 Java G1学习笔记 0

[转]最全面的 Java G1学习笔记

1. 引子 最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题。总体来讲,对于G1我有几个疑惑,希望能够在这篇文章中得到解决。 G1出现的初衷是什么? G1适合在什么场景下使用? G1的trade-off是什么? G1的详细过程? 如何理解G1的gc日志? G1的调优思路? G1和CMS的对比和选择?

[转]JVM FullGC导致线上生产事故 0

[转]JVM FullGC导致线上生产事故

1. 一、业务场景介绍 先简单说说线上生产系统的一个背景,因为仅仅是文章作为案例来讲,所以弱化大量的业务背景。 简单来说,这是一套分布式系统,系统A需要将一个非常核心以及关键的数据通过网络请求,传输给另外一个系统B。 所以这里其实就考虑到了一个问题,如果系统A刚刚将核心数据传递给了系统B,结果系统B莫名其妙宕机了,岂不是会导致数据丢失?

[转]Spring AOP以及代理JDK和CGLIB 0

[转]Spring AOP以及代理JDK和CGLIB

我们知道,Spring 中 AOP 是一大核心技术,也是面试中经常会被问到的问题,最近我在网上也看到很多面试题,其中和 Spring AOP 相关的就有不少,这篇文章主要来总结下相关的技术点,希望对大家有用。

[转]10倍请求压力来袭,你的系统会被击垮吗? 0

[转]10倍请求压力来袭,你的系统会被击垮吗?

1. 一、背景介绍 背景情况是这样:线上一个系统,在某次高峰期间MQ中间件故障的情况下,触发了降级机制,结果降级机制触发之后运行了一小会儿,突然系统就完全卡死,无法响应任何请求。 给大家简单介绍一下这个系统的整体架构,这个系统简单来说就是有一个非常核心的行为,就是往MQ里写入数据,但是这个往MQ里写入的数据是非常核心及关键的,绝对不容许有丢失。