- 博客(11)
- 收藏
- 关注
原创 并发数据问题之分布式锁
并发数据问题之分布式锁架构不是凭空设计出来的,是长出来的什么是分布式锁分布式锁听起来很高大上,其实等你实际用的时候你会发现也还好,redis实现分布式锁的核心就是setnx指令;场景示例之前做过一个微信社群运营的项目,这个项目可以很好的诠释为啥我们会用分布式锁,大家有兴趣可以看看这个:企业微信关于后台调用token说明:https://developer.work.weixin.qq.com/document/path/91039使用分布式锁的前提:分布式使用同一个标识调用标识是变化的,
2022-05-06 11:00:26
388
原创 并发数据问题之幂等设计
并发数据问题技术是解决问题慢慢出现的,不是凭空设计的。幂等定义:接口的幂等性实际上就是接口可重复调用,在调用方多次调用的情况下,接口最终得到的结果是一致的 ;幂等的实现:数据库UK天然实现,插入时考虑同一个uk时的告警处理,更新时可以使用数据库乐观锁,加version;redis实现,指令setnx;模型示例:正常创单模型用户创单生成订单落库,此时订单状态位待支付用户支付成功,更改订单状态已支付,履约接单物理域操作拣货-代发货,出库-已发货,货到达快递点-待收货用户收获,交
2022-03-12 21:32:42
1313
原创 让人又爱又恨的JVM
JVM内存1.方法区 – 存放字节码文件2.程序计数器-- 记录字节码文件执行到那个位置3.Java虚拟机栈 – 程序方法压栈出栈 方法中的局部变量4.Java堆内存 – 方法执行中创建的对象存储5.常量池 – static修饰的一般常量存储空间 图示未体现6.内存其他区域 本地方法栈 native修饰的一些变量新生代老年代新生代:创建和使用完后的对象立马放的区域 注意:刚开始创建的对象大部分优先分配在新生代;什么时间变为老年代?老年代:创建后需要长期使用的
2021-10-17 13:21:43
215
原创 CentOS安装
CentOS安装虚拟机安装省略CentOS安装1.下载CentOS包:http://isoredirect.centos.org/centos/7/isos/x86_64/2.打开虚拟机新建虚拟机上述步骤一路next;3.自定义硬件4.选择自己下载的CentOS包5.关闭,完成6.开启虚拟机,这个过程要一会;下面是开启后的一些选择7.点击开始安装后,可以设置root密码点击同意许可8.安装好后的页面9.设置网关,主要是和本地系统共享网络;10.确保
2021-09-27 23:09:11
71
原创 挂羊头卖狗肉--代理的二三事
反射提到反射就不得不说类加载的过程,在Java代码运行的过程中,并不是只有new对象一种方式;类加载类加载的过程作用:将.class文件加载到虚拟机中的过程;类加载的时机:创建类的实例(对象)调用类的类方法访问类或者接口的类变量,或者为该类变量赋值使用反射方式来强制创建某个类或接口对应的java.lang.Class对象初始化某个类的子类直接使用java.exe命令来运行某个主类过程:如图示从左到右,以及每步做的工作;类加载器的分类我们也可以进行继承加载器,建立自己的类
2021-07-28 08:59:37
84
原创 泛型-注解-枚举的小小用法
泛型泛型好处把运行时期的问题提前到了编译期间,可以在开发时发现,写不是要求的泛型,会报错避免了强制类型转换返参通用性泛型类package fanxing;public class ClassFanXing<T> { private T t; private String name; private Integer age; public T getT() { return t; } public void s
2021-07-09 09:12:10
97
原创 redis入门+springboot整合
redis入门应用为何用redis传统的MySQL在查询走的是磁盘IO,耗时较长,在高并发的情况下,性能很容易出问题;redis是一个基于内存设计的非关系型数据库,数据之间没有关系,查询速度非常快,对海量用户处理非常高效;redis介绍Redis(Remote Dictionary Server)是用 C 语言开发的一个开源的基于内存的高性能键值对(key-value)缓存和存储系统。特点高性能。内存存储,不走磁盘IO,在大数据量下也可以高性能运行。官方提供测试数据,50个并发执行1000
2021-05-05 19:49:35
869
原创 springboot整合dubbo项目
springboot项目整合dubbo前置环境准备1.ZooKeeper客户端安装完毕并启动;2.dubbo客户端可视化工具准备完成;api创建(共用服务接口)创建api项目,项目目录如下pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XML
2021-03-29 23:57:59
427
1
原创 MySQL入门
MySQL指令总结基础指令指令分类DDL(Data Definition Language) :数据定义语言。用来操作数据库,表,列等。DML(Data Manipulation Language) :数据操作语言。用来对数据库中表的记录(数据)进行增删改。DQL(Data Query Language) :数据查询语言。用来查询数据库中表的记录(数据)。相对来说,查询在工作中最常用;DDL(操作库表列)库相关-- 操作库SHOW DATABASES; -- 查询所有数据库SHOW C
2021-03-28 20:02:43
293
1
原创 手动搭建springboot项目
手动搭建springboot项目maven项目手动改造为springboot项目新建maven项目pom文件引入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ht
2021-03-16 13:24:33
528
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人