- 博客(121)
- 收藏
- 关注
原创 java虚拟机_03_GC算法及垃圾回收
GC 算法与种类GC的概念Garbage Collection 垃圾收集(垃圾回收) 回收java无用的对象 不回收会导致内存泄露1960年 List 使用了GCJava中,GC的对象是堆空间和永久区GC的基本原理: 将内存中不再被使用的对象进行回收,GC中用于回收的方法称为收集器,由于GC需要消耗一些资源和时间,Java在对对象的生命周期特征进行分析后,按照新生代、旧生...
2018-07-16 20:53:47
13641
原创 java虚拟机_02_Jvm内存模型
https://blog.csdn.net/u011080472/article/details/51337422 我们知道 - 计算机CPU和内存的交互是最频繁的 - 内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速...
2018-07-16 07:44:28
14599
原创 java虚拟机_01_类的加载机制
类的加载机制1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 类加载器并不...
2018-07-15 20:52:54
13416
原创 MySQL主从不一致情形与解决方法
一、MySQL主从不同步情况1.1 网络的延迟由于mysql主从复制是基于binlog的一种异步复制 通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。1.2 主从两台机器的负载不一致由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sq...
2018-07-14 18:50:55
38229
2
原创 Mysql拆分、切分
一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存...
2018-07-14 08:38:40
18359
1
原创 数据库SQL优化
一、引起全表扫描的情况1.1、模糊查询效率很低原因 like本身效率就比较低,应该尽量避免查询条件使用like;对于like ‘%…%’(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低;另外,由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低。解决办法 首先尽量避免模糊查询,如果因为业务需要一定要使用模糊查询,则至少保证不要使用全模糊查询,对于右模糊查询,...
2018-07-13 12:56:21
13822
原创 索引介绍(MySQL)
一、索引介绍索引是存储引擎用于快速查找记录的一种数据结构。索引优化是对查询性能优化最有效的手段。索引可以包含一个或多个列的值。如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高效低使用索引的最左前缀列。1.1 索引的三大优点:索引可以让服务器快速定位到表的指定位置。 最常见的B-Tree索引,按照顺序存储数据,所以MySQL可以用来做ORDER BY 和 GR...
2018-07-13 08:07:59
14253
原创 Innodb中的MVCC
一、MVCC简介MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能1.1 读锁也叫共享锁、S锁,若事务T对数据对象A加上S锁,则事务T可以...
2018-07-12 17:02:22
13627
原创 数据库的隔离及事务传播属性
对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题 事务的特性-ACID - 1.原子性:事务里面的操作单元不可切割,要么全部成功,要么全部失败 - 2.一致性:事务执行前后,业务状态和其他业务状态保持一致. - 3.隔离性:一个事务执行的时候最好不要受到其他事务的影响 - 4.持久性:一旦事务提交或者回滚.这个状态...
2018-07-11 15:35:50
15455
1
原创 Mybatis缓存机制详解
mybatis提供了缓存机制减轻数据库压力,提高数据库性能mybatis的缓存分为两级:一级缓存 一级缓存是SqlSession级别的缓存,缓存的数据只在SqlSession内有效二级缓存 二级缓存是mapper级别的缓存,同一个namespace公用这一个缓存,所以对SqlSession是共享的一级缓存:mybatis的一级缓存是SqlSession级别的缓存 在...
2018-07-11 15:26:36
12648
原创 使用supervisor实现程序从服务目录拉到发布目录并实时监控拉起死掉的程序进程
Supervisor是一个进程管理工具,官方的说法:用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor
2017-07-10 17:21:23
16211
原创 MySQL主从同步校验工具_pt-table-checksum
注意事项master和slave必须是同步状态master show slave hosts;slave show slave status\G;看看是否同步成功安装yum install perl perl-devel perl-Time-HiRes perl-DBI perl-DBD-MySQL and yum -y install perl-Time-H
2016-08-21 23:11:38
15130
原创 分布式架构高可用架构篇_07_MySQL主从复制的配置(CentOS-6.7+MySQL-5.6)
引入主从复制机制所带来的好处:①避免数据库单点故障:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。②提高査询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据査询操作,从而将査询操作分担到不同的从服务器以提高数据库访问效率。环境操作系统...
2016-04-24 23:39:22
16599
原创 分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
2016-04-23 19:28:07
15734
原创 分布式架构高可用架构篇_02_activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
activemq高可用集群(zookeeper+leveldb)安装、配置、高可用测试
2016-04-20 23:13:23
4613
原创 分布式架构高可用架构篇_04_Keepalived+Nginx实现高可用Web负载均衡
Keepalived+Nginx实现高可用Web负载均衡
2016-04-17 10:00:52
17319
原创 Dubbo高级篇_12_dubbo服务只注册
只注册(+) (#)问题如果有两个镜像环境,两个注册中心,有一个服务只在其中一个注册中心有部署,另一个注册中心还没来得及部署,而两个注册中心的其它应用都需要依赖此服务,所以需要将服务同时注册到两个注册中心,但却不能让此服务同时依赖两个注册中心的其它服务。解决方案可以让服务提供者方,只注册服务到另一注册中
2016-04-16 10:28:18
16825
原创 Dubbo高级篇_11_dubbo服务只订阅(开发调试)
只订阅(+) (#)问题为方便开发测试,经常会在线下共用一个所有服务可用的注册中心,这时,如果一个正在开发中的服务提供者注册,可能会影响消费者不能正常运行。解决方案可以让服务提供者开发方,只订阅服务(开发的服务可能依赖其它服务),而不注册正在开发的服务,通过直连测试正在开发的服务。
2016-04-16 10:22:58
20214
原创 Dubbo高级篇_11_Dubbo消费端直连服务提供者(开发调试)
直连提供者(+) (#)在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,A接口配置点对点,不影响B接口从注册中心获取列表。(1) 如果是线上需求需要点对点,可在<dubbo:reference>中配置url指向提供者,将绕过注册中心,多个地址用分号隔开,配置...
2016-04-16 09:55:23
62450
8
原创 Dubbo高级篇_10_Dubbo线程模型
线程模型类似于数据库的连接池(+) (#)事件处理线程说明如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度。但如果事件处理逻辑较慢,或者需要发起新的IO请求,比如需要查询数据库,则必须派发到线程池,否则IO线程阻塞,将导致不能接收其它请求。如果用IO线程处理
2016-04-15 11:05:06
44940
3
原创 Dubbo高级篇_08_Dubbo服务启动依赖检查
启动时检查(+) (#)Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则服务临时不可用时,会抛出异常,拿到null
2016-04-13 19:00:21
23755
原创 Dubbo高级篇_07_Dubbo服务接口的设计原则
1 、设计方式action->facade->biz->dao好的Dubbo服务接品设计,并非只是纯粹的接口服务化2.接口类型简单的数据查询接口:action.facade、dao带业务逻辑的数据查询接口:action、facade、biz、dao简单的数据写入接口:action、facade、dao带业务逻辑的数据写入接口:action、facade、biz、dao
2016-04-13 13:42:18
29971
2
原创 Dubbo高级篇_06_Dubbo分布式服务子系统的划分
服务化的目标 1. 将系统中独立的业务抽取出来,按业务的独立性进行垂直划分,抽象出基础服务层。 2.基础服务为上游业务的功能 实现提供支撑,基础服务应用本身无状态,可随着系统的负荷灵活伸缩来提供服务能力。 服务子系统的数量把控过多:可能划分过细,破坏业务子系统的独立性(如支付订单、退款订单、用户、账户),部署维护工作量大,独立进程占用
2016-04-12 22:30:46
16637
原创 Dubbo高级篇_05_Dubbo服务集群
一、环境准备edu-provider-01(192.168.1.121)edu-provider-02(192.168.1.122)Connecting to 192.168.1.121:22...Connection established.To escape to local shell, press 'Ctrl+Alt+]'.Last login: Sat
2016-04-12 22:03:54
35942
3
原创 分布式之_多线程之指定线程运行服务器
appliction-frame.xml配置 com.shareinfo.commons.thread.multiple.MultipleCheckOnlineUser com.shareinfo.commons.thread.multiple.MultipleInitProperties com.shareinfo.commons.thread
2016-04-11 17:47:48
1473
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人