随着业务量的增加,单机mysql可能不能再支持系统的运行,我们需要部署主备架构的mysql,主库可以提供读写功能,备库只能提供读。
Mysql查询性能优化
Posted on
|
In
Mysql
为什么查询会慢
如果把查询看作是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定时间。如果要优化查询,实际上是优化其子任务,要么消除其中一些子任务,要么减少子任务的执行次数,要么让子任务执行更快。
查询的生命周期大致可以分为:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。在完成这些任务的时候,查询需要在不同 的地方花费时间,包括网络,CPU计算,生成统计信息和执行计划,锁等待,互斥等待等操作,尤其是像底层存储引擎检索数据的调用操作,这些调用需要在内存操作,CPU操作和内存不足时导致的I/O操作上消耗时间。根据存储引擎不同,可能还会产生大量的上下文切换以及系统调用。
Rocketmq源码解析-2.Namesrv
Posted on
|
In
middleware
Rocketmq源码解析-1.Rocketmq介绍
Posted on
|
In
middleware
Rocketmq安装部署
Posted on
|
In
middleware
获取源码,打包编译
- 从github下载源码,git clone https://github.com/apache/rocketmq.git
- 编译源码,进入到主目录,然后执行命令: mvn -Prelease-all -DskipTests clean install -U
- 编译完之后我们只需要下图红框之内的目录进行部署。
Java锁介绍
Posted on
|
In
Java
锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock接口(以及相关实现类)用来实现锁功能,它提供了与synchronized关键字类似的同步功能,只是在使用时需要显式地获取和释放锁。虽然它缺少了(通过synchronized块或者方法所提供的)隐式获取释放锁的便捷性,但是却拥有了锁获取与释放的可操作性、可中断的获取锁以及超时获取锁等多种synchronized关键字所不具备的同步特性。