logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

数据库分库分表及其切片方案(垂直切分、水平切分)

为什么要做分库分表?单机存储容量、连接数、处理能力有限。当单表的数据量达到1000W+或100G+以后,由于查询的维度较多,即使添加从库、优化索引也无法根本改变,这时候我们就需要考虑进行切分了,目的在于减少数据库的负担,缩短查询时间。垂直(纵向)切分垂直切分分为垂直分库和垂直分表两种垂直分库依据业务的耦合性进行拆分,将关联度低的不同表存储在不同的数据库。就像我们的微服务,每个微服务就是一个独立业务

#数据库#分布式
数据库索引类型介绍及其优缺点、区别、适用场景

索引索引分为主键索引、唯一索引、普通索引、聚集索引、全文索引几种,而索引其实就是在无序的数据中建立索引,每次查询可以根据索引迅速查到我们想要的数据(就像字典的目录a-z一样)优点提高数据查找速度提高group by、order by分组与排序的时间缺点每增加数据都需要更新索引,随者数据量增大,索引维护成本会增加占用一定的存储空间,.myi后缀的文件存储的就是索引文件。索引类型主键索引数据列不允许重

#数据库
Hotspot JVM的系统线程说明

Hotspot JVM的系统线程说明说明:JVM中所使用的线程与原生操作系统线程有着直接的映射关系,这些线程由操作系统统一调度并分配到可用的CPU上当JVM创建线程时其实就是在系统原生上创建线程原生线程初始化完成后会调用java中的run()方法当Java线程结束后,原生线程随之被回收在Hotspot JVM中,后台运行的线程有如下几个:虚拟机线程(VM Thread)这个线程等待JVM到达安全点

#jvm#java
JVM 内存模型组成+经典总结

Java内存模型(Java Memory Model),简称JMM,定义了JVM(Java虚拟机)在计算机内存(RAM)中的工作方式,目的是定义一个一致的、跨平台的内存模型,是隶属于JVM的。我们先来看看内存模型的组成(Java 8)其中需要注意的几个点:线程私有:私有数据区域其它线程不可见,生命周期随着线程的的启动而创建,线程结束而销毁。线程共享:所有线程可见,生命周期跟随着JVM的启动/关闭而

#jvm
一文学会JVM常见参数设置+调优经验(JDK1.8)

内存管理参数本参数以JDK1.8为基础进行整理,目前默认参数大概有660个左右,使用java -XX:+PrintFlagsFinal -version可以输出所有参数的名称及默认值名词解释-XX:开头的参数代表虚拟机非稳定参数-XX:+ 开启option参数-XX:- 关闭option参数-XX:= 将option参数的值设置为valueJVM设置经验客户端应用-Xverify:none-XX:

#jvm#java
Java OOM异常原因及解决方案

Java堆溢出现象java.lang.OutOfMemoryError: Java heap space原因大量对象没有释放,无法回收解决方案使用内存映像分析工具分析 Dump 出来的堆转储快照,分析对象是是否合理存在,可以排查是内存泄露还是溢出如果内存泄露,工具查看泄漏对象到 GC Root 的引用链,定位出泄漏的位置;如果不存在泄漏,检查虚拟机堆参数(-Xmx 和 -Xms)是否可以调大配置配

#java
Spring Cloud Gateway 原理与应用场景

why 为什么需要网关?如图可知:在常规没有网关的情况下,无法对多个服务进行统一的处理,比如我需要做统一的鉴权,这时候需要在每个服务上增加鉴权功能来达到目的,工作量大且不好维护在有网关的情况下,可以将所有的流量都达到网关,然后通过网关来对请求做统一的鉴权处理,非常方便what 网关的应用场景降低复杂性,如前台请求多个服务,可以通过网关进行简化鉴权(网关中重点):用户是否合法?有哪些权限可以请求哪些

#分布式
SpringBoot自动配置实现原理及源码解析(2.3.x)

约定优于配置,这是SpringBoot中的一个很重要特性,此特性让我们可以在几秒中之内完成一个项目的搭建,无需任何配置,本文就通过深入源码的方式来探索下自动配置的实现过程为什么要自动配置手动配置很麻烦且容易出问题构建一个一样的项目耗时长且复杂Overview概括来说,就是借助@Import的支持,收集和注册特定场景相关的bean定义来进行自动配置eg:@EnableAutoConfiguratio

#spring boot#spring
RocketMQ消息存储结构分析及相对于Kafka的优势

在RocketMQ中,消息存储是由CommitLog和ConsumerQueue配合完成消息存储结构首先我们先来看下整体的消息存储结构基本过程:生产者在生产消息的时候是将消息存储在CommitLog文件中消费者在读取消息时,先读取ConsumeQueue,然后再通过ConsumeQueue中的位置信息读取CommitLog文件中具体的消息数据得到原始消息。这里有两个需要注意的地方,CommitLo

#rocketmq
MySQL并行写入、查询性能调优(多核CPU)

[html] view plain copy[client]port = 3306socket = /tmp/mysql.sock[mysqld]port = 3306socket = /tmp/mysql.sockbasedir = /usr/local/mysqldatadir = /data/mysqlpid-file = /data/mysql/mysql

#mysql
    共 11 条
  • 1
  • 2
  • 请选择