常见的分布式事务的解决方案

2021-03-18
阅读 13 分钟
2.6k
众所周知,数据库能实现本地事务,也就是在同一个数据库中,你可以允许一组操作要么全都正确执行,要么全都不执行。这里特别强调了本地事务,也就是目前的数据库只能支持同一个数据库中的事务。但现在的系统往往采用微服务架构,业务系统拥有独立的数据库,因此就出现了跨多个数据库的事务需求,这种事务即为“分布式事务...

CAP原则

2020-12-29
阅读 3 分钟
3.6k
CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。

final关键字与安全发布

2020-12-10
阅读 2 分钟
2.8k
在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)大家应该都知道final表示最终的、最后的含义,也就是不能在继续

Java线程的六种状态以及切换

2020-12-06
阅读 7 分钟
19.8k
初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(...

高并发与多线程

2020-12-06
阅读 3 分钟
5.3k
高并发(High Concurrency)是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求、数据库的操作等。

Dubbo与SpringCloud的架构与区别

2020-11-29
阅读 2 分钟
4.1k
Spring Cloud 抛弃了 Dubbo 的 RPC 通信,采用的是基于 HTTP 的 REST 方式。严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生 RPC 带来的问题。而且 REST 相比 RPC 更为灵活,服务提供方和调用方,不存在代码级别的强依赖,这在强调快速演化的微服务环境下显得...

单体应用-SOA-微服务的趋势

2020-11-29
阅读 1 分钟
2.7k
单体应用的维护:单体应用中,大部分逻辑部署在一个集中化,单一的环境或服务器中运行。单体应用通常很大,由一个大型团队或多个团队维护。庞大的代码可能给开发人员增加开发成本。开发过程中使用的开发环境和容器不堪重负,降级开发效率。

Java并发之Condition

2020-11-24
阅读 7 分钟
3k
在使用Lock之前,我们使用的最多的同步方式应该是synchronized关键字来实现同步方式了。配合Object的wait()、notify()系列方法可以实现等待/通知模式。

如何分析Mysql慢SQL?

2020-11-03
阅读 5 分钟
2.8k
内容摘要:开启慢查询日志捕获慢SQL使用explain分析慢SQL使用show profile查询SQL执行细节常见的SQL语句优化一、开启慢查询日志捕获慢SQL① 查询mysql是否开启慢日志捕获: {代码...} 如果还没开启的话,开启: {代码...} ②  查看慢查询的时间阙值: {代码...} 可以根据实际情况去调整时间: {代码...} ③ 查询多少SQL超过...

内存泄露与内存溢出的区别

2020-11-01
阅读 2 分钟
7.9k
指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。

TCC-简单介绍

2020-09-03
阅读 2 分钟
2k
|0业务场景介绍咱们先来看看业务场景,假设你现在有一个电商系统,里面有一个支付订单的场景那对一个订单支付之后,我们需要做下面的步骤:更改订单的状态为“已支付”扣减商品库存给会员增加积分创建销售出库单通知仓库发货|1进一步思考好,业务场景有了,现在我们要更进一步,实现一个 TCC 分布式事务的效果。什么意思呢...

SpringBootServletInitializer-启动springboot项目

2020-09-01
阅读 2 分钟
3.6k
SpringBootServletInitializer的执行过程,简单来说就是通过SpringApplicationBuilder构建并封装SpringApplication对象,并最终调用SpringApplication的run方法的过程。

Dubbo与SpringCloud的区别

2020-08-18
阅读 2 分钟
14.3k
Spring Cloud 抛弃了 Dubbo 的 RPC 通信,采用的是基于 HTTP 的 REST 方式。严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生 RPC 带来的问题。而且 REST 相比 RPC 更为灵活,服务提供方和调用方,不存在代码级别的强依赖,这在强调快速演化的微服务环境下显得...

微服务架构中常见的注册中心

2020-08-10
阅读 4 分钟
13.3k
盘点一下常用的注册中心上图基本表达了注册中心的交互过程, 体现出三种角色之间关系:服务提供者 Service Provider (Server):服务启动后向RegistryCenter注册 自己的一个实例定期向RegistryCenter发送心跳(heartbeat), 证明自己还能苟一会服务关闭时向RegistryCenter发起注销服务消费者 Service Consumer(Client):服务启...

持续集成工具 Jenkins

2020-08-07
阅读 1 分钟
1.2k
目前最流行的一款持续集成及自动化部署工具。 Jenkins 和 Hundson 之间的关系:2009 年,甲骨文收购了 Sun 并继承了 Hudson 代

Java 线程池全面解析

2020-08-05
阅读 6 分钟
2.1k
  BlockingQueue<Runnable> workQueue = null;     workQueue = new ArrayBlockingQueue<>(5);//基于数组的先进先出队列,有界     workQueue = new LinkedBlockingQueue<>();//基于链表的先进先出队列,无界     workQueue = new SynchronousQueue<>();//无缓冲的等待队列,无界

什么是 Nacos-认知

2020-08-03
阅读 2 分钟
1.4k
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Maven的porfile与SpringBoot的profile结合使用详解

2020-07-30
阅读 3 分钟
5.1k
使用maven的profile功能,我们可以实现多环境配置文件的动态切换; 但随着SpringBoot项目越来越火,越来越多人喜欢用SpringBoot的profile功能。但是用SpringBoot的profile功能时,一般我们默认激活的profile肯定是开发环境的profile。当我们打成jar包后,如果在生产环境下运行,就需要在运行这个jar包的命令后面加个命令...

注册中心-Eureka

2020-07-26
阅读 7 分钟
5.3k
任何一个服务都不能直接去掉用,都需要通过注册中心来调用。通过服务中心来获取服务你不需要关注你调用的项目IP地址,由几台服务器组成,每次直接去服务中心获取可以使用的服务去调用既可。

设计模式之-单例模式

2020-07-12
阅读 4 分钟
2.1k
java设计模式之--单例模式 单例模式 单例模式限制类的实例和确保java类在java虚拟机中只有一个实例的存在。 单例类必须提供一个全局的访问来获取类的实例。 单例模式用来日志,驱动对象,缓存和线程池。 单例设计模式也用在其他设计模式,例如抽象工厂,建造者,原型,门面等设计模式。 单例模式还用在核心java中,例如j...

并发编程之ThreadLocal、Volatile、synchronized、Atomic关键字

2020-07-09
阅读 6 分钟
6k
对于ThreadLocal、Volatile、synchronized、Atomic这四个关键字,我想一提及到大家肯定都想到的是解决在多线程并发环境下资源的共享问题,但是要细说每一个的特点、区别、应用场景、内部实现等,却可能模糊不清,说不出个所以然来,所以,本文就对这几个关键字做一些作用、特点、实现上的讲解。

javaagent使用指南

2020-07-07
阅读 16 分钟
2.8k
今天打算写一下 Javaagent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具。

curl的使用指南

2020-07-06
阅读 5 分钟
11.5k
本文介绍它的主要命令行参数,作为日常的参考,方便查阅。内容主要翻译自《curl cookbook》。为了节约篇幅,下面的例子不包括运行时的输出,初学者可以先看我以前写的《curl 初学者教程》。

API 接口应该如何设计?如何保证安全?如何签名?如何防重?

2020-07-06
阅读 3 分钟
2.4k
在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢?

MinIO:一个基于Apache License v2.0开源协议的对象存储服务

2020-07-05
阅读 4 分钟
3.8k
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

Jmeter-接口压测

2020-07-02
阅读 6 分钟
5.2k
      JMeter是Apache下一款在国外非常流行和受欢迎的开源性能测试工具,JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。