企业级应用,持久层架构方案三(一主多从,读写分离上篇)

  这是企业级应用,持久层架构方案的第三篇。在上一篇:企业级应用,持久层架构方案二(双主同步高可用二)中。已经实现了双主同步高可用,解决了高可用的问题。还没有解决高性能问题,目前读写都是在主服务器上,会导致主服务器压力大,性能低。那么在这一篇中,来看一看如何通过读写分离,实现持久层的高性能访问。

1.架构图

2.安装从库

  2.1.hadoop003节点

    2.1.1.安装mysql

#第一步:通过yum在线安装
yum  install  mysql  mysql-server  mysql-devel

#第二步:启动mysql服务
/etc/init.d/mysqld start

##检查mysql运行状态状态
/etc/init.d/mysqld status

#第三步:通过脚本配置mysql
/usr/bin/mysql_secure_installation

#第四步:远程访问授权
mysql -uroot -p123456

grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option;

flush privileges;

#第五步:设置开机自动启动
chkconfig mysqld --list
chkconfig mysqld on

    2.1.2.编辑my.cnf

#编辑文件
vi /etc/my.cnf
------------------------------------------------------------
[mysqld]
server-id = 3                    #服务唯一表示id
slave-skip-errors = all                       #忽略所有复制产生的错误  

--------------------------------------------------------------

#重新启动服务
service mysqld restart

    2.1.3.同步配置

#登录mysql
mysql -uroot -p123456

mysql> change  master to
    ->  master_host=‘192.168.80.40‘,
    ->  master_user=‘rep‘,
    ->  master_password=‘123456‘,
    ->  master_log_file=‘mysql-bin.000003‘,
    ->  master_log_pos=106;
mysql> start  slave;         #启动同步

  2.2.hadoop004节点

    2.2.1.安装mysql

#第一步:通过yum在线安装
yum  install  mysql  mysql-server  mysql-devel

#第二步:启动mysql服务
/etc/init.d/mysqld start

##检查mysql运行状态状态
/etc/init.d/mysqld status

#第三步:通过脚本配置mysql
/usr/bin/mysql_secure_installation

#第四步:远程访问授权
mysql -uroot -p123456

grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option;

flush privileges;

#第五步:设置开机自动启动
chkconfig mysqld --list
chkconfig mysqld on

    2.2.2.编辑my.cnf

#编辑文件
vi /etc/my.cnf
------------------------------------------------------------
[mysqld]
server-id = 4                    #服务唯一表示id
slave-skip-errors = all                       #忽略所有复制产生的错误  

--------------------------------------------------------------

#重新启动服务
service mysqld restart

    2.2.3.同步配置

#登录mysql
mysql -uroot -p123456

mysql> change  master to
    ->  master_host=‘192.168.80.40‘,
    ->  master_user=‘rep‘,
    ->  master_password=‘123456‘,
    ->  master_log_file=‘mysql-bin.000003‘,
    ->  master_log_pos=800;
mysql> start  slave;         #启动同步

3.综合测试案例

说明:在主库A创建数据库oa,并进行创建数据库表,添加数据等操作。确认可以自动同步到从库C和D。

#创建数据库
create database oa;

#使用test数据库
use oa;

#创建一张表
create table t_user(id bigint  primary key auto_increment,name varchar(20))ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

#插入数据
insert t_user(name) values(‘zhangs‘);

#查询数据
select * from t_user;

原文地址:https://www.cnblogs.com/itall/p/11055023.html

时间: 2024-10-30 23:44:22

企业级应用,持久层架构方案三(一主多从,读写分离上篇)的相关文章

企业级应用,持久层架构方案二(双主同步高可用二)

这是企业级应用,持久层架构方案的第二篇.在上一篇:企业级应用,持久层架构方案一(双主同步高可用)中.已经准备好了两台mysql数据库节点:hadoop001.hadoop002.两个节点互为主备,实现舒双主同步高可用,如何叫做双主同步高可用呢?其实要分为两个问题:一个是双主同步,互为主备:另一个是高可用.那么在上一篇中已经实现了双主互为主备,本篇通过keepalived虚拟ip实现高可用: 1.安装keepalived 1.1.hadoop001节点 #安装keepalived yum inst

vb.net版机房收费系统——教你七层架构(三)—外观模式

