- 博客(66)
- 资源 (2)
- 收藏
- 关注
原创 Seata原理自问
这些场景中的共同点是,它们都涉及多个独立的操作需要保证最终的一致性,而这些操作可能分布在不同的服务或数据库上。Seata 通过 TC 统一协调 TM 和 RM 的操作,结合事务的两阶段提交(2PC)或 TCC 模式,确保分布式事务中的多个操作要么全部成功,要么全部回滚,从而保证分布式系统中的数据一致性。对于一些复杂的业务流程,需要调用多个服务或者执行多步操作时,Seata 的全局事务协调器(TC)可以帮助管理这些步骤的执行顺序和事务性,确保在业务流程中的所有步骤都要么成功,要么回滚。
2024-08-09 17:15:33
937
1
原创 Nacos原理自问
Nacos 能够刷新配置的原理主要基于以下几个方面:配置存储与发布:Nacos 将配置信息存储在其内部的持久化存储中(如 MySQL 数据库)。当开发者或运维人员更新了配置,Nacos 会将新的配置信息存储到数据库中,并生成一个新的版本。长轮询机制:客户端通过 HTTP 长轮询的方式,定期向 Nacos 服务器查询是否有新的配置发布。所谓长轮询,即客户端发出请求后,Nacos 服务器会等待一段时间(如 30 秒),在这段时间内如果有新的配置发布,服务器就会立即响应客户端并返回新的配置;
2024-08-09 17:12:57
808
原创 jackson序列化、反序列化
需求:旧代码个别字段定义不规范,重构规范将响应-1改成0将请求0改为-1响应创建Json 序列化器import java.io.IOException;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.SerializerProvider;/** *
2022-05-27 11:28:35
498
原创 spring复习
注解驱动组件注册(注册bean)@Configuration&@Bean给容器中注册组件@ComponentScan-自动扫描组件&指定扫描规则@ComponentScans@Import-给容器中导入一个组件(benaName默认是全类名)使用FactoryBean注册组件(注册得到工厂Bean还要配合@Bean注解使用)bean的一些设置。(作用域、加载时机、注册条件)@Scope-设置组件作用域@Lazy-bean懒加载@Conditional-按照条件注册bean
2021-10-16 22:40:09
152
原创 redis限流实现;使用springMVC拦截器RedisTemplate
import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 限流注解 * @see AccessLimitInterceptor * @author */@Retention(RetentionPolicy.RUNTIME)@
2021-09-15 16:34:41
351
原创 hutool获取客户端真实ip
String clientIP = ServletUtil.getClientIP(request, null);
2021-09-04 23:41:55
22614
2
原创 ConcurrentHashMap
ConcurrentHashMap文章目录初始化SIZECTL变量不允许null键null值构造函数初始化(如何保证线程安全)初始容量计算添加安全初始化SIZECTL变量sizeCtl=-1表示数组正在初始化sizeCtl=0表示数组未初始化,且初始化容量为16sizeCtl>0表示阈值(如果未初始化表示容量)sizeCtl<0&&sizeCtl != -1表示正在扩容,不允许null键null值final V putVal(K key, V value,
2021-06-13 21:23:52
592
转载 Mysql查询优化
什么是ExplainExplain被称为执行计划,在语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。(注意,如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。Explain可以用来分析SQL语句和表结构的性能瓶颈。通过explain的结果,可以了解到如数据表的查询顺序、数据查询操作的操作类型、哪些索引可以被命中、哪些索引实际会命中、每个数据表有多少行记录被查询等信息。
2021-06-11 14:52:04
156
1
原创 Mybatis/Spring的Demo
springBoot+mybatis-plus用多了,就忘记最原始的配置,需要复习下mybatis项目结构1.准备数据库1.1创建数据库mybatis1.2在库中创建表,并插入一条数据CREATE TABLE `t_user` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int DEFAULT NULL, `gender` varchar(255) DEFAULT NUL
2021-04-27 14:34:52
89
原创 雪花算法
原文视频其实就是一个long类型的数据64位手写一个最简单的雪花算法核心思路就是让位置,把前面的位置让出来,让别人进来主要角色:符号位、时间戳、工作机器id、序列号需要让位的:时间戳让出前22位、工作机器id让出前10位/** * 位移 * 5的2进制 101 * 左移两位 5<<2 = 10100 = 20 */ public static void main(String[] args) { //符号位1bit,需要左移63,因为前63位是时
2021-04-24 00:21:25
282
原创 git命令笔记
GIT视频教程(结合github,码云)(无废话版)项目结构git 命令git status 查看当前项目提交状态git add 添加文件到暂存区git commit -m “提交的备注信息” 提交暂存区的到本地仓库git commit -a -m “提交的备注” 提交修改的文件到本地仓库git statusOn branch masterYour branch is up to date with 'origin/master'.nothing to commit, wor
2021-04-18 22:41:08
98
原创 springBoot3.3.2以上版本打包jar,运行jar异常java.lang.NoClassDefFoundError: org/springframework/boot/SpringAppli
项目使用gitee项目mybatis-plus-samples,其中的mybatis-plus-sample-assembly模块,进行打包,将打好的包复制到任意位置(不在当前位置即可,当前位置可以执行)执行Java -jar报错如下java -jar mybatis-plus-sample-assembly-0.0.1-SNAPSHOT.jar Exception in thread "main" java.lang.NoClassDefFoundError: org/springframe
2021-04-13 11:23:09
1266
转载 CentOS7配置jre
1.先查看本地是否自带java环境:yum list installed |grep java2.卸载自带的java(输入su,输入root超级管理员的密码,切换到root用户模式)yum -y remove java-1.8.0-openjdk* yum -y remove tzdata-java*3.查看yum仓库中的java安装包yum -y list java*4.安装java:yum -y install updates java-1.8.0-openjdk.x86_64
2021-04-12 21:42:36
525
转载 CentOS7防火墙,端口,进程
防火墙查看防火墙状态,running表示防火区开启systemctl status firewalld.service关闭防火墙,较危险systemctl stop firewalld.service直接关闭防火墙比较危险,只开启80端口即可开启防火墙systemctl start firewalld开启80端口firewall-cmd --zone=public --add-port=80/tcp --permanent重新加载防火墙,才能生效firewall-cmd --
2021-04-11 22:17:38
124
原创 CentOS7,Nginx安装配置原理
安装参考安装包的存储位置/usr/local/src/防火墙查看防火墙状态,running表示防火区开启systemctl status firewalld.service关闭防火墙,较危险systemctl stop firewalld.service直接关闭防火墙比较危险,只开启80端口即可开启防火墙systemctl start firewalld开启80端口firewall-cmd --zone=public --add-port=80/tcp --permanen
2021-04-11 21:59:43
117
原创 Effective Java 中文第二版,读书笔记
第二章:创建和销毁对象1.静态工厂方法代替构造器即静态方法返回本类的实例1.静态方法有方法名称更加直观构造方法没有名字,所以使用静态方法返回本类的实例,让使用着根据方法名就能确定创建的实例的具体类型。比如:Person类,有两个构造方法,分别创建两种人,幼儿、青年。但使用着并不能区分它们,因为构造方法没有名称(如果没有参考文档,或则注释,往往不知所云)。但提供两个静态方法,使用着就能根据方法名区分2.不必每次都创建新的对象如果经常创建相同的对象,且创建对象的代价很高,就可以考虑使用,或者要
2021-04-04 13:19:46
198
1
原创 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) 周志明 著
2.2运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图2-1所示。...
2021-04-02 11:12:19
543
原创 初学vue,遇到的一些神奇的事情
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><div id="app"> {{a}}---{{b}} </div> <script> var data = { 'a': 1 }; var vm = new Vue({ el: '#app', da
2021-04-01 11:36:42
76
原创 mysql Innodb引擎,笔记
版本体系架构简单解释:由文件,内存,线程组成文件:数据文件InnoDB内存池:内存后台线程:数据文件与内存交互(数据同步,日志记录等)为了提高效率,需要将数据文件加载进内存,crud操作实际上是在内存中操作(同时后台线程会有日志记录),之后由后台线程同步文件,所以内存的大小直接影响着数据库的效率InnodB内存池(一块内存)数据页的概念:一页16kb,也就是说页是一个单位查询首次查询时,会检查内存中是否存在这些数据页,如果没有就去文件中取并放入内存,第二次查询时,检查内
2021-03-24 12:08:04
124
原创 JVM
https://www.bilibili.com/video/BV1Yr4y1N7HL?p=3&spm_id_from=pageDriver基本内存结构堆内存结构以及调优调优就是减少yong gc和full gc的频繁次数可达性分析算法minor gc:如何判断对象为非垃圾:从变量的引用找出所有应用的对象,为非垃圾,并将其分代年龄+1(minor gc回收整个年轻代的垃圾又称为yong gc)1.当堆的Eden(伊甸园)第一次满了就触发minor gc,并将这些非垃
2021-02-24 17:45:02
132
1
转载 HTTP
原文:https://blog.csdn.net/chentian114/article/details/98451417二、HTTP协议简析 HTTP超文本传输协议是用于从万维网服务器传输超文本到本地浏览器的传送协议。 HTTP 是基于 TCP/IP 协议通信协议来传递数据(HTML 文件、图片文件、查询结果等)。 它不涉及数据包传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。1.Http的特点 1)简单快速:客户向服务器请求服务时,只需传送请求方法和
2021-02-23 10:32:44
670
原创 软件测试需要掌握的基础知识
计算机网络基础1,OSI,TCP/IP,五层协议的体系结构,以及各层协议TCP/IP分层(4层自下而上):网络接口层、网际层、运输层、应用层。2.封装过程了解(这个过程被称为封包,与之对应反过来就是拆包)3,IP地址了解,并会查询自己电脑的IP地址以及网络IP地址4,TCP三次握手四次挥手...
2021-02-22 10:33:30
477
原创 毕向东java基础,B站直达,目录,b站浏览目录太难受,在这做一个
P1黑马程序员_毕向东_Java基础视频教程第01天-01-基本常识19:12P2黑马程序员_毕向东_Java基础视频教程第01天-02-Java的跨平台性09:51P3黑马程序员_毕向东_Java基础视频教程第01天-03-Java环境搭建(安装)16:11P4黑马程序员_毕向东_Java基础视频教程第01天-04-Java环境搭建(环境变量配置)11:20P5黑马程序员_毕向东_Java基础视频教程第01天-05-Java环境搭建(环境变量配置技巧)07:13P6黑马程序员_毕向东.
2021-01-26 11:18:50
229
1
原创 Mysql笔记
根据时间(dataTime类型)按天分组,且取每天的最后一个数据博客的第一条评论SELEC T task_user_id,call_status,create_time FROM (select task_user_id,call_status,create_time from hz_call_task_user_calllog where del_flag having 1 order by create_time DESC) b GROUP BY b.task_user_id;...
2020-12-30 17:13:05
103
原创 Java的队列,外加一个自定义语法糖
Queue找到java.util.Queue,可以看到其继承自java.util.Collectionpublic interface Queue<E> extends Collection<E> { boolean add(E e); boolean offer(E e); E remove(); E poll(); E element(); E peek();}快捷键ctrl+h查看继承结
2020-12-28 15:26:36
241
原创 easyExcel通用导入,导出
pom引入<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.75</version> </dependency> <dependency> <groupId>com.alibaba</groupId> &l
2020-12-23 18:29:23
2696
3
原创 Mybatis运行原理-为Mybatis插件开发打基础
视频地址https://www.bilibili.com/video/BV1bb411A7bD?p=71分层框架流程1.获取sqlsessionFactory对象2.获取sqlsession对象3.获取接口代理对象(mapperProxy)4.执行crud方法
2020-12-15 10:30:59
142
3
原创 springAopDemo,基于注解@Aspect
创建Springboot项目,项目结构如下,直接贴上代码注释在代码里面package com.example.demo.aop;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.METHOD
2020-12-14 18:11:01
141
原创 谷粒商城-压力测试,性能监控,指标,总结的比较垃圾,建议看视频
测试工具jMeter,常用三个指标如下提升吞吐量:修改jvm参数-Xmx512m
2020-11-20 17:20:27
1650
原创 谷粒商城-跨域
跨域请求官方文档说明: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS起因:js同源策略只要协议,域名,端口,任意一项不同就属于跨域请求对比的是地址栏的URL与ajx请求的URL简单请求:官方文档有详细说明非简单请求:会发送预检请求(OPTIONS请求,问服务器是否允许跨域)nginx配置Gateway配置(其实是SpringBoot配置)@Configurationp.
2020-11-18 17:17:05
716
原创 谷粒商城-openfeign
1.引入<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>2.2.6.RELEASE</version> </dependency>
2020-11-17 17:07:59
282
4
原创 尚硅谷2020微服务分布式电商项目《谷粒商城》java部分
项目教学视频地址:https://www.bilibili.com/video/BV1np4y1C7Yf?p=1虚拟机环境搭建参考:https://www.cnblogs.com/javalbb/p/12554484.htmldocker环境搭建参考:https://www.cnblogs.com/javalbb/p/12690862.htmlgit安装使用参考:...
2020-11-13 11:21:58
853
原创 谷粒商城-git使用以及遇到的问题,idea开发Java项目
前提是安装了git1.注册登陆2.新建仓库输入仓库名称,并进行如下设置4.复制项目地址5,使用idea下载到本地填写URL,clone即可
2020-11-13 11:19:17
163
原创 centOS7虚拟机桥接网络配置
网络配置文件1.连接方式:static自己指定IP地址,dhcp是自动分配(选择static)2.子网掩码:centOS7使用PREFIX=24,centOS6是NETMASK(选择PREFIX=24)3.DNS跟本机DNS相同即可4.网管可以都设置成跟路由相同5.IPADDR指定IP地址,需要跟本机IP在同一网段(就是前三段要相同)ip addr...
2020-11-13 10:27:54
565
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人