自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 TiDB两阶段提交(乐观事务与悲观事务)

学习TiDB事务的底层原理思想,总结一下自己的理解官方文档乐观事务:一种与传统分布式事务不同的解决方案,不一定会加锁,能够实现跨节点的分布式事务安全,如果写冲突不频繁,那么可以通过跳过获取行锁而提高性能,如果写同一行冲突频繁,性能会低于悲观事务下面请对照着官网的一张图,配合理解乐观事务的实现(1)客户端事务开始,TiDB接到begin后,向PD管理层申请一个time stamp (下面简称ts)做为事务起始编号 start_ts .(2)执行客户端SQL:1:读请求,则先向PD获取Regio

2021-04-27 17:45:02 1023

原创 TiDB动态扩容与集群配置重置

场景一:一开始只是在开发环境搭建了低配单机版(PD,TiKV,TiDB,TiUP,Monitor都在同一台服务器),使用后觉得不错,想扩容两个TiKV,因为已经存在了部分数据,不可能卸载重装,所以就找了官网动态扩容的方案操作https://docs.pingcap.com/zh/tidb/stable/scale-tidb-using-tiup(1)新增配置文件:(与topology.yaml同级)vi scale-out.yaml写入(因为我这里只扩容TiKV,所以只需要配tikv_servers

2021-04-23 17:30:23 681

原创 TiDB几个重要生态工具

官方文档https://docs.pingcap.com/zh/tidb/stable/hardware-and-software-requirements网上的概念: TiDB 是一款定位于联机事务处理/联机分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,结合了传统的行式存储数据库服务和NoSql非关系型数据库的特点,实现了一键水平伸缩,支持无限水平扩展,引入MVCC多版本控制协议保证数据强一致性(可以防止脏读幻读不可重

2021-04-23 16:31:49 462

原创 TiDB配置文件常见坑

(1) net.core.somaxconn = 128, should be greater than 32768net.core.somaxconn是Linux中的一个内核(kernel)参数,表示socket监听(listen)的监听队列上限。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当Server处理请求较慢时,导致监听队列被填满后,新来的请求就会被拒绝。FIX:vi /etc/sysctl.conf新增:net.core.soma

2021-04-23 15:49:55 3443

原创 TiDB集群部署(Centos7 * 3)

(1)安装TiUP1.下载 : curl --proto ‘=https’ --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh2.设置环境变量:source .bash_profile3.安装 TiUP cluster 组件:tiup cluster4.升级TiUP cluster组件版本:tiup update --self && tiup update cluster(2) 写配置文件1.直接下载配置

2021-04-23 15:39:18 531

原创 不声明第三个参数(临时变量)交换两个数的值+快速查找数组中只出现一次的数字+异或运算的底层原理

题目1:设数组{3,2,1,7,2,3,7},除一个数字外,其它数字都是成对出现,求如何快速找出只出现了一次的数字?解:public static void main(String[] args) { int[] array = new int[]{3,2,1,7,2,3,7}; int result = array[0]; for (int i = 1; i < array.length; i++) { result = r

2021-04-19 11:42:34 151

原创 动态规划:鸡蛋掉落问题图文解析+Java实现

题目:你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <= X <= N)。你的目标是确切地知道 F 的值是多少。无论 F 的初始值如何,你确定 F 的值

2021-04-14 16:05:37 510

原创 SpringBoot拦截器简单的拦截校验小Demo

拦截器其实功能上跟过滤器一样,也是AOP切面编程的一种实现方式,只不过它能更方便的充分调用Service方法,可以注入 Controller层,Service层,Mapper层等等进行逻辑判断,因为拦截器是基于Java反射机制创建并调用的,属于SpringMvc子容器,父容器完成初始化完成后才进行创建,所以可以注入和调用所有父容器中的service假设有个需求:根据某个入参ID判断是否1.是的话才允许调用并且同时记录请求响应时间,不是的话就返回(1)自定义一个拦截器:package com.examp

2021-04-12 18:15:27 362

原创 SpringBoot过滤器实战超简单上手演示

Filter依赖于Servlet容器,属于Servlet的一部分,生命周期由Servlet容器管理,是AOP切面编程的一种具体实现,它自身其实是一个通用的特殊的Service,在请求时会先经过过滤器的处理再针对Service发起真正的请求但是它粒度比较粗,只能针对HttpRequest和HttpResponse前后进行相关校验和逻辑判断处理。同时由于它属于Servlet容器管理,在过滤器内部无法注入Spring容器的实例,也无法调用相关Service方法。例如:自定义Filter:package

2021-04-12 17:02:06 234

原创 Spring中@Import作用

在Spring中@Import是一粒非常强力的注解,可以将一个一个类快速注册入容器,这样说可能很抽象,下面将通过两个例子来说明。首先我们回忆一下如何要往Spring容器注入一个类,要加哪些注解?@Controller,@Service,@Repository,@Bean,@Configuration … 加在哪里,就是把当前类实例注入到容器。而@Import,它更像是一种解决依赖关系的,帮助别的类快速注入到容器例:(1)我首先有一个POJO叫Test,(2)我们都知道POJO一般不加注解,要用的

2021-04-07 18:15:35 465

原创 自增ID,UUID,雪花ID的使用

主键ID主要有:数据库自增主键uuid雪花ID数据库的自增主键:从大学做实验开始就一直用自增主键,以前也没考虑过用自增主键有啥问题,直到工作后…(1)首先自增主键不适用于分库分表情况,在做数据集合的时候会出现主键重复问题,做多个系统的数据汇总也会有冲突(2)其次,详情…删除…查询…这些接口如果都是依赖着自增主键做操作,很容易有安全性问题(这是测试同学做渗透测试的时候告诉我的),同时很容易造成越权(掌握你自增主键的规律然后一定程度上越过某些校验获取数据)所以以后再给我好好设计数据库的话,我都不

2021-04-07 11:39:19 2961

原创 SpringBoot+testNG做单元测试并且生成单元测试覆盖率报告

良好的单元测试习惯可以大大减少Bug,这里将会详细展示如何进行单元测试并且生成覆盖率报告等。(1)创建压测类注意!⚠️与启动类同级的test下的Java目录下!!!与项目的层级结构必须一样!!完全一样!(否则无法生成覆盖率报告: No coverage results)(2)导入依赖!!!<dependency> <groupId>org.testng</groupId> <artifactId>

2021-04-06 18:07:49 1548 1

流式字符串统计的FlinkJob

流式字符串统计的FlinkJob小demo

2020-12-31

空空如也

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

TA关注的人

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