知识随笔
来源:互联网 发布:java json解析框架 编辑:程序博客网 时间:2024/06/05 03:33
一.索引
根据数据库的功能,可以在数据库设计器中创建索引:唯一索引、主键索引和聚集索引。 尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。
唯一索引: UNIQUE 例如:create unique index stusno on student(sno);
表明此索引的每一个索引值只对应唯一的数据记录,对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。
主键索引: primary key
数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。
该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
二.MySQL行级锁、表级锁、页级锁详细介绍
页级:引擎 BDB 速度快,但是冲突多
表级:引擎 MYiSAM 理解为锁住整个表,读可以,写不行
行级:引擎 INNODB 理解为锁住一行数据,可以对其他行的数据进行操作。
三.关于数据库的事务
事务是由一组SQL语句组成的逻辑处理单元,它包含了四个属性:
1.原子性 :对于一组数据的操作,要么全部执行,要么全部不执行
2.一致性 : 在事务开始和完成时,数据都必须保持一致状态
3.隔离性 :数据库系统提供一定的隔离机制,保持事务不受外部影响,独立执行
4.持久性 :对数据的操作保持持久性
四.理解HashCode和equals方法:
1.在编写类的时候,HashCode和equals 都是需要被重写的;如果重写了equals 方法,那么HashCode方法则必须被重写。
2.如果两个对象用equals方法比较的时候 返回的结果为true,那么这两个对象的hashCode方法返回的int值也必须是相等的。
讲诉一个例子以便于理解HashCode方法:
JAVA 中有两个集合,分别是List和Set。List 有序,可以重复 ; Set 无序 不能重复
问题在于,如果数据不允许重复的时候,就可以使用equals来比较,将重复的数据剔除掉,但是如果数据量比较大的时候,每个数据都用equals比较
会大大的降低效率,所以就用hashCode方法。比如一个位置上如果有人,就不能再添加数据了。极大的提高了效率
五.request域的范围
学习Servlet的时候,有一个SrvletContext域,这个域的应用范围是在整个web应用的;而Request的域的范围就会小很多,指的是当一个用户发送请求的时候
开始创建,当请求关闭的时候 Request就会消亡。
六.关于单例模式和多例模式
1.什么是单例模式和多例模式:
单例就是指所有的请求都用一个对象,比如Service层和Dao层; 而多例模式就是指每一次请求都用一个新的对象来处理 比如Action
2.为什么用单例模式和多例模式:
用单例模式是因为不用每一次请求都创建一个对象,浪费CPU和内存
用多例模式是为了防止并发问题
标准: 当对象在实际应用中状态会改变,则用多例模式,否则就用单例模式
3.单例模式的关键有两点:
用private修饰,不允许外部随意调用
get的方法是static的,由类名直接调用
SpringMvc中的Controller 默认是单例模式的,也就是说若有一个私有变量user,则这个user是共用的,也就是说如果有一个请求对这个user进行了修改,
别的请求也能够读取到这个修改的内容。
如果想将其改为多例模式,只需要将@Controller之前增加 @Scope(prototype)
单例模式的缺点:
访问量多的时候需要一个一个的等待,影响用户体验
七,关于懒加载
单例模式有三种形式:分别是懒汉式 饿汉式 双重锁的形式
懒加载其实就是懒汉式
指的是当第一次使用到这个属性的时候,才会给这个属性进行初始化,如果程序还没有运行到这个位置的时候 就不进行创建和初始化,
这样有利于节约资源,提高性能。
尤其是数据量比较大或者是图片比较多的时候,一下子把全部的数据都加载出来,服务器会承受相当大的压力
当采取树形结构则不同,点击父节点会显示出对应的子节点,当点击具体的子节点的时候,才会加载并显示出详细的信息。
八.关于JAVA的反射机制
1.反射机制的作用:
a. .class --> .java
b. 通过java的反射机制 访问java的属性,方法,以及构造方法。
2.sun公司提供的反射机制的类
a. java.lang.Class
b. java.lang.reflect.Constructor
c. java.lang.reflect.Method
d. java.lang.reflect.Medifier
e. java.lang.reflect.Field
3.具体功能的实现
第一种方式: Class.forName(Employee)
第二种方式: Employee.class
第三种方式: Employee ee = new Employee ()
ee.getClass()
九.堆内存和栈内存
1.栈内存: 栈内存的存取速度比较快 / 另外数据可以共享 / 缺点 :生命周期确定
2.堆内存: 堆内存可以动态分配内存 / 数据不可以共享 / 缺点:由于要动态分配内存,所以存取速度比较慢 /
存放所有 new() 出来的对象 / 并且分配出的内存是由 java 垃圾回收机制进行回收的。
十. 垃圾回收机制
System.gc()方法 / 不管JVM 请求的是哪一种垃圾回收的算法,都可以请求java的垃圾回收
但这个方法发起的请求仅仅是一个建议 / JVM 接收到这个请求以后并不是立即进行垃圾回收,而是对几个垃圾回收算法做了加权 /
使垃圾回收操作容易发生 / 或者提早发生 / 或者回收较多。
十一. 数据库设计的三大范式:
第一范式: 简单的说就是 原子性,自断不能再分割
1.每一列的属性都是不可再分的属性值,确保每一列的原子性
2.两列的属性相近或则一样的时候,尽量合并,确保不会产生冗余数据;
第二范式: 简单的说就是 完全依赖 不能部分依赖
1.确保每一行数据都只是做一件事情。 比如一个人订多个房间的时候就会产生多个订单编号的问题
第三范式: 简单的说就是 没有传递依赖
1.数据库的属性值不能存在传递关系,即每个属性和主键之间都存在直接关系而不是间接关系。
十二. Hibernate缓存分类:
一. Session缓存(也叫做事物缓存),它是Hibernate内置的缓存,不能卸载。
缓存范围:缓存只能被当前Session所调用,生命周期依赖Session的生命周期,当Session被关闭后,缓存也就结束其生命周期。
二. SessionFactory缓存(应用缓存) 使用第三方插件,可以卸载。
可以跨越Session存在,也可以被多个Session所共享。
缓存范围: 依赖于应用的生命周期,应用结束时,缓存也就结束了生命周期。
十四. ApplicationContext 和 BeanFoctroy
spring 提供了两种不同的容器: 一种是基本的BeanFactory 另外一种就是ApplicationContext
A. 二者的区别:
BeanFactory 负责加载Bean 实例化、 对Bean的管理、 Bean之间的维护、 以及对Bean生命周期的管理。
ApplicationContext 除了上述的功能以外,还提供了更完整的框架功能。
B. 二者在Bean的初始化方面也有很大的区别:
BeanFactory 在读取配置信息,创建Bean实例的时候,如果读取的配置信息正确,即便其他的配置信息存在错误,也不会影响程序的运行
ApplicationContext 则是要读取所有的xml文件,当配置信息没有错误的时候,就创建所有的Bean。因此当配置的bean比较多的时候,程序启动的
速度就会比较的慢
十五.设计模式
代理设计模式 是为了将代理业务和核心业务区分开
工厂模式 是为了解耦合
十六.Cookie 和 Session
1.Cookie数据存放在客户端上,Session数据存放在服务器上。
2.Cookie存放不是很安全,别人可以通过分析你在本地的Cookie,进行Cookie欺骗。考虑到安全性能应该用Session
3.Session存放在服务器上,当Session太多的时候,会降低你的服务器性能。考虑到性能方面,应该考虑使用Cookie
4.单个Cookie保存的数据不能超过4K。很多浏览器设置的都是一个站点最多保存20个Cookie
5.登陆的信息保存在Session中,其他信息如果需要保留,可以放在Cookie中
spring中bean的生命周期
十七.关于事务你知道多少?
1.事务分为声明式事务(spring 的aop方式)和编程式事务
2.如果对数据库进行多次操作,那么每一次执行都是一次事务,如果在操作在某一步没有在执行,或者出现异常而导致事务失败,
那么所有的事务都会被回滚。
3.java使用事务处理,首先要求数据库支持事务,如果是MySql数据库,就必要要保证表的类型为Innodb才会支持事务。
4.在api里面,可以设置事务自动提交的方式。setAutoCommit(false) 禁止自动提交事务。
十八.声明式事务和编程式事务
1.Spring支持声明式事务管理和编程式事务管理两种方式。
2.编程式事务: 采用的是TransactionTemplate 或者使用底层的PlatformTransactionManager,前者是Spring推荐使用的方式
3.声明式事务: 是建立在AOP方式之上的,是对方法进行的拦截,在目标方法执行之前,创建或者加入一个事务,根据方法执行的
情况来决定是提交或者回滚事务。
优点:是Spring提倡的非侵入式的开发方式,最大的优点就是不需要通过编码的方式进行事务的管理,不需要再业务逻辑中掺杂事务管理的代码。
是通过tx和aop名字空间的xml方式或者@Transactional注解的方式。
缺点:就是没有编程式事务管理方式那样可以细化到代码块级别,生命式事务管理方式只能作用到方法级别。
十九.事务隔离级别
Spring的所有事务管理策略类都继承自org.springframework.transaction.PlatformTransactionManager。
其中TransactionDefinition接口定义了一下特性:
TransactionDefinition.isolation_default :默认级别
TransactionDefinition.isolation_read_uncommited :会出现脏读,不可重复读,很少使用
TransactionDefinition.isolation_read_commited :防止脏读,推荐使用
TransactionDefinition.isolation_repeatable_read :防止脏读,不可重复读
TransactionDefinition.isolation_serializable :防止脏读,不可重复读和幻读,但是会严重影响数据库性能。不推荐使用
二十.事务传播行为
Spring的所有事务管理策略类都继承自org.springframework.transaction.PlatformTransactionManager。
其中TransactionDefinition接口定义了一下特性:
TransactionDefinition.propagation_required :如果存在当前事务就加入,如果不存在,则创建一个新的事务。
TransactionDefinition.propagation_required_new :
TransactionDefinition.propagation_required_supports :
TransactionDefinition.propagation_required_not_support :
二十一.事务超时
TransactionDefinition定义的事务超时就是在规定的时间内,事务没有完成操作就执行回滚的动作,超时时间用int值来表示,
默认是秒,如果底层数据事务没有设置超时时间,就是none。
二十二.乐观锁和悲观锁
1.乐观锁和悲观锁都是并发控制的主要技术手段
2.悲观锁是利用数据库自身的锁机制来实现的,因为只有数据库层提供的锁机制才能真正实现排他性。
3.悲观锁是在数据处理过程中,将数据处于锁定状态,比如for update语句
4.select for update 是基于行级锁的,就比如MySql INNODB默认的就是行级锁,
行级锁都是基于索引来实现的,但是如果一条sql语句用不到索引,就会表级锁把整张表锁住。
5.乐观锁一般是利用版本号来控制的,比如svn版本控制器。
优点与不足:
1.悲观锁是先取锁再访问,保证了数据处理的安全性,但是容易产生死锁,并且容易给数据库带来较大的负担。
2.乐观锁不能防范脏数据。
二十三.脏读、不可重复读、幻读
1.脏读: 是指一个事务正在访问数据,并且对数据进行了修改,但是还没有提交到数据库,此时另外一个事务也使用了这条数据。
2.不可重复读: 是指一个事务对同一条数据进行多次访问,在第一次访问以后,另外一条数据对这条数据进行了修改提交,
那么当第一个事务对这条数据进行第二次读取的时候,会出现和第一次数据读取结果不同的情况。
3.幻读:是指事务不是独立执行时发生的一种现象。一个事务正在对数据库表中的全部数据行进行修改操作,此时,另外一个事务
对此表进行了插入操作,这时第一个事务就会发现出现了原来没有发现的数据行,也就是记录数不一样了。
二十四.Zookeeper
一.背景:
网站架构逐渐从集中式转变为分布式。在这个转变过程中产生了分布式系统中数据一致性的问题。
二.概述:
是一个开放源码的分布式服务协调组件,是Google Chubby 的开源实现。是一个高性能的分布式数据一致性的解决方案。
三.工作过程:
在Zookeeper整个集群开始启动的时候,会选出一个leader,其他的则成为follower,并且和leader建立长连接,用于数据同步和转发请求。
当follower接收到client发送的请求的时候,将请求转发给leader,由leader处理该请求、并把数据同步给所有的follower。
根据数据库的功能,可以在数据库设计器中创建索引:唯一索引、主键索引和聚集索引。 尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。
唯一索引: UNIQUE 例如:create unique index stusno on student(sno);
表明此索引的每一个索引值只对应唯一的数据记录,对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。
主键索引: primary key
数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。
在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。
该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。
二.MySQL行级锁、表级锁、页级锁详细介绍
页级:引擎 BDB 速度快,但是冲突多
表级:引擎 MYiSAM 理解为锁住整个表,读可以,写不行
行级:引擎 INNODB 理解为锁住一行数据,可以对其他行的数据进行操作。
三.关于数据库的事务
事务是由一组SQL语句组成的逻辑处理单元,它包含了四个属性:
1.原子性 :对于一组数据的操作,要么全部执行,要么全部不执行
2.一致性 : 在事务开始和完成时,数据都必须保持一致状态
3.隔离性 :数据库系统提供一定的隔离机制,保持事务不受外部影响,独立执行
4.持久性 :对数据的操作保持持久性
四.理解HashCode和equals方法:
1.在编写类的时候,HashCode和equals 都是需要被重写的;如果重写了equals 方法,那么HashCode方法则必须被重写。
2.如果两个对象用equals方法比较的时候 返回的结果为true,那么这两个对象的hashCode方法返回的int值也必须是相等的。
讲诉一个例子以便于理解HashCode方法:
JAVA 中有两个集合,分别是List和Set。List 有序,可以重复 ; Set 无序 不能重复
问题在于,如果数据不允许重复的时候,就可以使用equals来比较,将重复的数据剔除掉,但是如果数据量比较大的时候,每个数据都用equals比较
会大大的降低效率,所以就用hashCode方法。比如一个位置上如果有人,就不能再添加数据了。极大的提高了效率
五.request域的范围
学习Servlet的时候,有一个SrvletContext域,这个域的应用范围是在整个web应用的;而Request的域的范围就会小很多,指的是当一个用户发送请求的时候
开始创建,当请求关闭的时候 Request就会消亡。
六.关于单例模式和多例模式
1.什么是单例模式和多例模式:
单例就是指所有的请求都用一个对象,比如Service层和Dao层; 而多例模式就是指每一次请求都用一个新的对象来处理 比如Action
2.为什么用单例模式和多例模式:
用单例模式是因为不用每一次请求都创建一个对象,浪费CPU和内存
用多例模式是为了防止并发问题
标准: 当对象在实际应用中状态会改变,则用多例模式,否则就用单例模式
3.单例模式的关键有两点:
用private修饰,不允许外部随意调用
get的方法是static的,由类名直接调用
SpringMvc中的Controller 默认是单例模式的,也就是说若有一个私有变量user,则这个user是共用的,也就是说如果有一个请求对这个user进行了修改,
别的请求也能够读取到这个修改的内容。
如果想将其改为多例模式,只需要将@Controller之前增加 @Scope(prototype)
单例模式的缺点:
访问量多的时候需要一个一个的等待,影响用户体验
七,关于懒加载
单例模式有三种形式:分别是懒汉式 饿汉式 双重锁的形式
懒加载其实就是懒汉式
指的是当第一次使用到这个属性的时候,才会给这个属性进行初始化,如果程序还没有运行到这个位置的时候 就不进行创建和初始化,
这样有利于节约资源,提高性能。
尤其是数据量比较大或者是图片比较多的时候,一下子把全部的数据都加载出来,服务器会承受相当大的压力
当采取树形结构则不同,点击父节点会显示出对应的子节点,当点击具体的子节点的时候,才会加载并显示出详细的信息。
八.关于JAVA的反射机制
1.反射机制的作用:
a. .class --> .java
b. 通过java的反射机制 访问java的属性,方法,以及构造方法。
2.sun公司提供的反射机制的类
a. java.lang.Class
b. java.lang.reflect.Constructor
c. java.lang.reflect.Method
d. java.lang.reflect.Medifier
e. java.lang.reflect.Field
3.具体功能的实现
第一种方式: Class.forName(Employee)
第二种方式: Employee.class
第三种方式: Employee ee = new Employee ()
ee.getClass()
九.堆内存和栈内存
1.栈内存: 栈内存的存取速度比较快 / 另外数据可以共享 / 缺点 :生命周期确定
2.堆内存: 堆内存可以动态分配内存 / 数据不可以共享 / 缺点:由于要动态分配内存,所以存取速度比较慢 /
存放所有 new() 出来的对象 / 并且分配出的内存是由 java 垃圾回收机制进行回收的。
十. 垃圾回收机制
System.gc()方法 / 不管JVM 请求的是哪一种垃圾回收的算法,都可以请求java的垃圾回收
但这个方法发起的请求仅仅是一个建议 / JVM 接收到这个请求以后并不是立即进行垃圾回收,而是对几个垃圾回收算法做了加权 /
使垃圾回收操作容易发生 / 或者提早发生 / 或者回收较多。
十一. 数据库设计的三大范式:
第一范式: 简单的说就是 原子性,自断不能再分割
1.每一列的属性都是不可再分的属性值,确保每一列的原子性
2.两列的属性相近或则一样的时候,尽量合并,确保不会产生冗余数据;
第二范式: 简单的说就是 完全依赖 不能部分依赖
1.确保每一行数据都只是做一件事情。 比如一个人订多个房间的时候就会产生多个订单编号的问题
第三范式: 简单的说就是 没有传递依赖
1.数据库的属性值不能存在传递关系,即每个属性和主键之间都存在直接关系而不是间接关系。
十二. Hibernate缓存分类:
一. Session缓存(也叫做事物缓存),它是Hibernate内置的缓存,不能卸载。
缓存范围:缓存只能被当前Session所调用,生命周期依赖Session的生命周期,当Session被关闭后,缓存也就结束其生命周期。
二. SessionFactory缓存(应用缓存) 使用第三方插件,可以卸载。
可以跨越Session存在,也可以被多个Session所共享。
缓存范围: 依赖于应用的生命周期,应用结束时,缓存也就结束了生命周期。
十四. ApplicationContext 和 BeanFoctroy
spring 提供了两种不同的容器: 一种是基本的BeanFactory 另外一种就是ApplicationContext
A. 二者的区别:
BeanFactory 负责加载Bean 实例化、 对Bean的管理、 Bean之间的维护、 以及对Bean生命周期的管理。
ApplicationContext 除了上述的功能以外,还提供了更完整的框架功能。
B. 二者在Bean的初始化方面也有很大的区别:
BeanFactory 在读取配置信息,创建Bean实例的时候,如果读取的配置信息正确,即便其他的配置信息存在错误,也不会影响程序的运行
ApplicationContext 则是要读取所有的xml文件,当配置信息没有错误的时候,就创建所有的Bean。因此当配置的bean比较多的时候,程序启动的
速度就会比较的慢
十五.设计模式
代理设计模式 是为了将代理业务和核心业务区分开
工厂模式 是为了解耦合
十六.Cookie 和 Session
1.Cookie数据存放在客户端上,Session数据存放在服务器上。
2.Cookie存放不是很安全,别人可以通过分析你在本地的Cookie,进行Cookie欺骗。考虑到安全性能应该用Session
3.Session存放在服务器上,当Session太多的时候,会降低你的服务器性能。考虑到性能方面,应该考虑使用Cookie
4.单个Cookie保存的数据不能超过4K。很多浏览器设置的都是一个站点最多保存20个Cookie
5.登陆的信息保存在Session中,其他信息如果需要保留,可以放在Cookie中
spring中bean的生命周期
十七.关于事务你知道多少?
1.事务分为声明式事务(spring 的aop方式)和编程式事务
2.如果对数据库进行多次操作,那么每一次执行都是一次事务,如果在操作在某一步没有在执行,或者出现异常而导致事务失败,
那么所有的事务都会被回滚。
3.java使用事务处理,首先要求数据库支持事务,如果是MySql数据库,就必要要保证表的类型为Innodb才会支持事务。
4.在api里面,可以设置事务自动提交的方式。setAutoCommit(false) 禁止自动提交事务。
十八.声明式事务和编程式事务
1.Spring支持声明式事务管理和编程式事务管理两种方式。
2.编程式事务: 采用的是TransactionTemplate 或者使用底层的PlatformTransactionManager,前者是Spring推荐使用的方式
3.声明式事务: 是建立在AOP方式之上的,是对方法进行的拦截,在目标方法执行之前,创建或者加入一个事务,根据方法执行的
情况来决定是提交或者回滚事务。
优点:是Spring提倡的非侵入式的开发方式,最大的优点就是不需要通过编码的方式进行事务的管理,不需要再业务逻辑中掺杂事务管理的代码。
是通过tx和aop名字空间的xml方式或者@Transactional注解的方式。
缺点:就是没有编程式事务管理方式那样可以细化到代码块级别,生命式事务管理方式只能作用到方法级别。
十九.事务隔离级别
Spring的所有事务管理策略类都继承自org.springframework.transaction.PlatformTransactionManager。
其中TransactionDefinition接口定义了一下特性:
TransactionDefinition.isolation_default :默认级别
TransactionDefinition.isolation_read_uncommited :会出现脏读,不可重复读,很少使用
TransactionDefinition.isolation_read_commited :防止脏读,推荐使用
TransactionDefinition.isolation_repeatable_read :防止脏读,不可重复读
TransactionDefinition.isolation_serializable :防止脏读,不可重复读和幻读,但是会严重影响数据库性能。不推荐使用
二十.事务传播行为
Spring的所有事务管理策略类都继承自org.springframework.transaction.PlatformTransactionManager。
其中TransactionDefinition接口定义了一下特性:
TransactionDefinition.propagation_required :如果存在当前事务就加入,如果不存在,则创建一个新的事务。
TransactionDefinition.propagation_required_new :
TransactionDefinition.propagation_required_supports :
TransactionDefinition.propagation_required_not_support :
二十一.事务超时
TransactionDefinition定义的事务超时就是在规定的时间内,事务没有完成操作就执行回滚的动作,超时时间用int值来表示,
默认是秒,如果底层数据事务没有设置超时时间,就是none。
二十二.乐观锁和悲观锁
1.乐观锁和悲观锁都是并发控制的主要技术手段
2.悲观锁是利用数据库自身的锁机制来实现的,因为只有数据库层提供的锁机制才能真正实现排他性。
3.悲观锁是在数据处理过程中,将数据处于锁定状态,比如for update语句
4.select for update 是基于行级锁的,就比如MySql INNODB默认的就是行级锁,
行级锁都是基于索引来实现的,但是如果一条sql语句用不到索引,就会表级锁把整张表锁住。
5.乐观锁一般是利用版本号来控制的,比如svn版本控制器。
优点与不足:
1.悲观锁是先取锁再访问,保证了数据处理的安全性,但是容易产生死锁,并且容易给数据库带来较大的负担。
2.乐观锁不能防范脏数据。
二十三.脏读、不可重复读、幻读
1.脏读: 是指一个事务正在访问数据,并且对数据进行了修改,但是还没有提交到数据库,此时另外一个事务也使用了这条数据。
2.不可重复读: 是指一个事务对同一条数据进行多次访问,在第一次访问以后,另外一条数据对这条数据进行了修改提交,
那么当第一个事务对这条数据进行第二次读取的时候,会出现和第一次数据读取结果不同的情况。
3.幻读:是指事务不是独立执行时发生的一种现象。一个事务正在对数据库表中的全部数据行进行修改操作,此时,另外一个事务
对此表进行了插入操作,这时第一个事务就会发现出现了原来没有发现的数据行,也就是记录数不一样了。
二十四.Zookeeper
一.背景:
网站架构逐渐从集中式转变为分布式。在这个转变过程中产生了分布式系统中数据一致性的问题。
二.概述:
是一个开放源码的分布式服务协调组件,是Google Chubby 的开源实现。是一个高性能的分布式数据一致性的解决方案。
三.工作过程:
在Zookeeper整个集群开始启动的时候,会选出一个leader,其他的则成为follower,并且和leader建立长连接,用于数据同步和转发请求。
当follower接收到client发送的请求的时候,将请求转发给leader,由leader处理该请求、并把数据同步给所有的follower。
0 0
- 知识随笔
- 随笔知识小记
- java 零碎知识随笔
- sql 知识 随笔
- Java零碎知识随笔
- 随笔知识小点总结
- 随笔知识1
- 随笔知识2
- Android知识随笔
- 知识总结、随笔:软件质量
- sql知识随笔(二)
- 2015.9.17 杂知识随笔
- 随笔记,一些WebService知识
- [知识随笔]HTML5哪些事?
- hibernate随笔(知识盲点)
- cocos2dx之小知识(随笔记录)
- 日常随笔—常用小知识
- Java入门知识准备(*随笔*)
- Android设计模式解析(一)
- 基于memcache的远程缓存工具类
- POI 设置单元格背景颜色
- dfs总结
- 设计原则之迪米特法则
- 知识随笔
- Aptana Studio 3快捷键
- Python连接MySQL数据库locahost无法连接的问题
- JavaScript学习之路--面向对象设计之创建对象(2)--原型对象详解
- jquery事件命名空间
- 搭积木
- Web网站的几个并发量级
- Sublime Text 3 配置浏览器预览路径并自定义快捷键
- 缓慢变化维