总结
文章平均质量分 86
_尤.
这个作者很懒,什么都没留下…
展开
-
数据库分库分表
一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维 度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量缓解单一数据库的性能问题,从而达到提升数据库操作转载 2021-07-29 16:44:42 · 135 阅读 · 0 评论 -
jdk动态代理实现原理
JDK动态代理JDK动态代理是代理模式的一种实现方式,其只能代理接口。使用步骤1、 新建一个接口2、 为接口创建一个实现类3、 创建代理类实现java.lang.reflect.InvocationHandler接口4、 测试简单案例根据使用步骤:首先新建一个接口Subjectpackage com.lnjecit.proxy;/** * Subject * 抽象主题接口 * @author * @create 2018-03-29 14:16 **/public int转载 2021-07-27 21:35:24 · 116 阅读 · 0 评论 -
IOC中最常用的设计模式
参考文章:https://zhuanlan.zhihu.com/p/384765501https://www.jianshu.com/p/139f813fca80https://www.cnblogs.com/nickup/p/9800120.html1、工厂模式1.1、定义工厂模式可将Java对象的调用者从被调用者的实现逻辑中分离出来,调用者只需关心被调用者必须满足的规则(接口),而不必关心实例的具体实现过程。工厂模式由抽象产品(接口)、具体产品(实现类)、生产者(工厂类)三种角色组成。1.原创 2021-07-26 15:28:47 · 1877 阅读 · 0 评论 -
一致性哈希算法-通俗易懂
在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那么,我们先来描述一下这个经典的分布式缓存的应用场景。场景描述假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在,有3万张图片需要缓存,我们希望这些图片被均匀的缓存到这3台服务器上,以便它们能够分摊缓存的压力。也就是说,我们希望每台服务器能够缓存1万张左右的图片,那么,我们应该怎样做呢?如果我们没有任何规律的转载 2021-07-25 10:17:17 · 107 阅读 · 0 评论 -
深入解析synchronized实现原理,如何保证原子性、有序性和可见性?
前言这篇文章主要介绍synchronized底层实现,还有它是如何保证原子性、有序性和可见性的。在进入正题之前,举个小栗子:看代码:public class Demo { public synchronized void method1() { System.out.println("Hello, do method1."); //模拟网络IO try { Thread.sleep(50);转载 2021-06-11 11:21:02 · 2359 阅读 · 1 评论 -
JVM的永久代,元空间中会发生垃圾回收吗---个人理解
什么是full GC大众认知上先说一下结论,Full GC这个概念是没有官方定义的,而且含义还特别混乱,在不同地方表达的含义是不同的,需要就不同的场景分别进行讨论。在通常意义上人们口中说的Full GC为一次特殊GC行为的描述,这次GC会回收整个堆的内存,包含老年代,新生代,metaspace等,从GC日志上在gc.log中会发现在部分gc日志头中也有Full GC这样的字眼,这里表示的含义是在这次GC的全过程中,都是Stop Theworld的状态,也就是说在这次GC的全过程中所有用户线程原创 2021-06-10 11:06:42 · 8744 阅读 · 15 评论 -
nginx入门笔记
公司产品出现瓶颈?我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。于是我们横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转发和处理请求。我们希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服转载 2021-06-08 17:30:54 · 85 阅读 · 0 评论 -
彻底搞懂JVM中的OOM,体系结构,内存结构
什么是OOM,OOM为什么会发生,如何解决?概念OOM,全称“Out Of Memory”,意思是“内存用完了”来源于 java.lang.OutOfMemoryError这是个特别严重的问题,因为这个问题已经 严重到应用程序自己无法处理了。原因官方的文档称,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出 java.lang.OutOfMemoryError: ···具体原因一般有这两个:自身原因分配的内存少了,比如JVM虚拟机本身可使用的内原创 2021-06-07 16:18:25 · 284 阅读 · 0 评论 -
面试必备乐观锁&&悲观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。J原创 2021-06-07 14:41:01 · 86 阅读 · 0 评论 -
springboot源码笔记
静态资源配置原理• SpringBoot启动默认加载 xxxAutoConfiguration 类(自动配置类)• SpringMVC功能的自动配置类 WebMvcAutoConfiguration生效条件:@Configuration(proxyBeanMethods = false)@ConditionalOnWebApplication(type = Type.SERVLET)@ConditionalOnClass({ Servlet.class, DispatcherServlet.c原创 2021-05-30 10:20:10 · 459 阅读 · 0 评论 -
关于mysql8.0.20启动出现的问题
cmd运行net start mysql命令出现拒绝访问1:在C:\Windows\System32目录下找到cmd.exe2:鼠标右键以管理员身份运行3:输入命令net start mysql启动服务4:查看mysql安装目录下是否有Data这个文件夹有的不一定是叫Data,可能是data,具体文件名以my.ini中以下配置指定5:如果没有,运行mysqld --initialize --console命令最后一行会产生一个随机密码也就是lwpfyqp6rn#G6:运行net s原创 2020-06-02 19:33:13 · 1056 阅读 · 1 评论