上次我们看到了D层是怎样运作的,现在,我简单演示一下我的外观和B层是如何和U层和D层打交道的. 首先我跟大家说的是我的外观是按照界面功能划分的,粒度有点小,大家在做的时候,记得外观有几个就行了,但是不能没有,U层不能直接调用B层,这样就会增加U层和B层的耦合: '************************** '文 件 名:UserInfo_BLL '命名空间:BLL '内 容: '功 能: '文件关系: '作 者:邱慕夏 '小 组:邱慕夏 '生成日期:2014-06-07 17:36:4

Spring Boot 入门之持久层篇(三)

原文地址:Spring Boot 入门之持久层篇(三) 博客地址:http://www.extlight.com 一.前言 上一篇<Spring Boot 入门之 Web 篇(二)>介绍了 Spring Boot 的 Web 开发相关的内容,项目的开发离不开数据,因此本篇开始介绍持久层相关的知识. 二.整合 JdbcTemplate 2.1 添加依赖 <dependency> <groupId>org.springframework.boot</groupId&g

mysql高可用架构方案之一(keepalived+主主双活)

Mysql双主双活+keepalived实现高可用 目录 1.前言... 4 2.方案... 4 2.1.环境及软件... 4 2.2.IP规划... 4 2.3.架构图... 4 3.安装设置MYSQL半同步... 5 4.Keepalived实现MYSQL的高可用... 11 1.前言 最近研究了下高可用的东西,这里总结一下mysql主主双活的架构方案,整体上提高服务的高可用性,出现问题也不需要手动切换,提高整体的维护效率.确定改造的话,只需要让他们的程序中使用vip地址就可以,实现起来比较

model ,orm,dao,service,持久层 ,mvc 这些名词在java中的概念?

这些概念不针对某个特定的编程语言. view层:结合control层,显示前台页面. control层:业务模块流程控制,调用service层接口. service层:业务操作实现类,调用dao层接口. dao层:数据业务处理,持久化操作 model层:pojo,OR maping,持久层 借别人一张图,希望题主能理清楚层间关系:  企业应用开发中,可以将系统分为三层:表示层.业务层.持久层,就是所谓的三层架构.三层各有各的架构模式.其中表示层常用架构就是MVC,业务层常用架构模式分为事务脚本模

基于 Spring 和 iBATIS 的动态可更新多数据源持久层

前言 我们时常会遇到一些 web 项目,需要从不同的数据源中抓取数据来进行分析,而这些数据源是有可能变化的,需要用户来进行动态的维护和添加.可是,大多数的 web 程序使用了应用服务器或者容器中间件来管理数据源的生命周期,因此数据源的变化自然不能够独立于程序,而需要由专业人士去进行维护,必要时还需要重新发布程序来适应数据源的变化,而且数据源的个数.数据库的类型也都会有所限制. 那么怎样才可以突破以上这些局限,彻底实现由用户远程对数据源进行维护和管理的需求呢?本文提出了一个有效的解决方案,该方案的

大型网站架构演进(5)数据库读写分离

在使用缓存后,使大部分的数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(包括未命中缓存的,和缓存过期的)和全部的写操作需要访问数据库,当网站的访问量继续增加后,数据库会因为负载压力过高导致成为网站的性能瓶颈. 目前大部分的主流数据库都提供了主从热血功能,通过配置两台数据库的主从关系,可以将一台数据库服务器的数据同步到另一台服务器上,网站利用数据库的这一功能,可以实现数据库的读写分离,从而改善数据库的负载压力. 应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据

jeesz分布式架构之 mycat实现mysql读写分离实践

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] mycat是一个的数据库中间件,基于阿里开源的cobar产品而研发,由几个有志之士的牛人共同完成并开源.提供高可用性数据分片集群,自动故障切换,高可用性 ,支持读写分离,支持MySQL双主多从,以及一主多从的模式 ,支持全局表,数据自动分片到多个节点,用于高效表关联查询 ,支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询多平台支持,部署和实施简单. 今天来实践下用mycat实现mysql的读写分离,1.配置mys

Spring+MyBatis实现数据库读写分离方案

方案1通过MyBatis配置文件创建读写分离两个DataSource,每个SqlSessionFactoryBean对象的mapperLocations属性制定两个读写数据源的配置文件.将所有读的操作配置在读文件中,所有写的操作配置在写文件中. 优点:实现简单缺点:维护麻烦,需要对原有的xml文件进行重新修改,不支持多读,不易扩展实现方式 <bean id="abstractDataSource" abstract="true" class="com