MySQL主从复制(Master-Slave)实践

摘要: MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。 下图就描述了一个多个数据库间主从复制与读写分离的模型(来源网络): 在一主多从的数据库体系中,多个从服务器采用异步的方式更 阅读全文
posted @ 2018-08-23 11:19 WeirdLang 阅读(178) 评论(0) 推荐(0) 编辑

MySQL索引原理以及查询优化

摘要: 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。 2.为什么要有索引呢? 索引在MySQL中也叫做“ 阅读全文
posted @ 2018-08-21 17:21 WeirdLang 阅读(222) 评论(0) 推荐(0) 编辑

前后端分离,如何防止api接口被恶意调用或攻击

摘要: 无论网站,还是App目前基本都是基于api接口模式的开发,那么api的安全就尤为重要了。目前攻击最常见的就是“短信轰炸机”,由于短信接口验证是App,网站检验用户手机号最真实的途径,使用短信验证码在提供便利的同时,也成了呗恶意攻击的对象,那么如何才能防止被恶意调用呢? 1.图形验证码: 将图形校验码 阅读全文
posted @ 2018-08-21 14:31 WeirdLang 阅读(14878) 评论(1) 推荐(2) 编辑

线程池为什么能维持线程不释放,随时运行各种任务

摘要: 线程池 之前一直有这个疑问:我们平时使用线程都是各种new Thread(),然后直接在run()方法里面执行我们要做的各种操作,使用完后需要做什么管理吗?线程池为什么能维持住核心线程不释放,一直接收任务进行处理呢? 线程 线程无他,主要有两个方法,我们先看看start()方法介绍: /** * C 阅读全文
posted @ 2018-08-15 14:09 WeirdLang 阅读(5560) 评论(3) 推荐(2) 编辑

ConcurrentHashMap能完全替代HashTable吗?

摘要: 至此你应该能够明白,ConcurrentHashMap与HashTable都可以用于多线程的环境,但是当Hashtable的大小增加到一定的时候,性能会急剧下降,因为迭代时需要被锁定很长的时间。因为ConcurrentHashMap引入了分割(segmentation),不论它变得多么大,仅仅需要锁 阅读全文
posted @ 2018-08-13 09:28 WeirdLang 阅读(528) 评论(0) 推荐(0) 编辑

java中内存泄露有几种?如何分析泄露原因

摘要: 一、Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址。Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Heap)中分配的,所有对象的回收都是由Java虚拟机通过垃圾回收机制完成的。GC为了能够正确释放对象,会 阅读全文
posted @ 2018-08-10 09:52 WeirdLang 阅读(2053) 评论(0) 推荐(0) 编辑

AtomicInteger原理

摘要: AtomicInteger说到这个类相信大家都使用过,但是内部原理相信很多人都没有深究过。 一.先说两个概念 悲观锁,乐观锁 悲观锁:java里面的synchronized就是悲观锁,它是一种独占锁,先假设了一种最坏的情况“资源是被占用的”并且在占用期间会导致其它所有需要锁的线程挂起,等待持有锁的线 阅读全文
posted @ 2018-08-01 17:23 WeirdLang 阅读(568) 评论(0) 推荐(0) 编辑

TCP协议是如何保证可靠传输的

摘要: 题外话: 1、UDP: (1)UDP,user datagram protocol,用户数据报协议,不提供复杂的控制机制,利用IP提供面向无连接的通信服务,并且它是将应用程序发送过来的数据包在收到的那一刻,立即按照原样发送到上的一种机制。 (2)即使在网络拥堵的情况下,UDP也无法进行流量控制等避免 阅读全文
posted @ 2017-02-28 22:13 WeirdLang 阅读(174) 评论(0) 推荐(0) 编辑

MySQL 性能优化 : 索引和查询优化

摘要: 要知道为什么使用索引,要知道如何去使用好索引,使自己的查询达到最优性能,需要先了解索引的数据结构和磁盘的存取原理 参考博客:MySQL索引背后的数据结构及算法原理 http://blog.codinglabs.org/articles/theory-of-mysql-index.html 如上这篇博 阅读全文
posted @ 2017-02-28 22:11 WeirdLang 阅读(76) 评论(0) 推荐(0) 编辑

java类的加载机制

摘要: 1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向J 阅读全文
posted @ 2017-02-26 20:43 WeirdLang 阅读(49) 评论(0) 推荐(0) 编辑