自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 volatile 与 ThreadMap 区别及用法

volatile关键词主要用于确保多线程环境下变量的可见性和有序性,适用于需要在多个线程间共享状态,但状态变化相对简单,且不需要原子性保证的情况。则是提供了一种线程私有的存储机制,确保每个线程都能获取到属于自己的独立副本,尤其适用于那些希望在多线程中隔离变量状态,避免共享状态带来的同步问题的场景。

2024-03-15 14:21:42 992 1

原创 分布式事务 [面试]

在条件允许的情况下,我们尽可能选择本地事务单数据源,因为它减少了网络交互带来的性能损耗,且避免了数据弱一致性带来的种种问题。若某系统频繁且不合理的使用分布式事务,应首先从整体设计角度观察服务的拆分是否 合理,是否高内聚低耦合?是否粒度太小?分布式事务一直是业界难题,因为网络的不确定性,而且我们习惯于拿分布式事务与单机事务 ACID 做对比。

2023-05-05 10:28:07 1272

原创 springcloud整合分布式事务seata

若正常执行完毕且事务提交成功可以在日志中查看到,通常为实现类中,在特定方法上使用。

2023-05-04 18:06:05 226

原创 ClassNotFoundException: de/javakaffee/kryoserializers/jdkproxyserializer

使用seata提交事务更新数据时报错:找不到jdk代理序列化类。需要在依赖中加入,版本号对应你的seata版本。

2023-04-28 15:00:27 327

原创 seata报错:can not get cluster name in registry config service.vgroupMapping.xxx

service.vgroupMapping.rp_tx_group 事务分组, 这里的 rp_tx_group 是可以根据服务名称随意定义的,若nacos上没有对应名称的配置我们可以手动添加,若微服务项目启动后可查看到seata相关注册信息,则该服务已挂载至seata事务上。微服务配置中的nacos相关配置需保证与seata服务nacos配置一致。事务分组配置,我们是可以在nacos配置中心能看到的。

2023-04-28 14:41:41 6225

原创 seata 1.4.2 安装部署(Linux环境)

Linux安装部署seata-server

2023-04-27 18:37:46 2621

原创 nacos一直循环打印日志获取更新配置信息(已解决)

nacos一直循环打印日志(已解决)

2023-03-08 16:18:41 3698 1

原创 SpringBoot自动装配原理[源码]

SpringBoot自动装配原理,各注解、重点类详细说明

2022-10-09 17:31:46 473

原创 Redis 由浅入深

Remote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。它是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

2022-09-20 11:40:08 371

原创 SqlServer日期格式化

SqlServer时间格式化convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式.具体如下0 | 0 or 100 | mon dd

2021-08-26 18:45:47 2271 1

原创 SpringCloud全家桶(从入门到精通)

文章目录微服务概述什么是微服务从技术角度理解微服务与微服务架构微服务优点与缺点微服务技术栈有哪些原始分布式架构使用的技术服务为什么选择SpringCloud作为微服务技术架构目前公司微服务技术架构SpringCloud 是什么?Spring Cloud与Spring Boot的区别Dubbo SpringCloud 的对比SpringBoot与SpringCloud本对应关系Spring Cloud的参考文档与官网SpringCloud添加组件的基本套路Eureka服务注册与发现Eureka介绍及原理理解介

2021-07-19 22:22:29 2964

原创 mybatisplus 复合主键(多主键) CRUD

mybatisplus 复合主键CRUD需求描述最近接到个挺有意思的需求,做用户观看学习视频时长的一个数据埋点储存用户观看视频时长、记录的接口的调用肯定会特别频繁,因为每间隔指定时间每个用户都会调用,如果在这个接口里直接操作数据库将会给我们的数据库带来一定的压力,在我的代码中是不允许的,而我是这样完成这个需求的:首先将用户观看视频的时长、记录存储到阿里云的日志库里,随后以定时器从阿里云的日志库中拉取用户观看视频的数据同步到我们的数据库中。而就是最后这一步,同步数据到数据库中,这里的数据量肯定是庞大

2021-06-23 13:49:55 44814 20

原创 SpringBoot项目拆分 (spring多项目包扫描、依赖注入、jar包引入、数据库操作、项目启动、接口访问)

