数据库的扩展有两种:
第一是横向扩展:Scale out,增加服务器(增加处理节点提供整体处理能力)
第二是水平扩展:Scale up,升级现有服务器配置(提高节点处理能力,如增加内存、cpu等)
集群主要是指数据库的横向扩展
其中在集群中最主要的技术是数据的复制:replication
mysql的复制:
主要解决几个问题:数据的分布,负载均衡,备份,高可用性和容错
主要的过程分为三步:
首先是在master在提交事务之前会写日志,将操作数据库的操作记录日志
第二是slave会起一个io线程获取master里的日志(此时master也会起io线程)写入slave的中继日志
第三是slave起sql线程将日志读取事件并执行,完成复制
其中,slave也是可以作为其他数据库的master,此时需要在read之前将写slave自己的二进制日志
(如果你设置log_slave_updates,slave可以是其它slave的master,从而扩散master的更新)
数据库
垂直切分:根据业务分不同模块,相近的功能模块的放在相同的数据库里
水平切分:基于一张表里有大数据量时,可以将数据分到不同的数据表里,这样在写和读以及索引功能有效提高
主从分离:主写从读,MySQL Proxy机制实现读写分离
集群,群节点的可用性探测机制 ,或者是可用性的数据推送机制
水平切分之后,通过分表的路由规则,例如hash算法分表,可以找到逻辑上的数据库,到
物理上数据库之前还需要使用负载均衡作用,例如,写操作对均衡到master数据库,
读操作会均衡到slave数据库中,均衡有两种:随机负载均衡和加权负载均衡
数据库连接池负责分配、管理和释放数据库连接
连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,
而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。
而连接的建立、断开都由连接池自身来管理。
cobar client 轻量级分布式数据访问层,基于ibatis和spring框架实现
支持垂直和水平数据切分数据库集群的访问
关于cobarclient的使用主要是在ibatis.xml中配置,
首先配置基本的使用cobar的说明:
使得应用程序依赖于cobaeclient的cobarSqlMapClientTemplate以及使用multipleDataSourcesTransactionManager
其次是关于数据分区多数据源的依赖管理说明:
主要是dataSources
在这里主要是配置数据源信息,其中包括唯一标关于识,涉及到启用路由协议是读写分离的数据库标识,再一个是关于主要目标数据源和备用数据源与目标数据源一致
第三个配置是数据路由相关配置,主要是指定路由协议的路径和文件名
具体说明:
http://www.open-open.com/doc/view/64671baa9d6a4f30849e1b1c6c0b3ba8
相关推荐
在本项目中,"springboot+mysql+ibatis完整整合案例"是一个针对初学者的教程,旨在演示如何将Spring Boot、MySQL数据库和MyBatis框架有效地集成在一起,创建一个可运行的应用程序。以下是对这些技术及其整合过程的...
本教程将深入探讨如何将Spring、Ibatis框架与MySQL集群集成,以实现高效、可靠的数据库操作。 首先,让我们了解Spring和Ibatis。Spring是一个全面的Java应用开发框架,它提供了依赖注入、面向切面编程、事务管理等...
velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例
"Struts2+Spring+Ibatis+MySQL" 是一个经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。这个组合集成了强大的MVC(Model-View-Controller)框架Struts2、依赖注入与面向切面编程的Spring框架、...
Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...
在这个案例中,我们关注的是一个基于Mysql、Struts1.2和Ibatis的集成应用。下面,我们将深入探讨这些技术以及如何将它们结合在一起创建一个功能完备的应用。 1. **MySQL数据库**: MySQL是一个开源的关系型数据库...
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"Maven搭建SpringMVC+Spring+Ibatis"的组合则提供了一种强大的解决方案。本文将深入探讨这些技术及其集成,帮助你理解和掌握如何利用它们来构建现代化的Java ...
很好的spring+ibatis事务的配置文档.
"mysql+struts+ibatis(2)"的组合就是一种经典的Java Web开发模式,它涉及到数据库管理、MVC框架以及持久层处理等多个关键领域。以下是关于这个组合的详细知识点: 1. **MySQL**:MySQL是一个开源、免费的关系型...
struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例 struts2 + spring + ibatis 实例
MySQL、Struts和iBatis是Java开发中常用的三大技术,它们在Web应用程序开发中扮演着重要的角色。这个“Mysql+Struts+Ibatis的demo”是一个综合性的实例,展示了如何将这三者结合起来构建一个功能完善的后端系统。 ...
在Java Web开发中,Spring、Struts2和iBatis是三个非常重要的框架,它们各自在不同的层面上提供了强大的功能。Spring是一个全面的后端应用框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能;Struts...
MySQL+iBATIS是一个经典的Java Web开发中的数据访问技术组合,尤其适合初学者入门学习。MySQL是一个开源的关系型数据库管理系统,而iBATIS则是一个优秀的持久层框架,它简化了数据库与Java应用程序之间的交互。 ...
综上所述,"Flex (Mysql+iBATIS登陆)"项目涉及到Flex客户端的UI设计和事件处理,服务器端的iBATIS SQL映射,以及MySQL数据库的使用,通过这些技术的整合,实现了一个完整的用户登录系统。通过深入理解每个环节,...
一个简单的spring+struts+ibatis整合的实例,实现了用户登录,用户登录成功则显示欢迎信息,失败则显示用户名或密码错误,该实例非常简单基础,特别适合新人学习,工程包含了必要的资源包,部署...数据库使用的是mysql
Struts、Spring 和 iBATIS 是Java开发领域中三大经典的开源框架,它们组合起来可以构建出高效、可维护的企业级Web应用。这个例子是利用这三个框架实现了一个基础的增删改查(CRUD)功能,涵盖了数据库操作、业务逻辑...
Struts2、Spring3和iBATIS是Java Web开发中常用的三大框架,它们各自负责不同的职责,协同工作可以构建出高效、松耦合的Web应用。在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何...
在Spring+Struts+ibatis这种经典的Java Web开发框架组合中,主要涉及到三层架构:表现层(Action)、业务逻辑层(Service)和数据访问层(DAO)。这些组件协同工作,实现了应用程序的功能。以下是对各部分的详细解释...
Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...
JSF+Spring+Ibatis示例,对学习JAVA企业应用开发有巨大的帮助!