java.lang.IllegalArgumentException: Malformed \uxxxx encoding while mvn install Windows 用户:在maven仓库中搜索 resolver-status.properties 文件,然后删除所有搜索到的文件并重新运行 maven 命令。
Seata原理自问 这些场景中的共同点是,它们都涉及多个独立的操作需要保证最终的一致性,而这些操作可能分布在不同的服务或数据库上。Seata 通过 TC 统一协调 TM 和 RM 的操作,结合事务的两阶段提交(2PC)或 TCC 模式,确保分布式事务中的多个操作要么全部成功,要么全部回滚,从而保证分布式系统中的数据一致性。对于一些复杂的业务流程,需要调用多个服务或者执行多步操作时,Seata 的全局事务协调器(TC)可以帮助管理这些步骤的执行顺序和事务性,确保在业务流程中的所有步骤都要么成功,要么回滚。
Nacos原理自问 Nacos 能够刷新配置的原理主要基于以下几个方面:配置存储与发布:Nacos 将配置信息存储在其内部的持久化存储中(如 MySQL 数据库)。当开发者或运维人员更新了配置,Nacos 会将新的配置信息存储到数据库中,并生成一个新的版本。长轮询机制:客户端通过 HTTP 长轮询的方式,定期向 Nacos 服务器查询是否有新的配置发布。所谓长轮询,即客户端发出请求后,Nacos 服务器会等待一段时间(如 30 秒),在这段时间内如果有新的配置发布,服务器就会立即响应客户端并返回新的配置;
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;/** *
spring复习 注解驱动组件注册(注册bean)@Configuration&@Bean给容器中注册组件@ComponentScan-自动扫描组件&指定扫描规则@ComponentScans@Import-给容器中导入一个组件(benaName默认是全类名)使用FactoryBean注册组件(注册得到工厂Bean还要配合@Bean注解使用)bean的一些设置。(作用域、加载时机、注册条件)@Scope-设置组件作用域@Lazy-bean懒加载@Conditional-按照条件注册bean
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)@
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,
Mysql查询优化 什么是ExplainExplain被称为执行计划,在语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条SQL。(注意,如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。Explain可以用来分析SQL语句和表结构的性能瓶颈。通过explain的结果,可以了解到如数据表的查询顺序、数据查询操作的操作类型、哪些索引可以被命中、哪些索引实际会命中、每个数据表有多少行记录被查询等信息。
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
雪花算法 原文视频其实就是一个long类型的数据64位手写一个最简单的雪花算法核心思路就是让位置,把前面的位置让出来,让别人进来主要角色:符号位、时间戳、工作机器id、序列号需要让位的:时间戳让出前22位、工作机器id让出前10位/** * 位移 * 5的2进制 101 * 左移两位 5<<2 = 10100 = 20 */ public static void main(String[] args) { //符号位1bit,需要左移63,因为前63位是时
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
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
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 --
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