SpringBoot项目拆分(按模块拆分)在了解SpringBoot项目拆分之前首先我们需要了解微服务架构什么是微服务?单个轻量级服务一般为一个单独微服务,微服务讲究的是 专注某个功能的实现,比如登录系统只专注于用户登录方面功能的实现,讲究的是职责单一,开箱即用,可以独立运行。微服务架构系统是一个分布式的系统,按照业务进行划分服务单元模块,解决单个系统的不足,满足越来越复杂的业务需求。马丁福勒(Martin Fowler):就目前而言,对于微服务业界并没有一个统一的、标准的定义。但通常而言,微服务

2021-06-19 16:43:17 3810 1

原创 Java集合[面试]

Java集合详解一、数组和集合的比较数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型。数组和集合存放的对象皆为对象的引用地址。数组容易固定无法动态改变,集合类容量动态改变。数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式集合以

2021-06-18 17:52:57 158

原创 SpringBoot整合Swagger2 [超详细]

首选引入pom依赖 <!-- swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </d

2021-06-08 11:28:54 158

原创 MyBatis-Plus 代码生成器(生成至指定目录下)

先看效果图生成前项目目录生成后项目目录需要引入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency>

2021-05-21 16:49:20 4343 3

原创 HTML转PDF(Java itext)

Java HTML转PDF —> itext首先需要引入jar包 <dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>3.0.3</version> </dependency>packag

2021-05-18 15:06:20 1303 2

原创 线程池的7种创建方式,使用与差异

什么是线程池?线程池(ThreadPool)是一种基于池化思想管理和使用线程的机制。它是将多个线程预先存储在一个“池子”内,当有任务出现时可以避免重新创建和销毁线程所带来性能开销,只需要从“池子”内取出相应的线程执行对应的任务即可。池化思想在计算机的应用也比较广泛,比如以下这些:内存池(Memory Pooling):预先申请内存,提升申请内存速度,减少内存碎片。连接池(Connection Pooling):预先申请数据库连接,提升申请连接的速度,降低系统的开销。实例池(Object Pool

2021-05-04 10:37:35 570 1

原创 BigDecimal加减乘除

BigDecimal加减乘除运算1、加法 add()函数// 加法BigDecimal result1 = num1.add(num2);BigDecimal result12 = num12.add(num22);2、减法subtract()函数// 减法BigDecimal result2 = num1.subtract(num2);BigDecimal result22 = num12.subtract(num22);3、乘法multiply()函数// 乘法BigDecim

2021-04-24 17:50:39 496

转载 分布式事务六种解决方案【面试总结】

面试必问:分布式事务六种解决方案点赞再看,养成习惯前言事务想必大家并不陌生,至于什么是 ACID,也是老生常谈了。不过暖男为了保证文章的完整性确保所有人都听得懂,我还是得先说说 ACID,然后再来介绍下什么是分布式事务和常见的分布式事务包括 2PC、3PC、TCC、本地消息表、消息事务、最大努力通知。事务严格意义上的事务实现应该是具备原子性、一致性、隔离性和持久性,简称 ACID。原子性(Atomicity),可以理解为一个事务内的所有操作要么都执行,要么都不执行。一致性(Consist

2021-04-21 18:18:36 119

原创 Java生成HTML文件、HTML转doc文件、

话不多说直接上代码package com.youxue.portal;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import java.io.*;import java.util.*;

2021-04-10 11:08:19 649

原创 手把手教学HTML

1. 什么是网页?网页其实就是放在服务器上的一个文件,当我们浏览网页时,这个文件会被下载到我们本地的电脑,然后再由浏览器解析,渲染出各种漂亮的界面,比如表格、图片、标题、列表等。网页文件的后缀有很多种,比如.html、.php、.jsp、.asp等,相信读者在浏览器的地址栏里也都见到过,如下图所示:但不管网页的后缀是什么,它的本质都是一样的,就是由 HTML 代码构成的纯文本文件。我们可以使用记事本、Notepad++、Sublime Text、Vim 等文本编辑器打开网页文件,看到它的所有内容,

2021-01-09 02:57:42 4732 6

原创 ES6快速入门

ES6快速入门ES6快速入门1.ES6怎么来的2.ES6兼容性3.变量 let 和 常量 const4.函数-箭头函数5.函数-参数6.解构赋值7.数组8.字符串9.面向对象-基础10.面向对象应用11.json12.Promise13.generator-认识生成器函数14.generator-yield是啥15.generator-实例16.ES7 预览1.ES6怎么来的ECMAScript 和 JavaScriptECMA 是标准,JS 是实现

2021-01-07 22:08:15 346

原创 HTTP状态码介绍

目录1 消息▪ 100 Continue▪ 101 Switching Protocols▪ 102 Processing2 成功▪ 200 OK▪ 201 Created▪ 202 Accepted▪ 203 Non-Authoritative Information▪ 204 No Content▪ 205 Reset Content▪ 206 Partial Content▪ 207 Multi-Status3 重定向

2020-12-24 16:03:49 1117 1

原创 算法进阶——快速排序算法

算法进阶——快速排序算法​     上一篇文章的冒泡算法虽然解决了桶排序浪费空间的问题,但在算法的执行效率上却牺牲了很多,它的时间复杂度达到了 O(N2 )。假如我们的计算机每秒钟可以运行 10 亿次,那么对 1 亿个数进行排序,桶排序只需要 0.1 秒,而冒泡排序则需要 1 千万秒,达到 115 天之久,是不是很吓人?那有没有既不浪费空间又可以快 一点的排序算法呢?那就是快速排序啦!光听这个名字是不是就觉得很高端呢?​​     假设我们现在对6 1 2 7 9 3 4 5 10 8这 10

2020-12-15 10:44:20 508 1

原创 基础算法详解——冒泡排序(小白篇)

基础算法详解——冒泡排序如果你细心的话会发现咱们上篇基础算法的文章:简化版的桶排序有更要命的是:​ 它非常浪费空间!例如需 要排序数的范围是 0~2100000000 之间,那你则需要申请 2100000001 个变量,也就是说要写 成 int a[2100000001]。​ 因为我们需要用 2100000001 个“桶”来存储 0~2100000000 之间每一 个数出现的次数。即便只给你 5 个数进行排序(例如这 5 个数是 1、1912345678、2100000000、 18000000

2020-12-14 11:56:23 511

原创 基础算法——桶排序

最快最简单的排序——桶排序在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试 的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍 一下排序算法我们这里只需借助一个一维数组就可以解决这个问题。请确定你真的仔细想过再往下 看哦。 首先我们需要申请一个大小为 11 的数组 int a[11]。OK,现在你已经有了 11 个变量,编 号从 a[0]~a[10]。刚开始的时候,

2020-12-11 18:29:46 185

原创 ThreadPoolExecutor 用法详解(附demo)

ThreadPoolExecutor的使用ThreadPoolExecutor提供了四个构造方法:以最后一个构造方法(参数最多的那个),对其参数进行解释: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime,

2020-11-27 18:06:21 1122

原创 ThreadPoolExecutor 详细解析

Java源码里面都有大量的注释,认真读懂这些注释,就可以把握其七分工作机制了。关于ThreadPoolExecutor的解析,我们就从其类注释开始。现将注释大致翻译如下:ExecutorService(ThreadPoolExecutor的顶层接口)使用线程池中的线程执行每个提交的任务,通常我们使用Executors的工厂方法来创建ExecutorService。线程池解决了两个不同的问题:提升性能:它们通常在执行大量异步任务时,由于减少了每个任务的调用开销,并且它们提供了一种限制和管理资源(包

2020-11-27 17:54:01 311

原创 MQ实战,p2p与发布订阅详解【详细代码】

消息队列中点对点与发布订阅区别背景知识JMS一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914)。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1.Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。点对点与发布订阅最初是由JMS定义的。这两种模式主要区别或解决的问题就是发

2020-11-13 17:22:41 722 1

原创 ActiveMQ与JMS,差异、优缺点详解

ActiveMQ这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS、ActiveMQ的初步入门及API详细使用、两种经典的消息模式(PTP and Pub/Sub)、与Spring整合、ActiveMQ集群、监控与配置优化等。话不多说,我们来一起瞧一瞧!JMS首先来说较早以前,也就是没有JMS的那个时候,很多应用系统存在一些缺陷:1.通信的同步性client端发起调用后,必须等待server处理完成并返回结果后才能继续执行2.client 和 server 的生命周

2020-11-13 17:12:00 732

原创 MQ消息中间件相关知识

一、MQ消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。2、消息中间件的组成2.1 Broker消息服务器,作为server提供消息核心服务2.2 Producer消息生产者,业务的发起方,负责生产消息传输给broker,2.3 Con

2020-11-13 16:42:13 388

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除