下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

数据库技术:数据库学习之十四--读写分离 Atlas架构

作者:cuiyongchao007     来源: 博客园点击数:1010发布时间: 2020-05-14 11:35:20

标签: MySQL软件架构数据库

  架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(ADL)用于描述软件的体系架构。现在已有多种架构描述语言,如Wright(由卡内基梅隆大学开发),Acme(由卡内基梅隆大学开发),C2(由UCI开发),Darwin(由伦敦帝国学院开发)。ADL的基本构成包括组件、连接器和配置。

  十四、读写分离Atlas架构

  1、安装软件

  rpm-ivhAtlas-2.2.1.el6.x86_64.rpm

  2、修改配置

  cd/usr/local/MySQL-proxy/

  vim/usr/local/mysql-proxy/conf/test.cnf

  [mysql-proxy]

  admin-username=user

  admin-password=pwd

  proxy-backend-addresses=10.0.0.55:3306

  proxy-read-only-backend-addresses=10.0.0.51:3306,10.0.0.52:3306

  pwds=repl:3yb5jEku5h4=,mha:O2jBXONX098=

  daemon=true

  keepalive=true

  event-threads=8

  log-level=message

  log-path=/usr/local/mysql-proxy/log

  sql-log=ON

  proxy-address=0.0.0.0:33060

  admin-address=0.0.0.0:2345

  charset=utf8

  /usr/local/mysql-proxy/bin/encrypt123---->制作加密密码

  3、启动atlas

  /usr/local/mysql-proxy/bin/mysql-proxydteststart

  PS-ef|grepproxy

  4、测试

  测试读写分离:

  读的测试

  mysql-uroot-p123-h10.0.0.53-P33060

  showvariableslike'server_id';

  写操作测试:

  设置两个从节点只读

  setglobalread_only=1;

  连接测试

  mysql-umha-pmha-h10.0.0.53-P33060

  createdatabasedb1;

  5、管理atlas

  连接管理接口:

  mysql-uuser-ppwd-h127.0.0.1-P2345

  打印帮助:

  mysql>select*fromhelp;查看帮助命令

  select*frombackends;查看读写节点

  动态添加删除节点:

  REMOVEBACKEND3;

  ADDSLAVE10.0.0.53:3306;

  SAVECONFIG;(配置文件中自动去除已经被删除的或者添加该节点)

  6、扩展——atlas自动分表

  school.stu1000w

  idname

  stu_0stu_1stu_2stu_3stu_4

  以上分表方式,存数据非常均匀,取数据不均与,因为要考虑业务需求

  如果业务查询热点数据集中在id是1-200w这些数据,那么读取就不均匀

  取模分表

  n/5取余数(0,1,2,3,4)

  (1)如果是0则分到stu_0

  (2)如果是1则分到stu_1

  (3)如果是2则分到stu_2

  (4)如果是3则分到stu_3

  (5)如果是4则分到stu_4

  取余数

  配置文件

  vim/usr/local/mysql-proxy/conf/test.cnf

  tables=school.stu.id.5

  重启atlas

  (主库)手工创建,分表后的库和表,分别为定义的school和stu_0stu_1stu_2stu_3stu_4

  createdatabaseschool;

  useschool

  createtablestu_0(idint,namevarchar(20));

  createtablestu_1(idint,namevarchar(20));

  createtablestu_2(idint,namevarchar(20));

  createtablestu_3(idint,namevarchar(20));

  createtablestu_4(idint,namevarchar(20));

  测试:

  insertintostuvalues(3,'wang5');

  insertintostuvalues(2,'li4');

  insertintostuvalues(1,'zhang3');

  insertintostuvalues(4,'m6');

  insertintostuvalues(5,'zou7');

  commit;

  select*fromstu_01

  或者select*fromstuwhereid=01

  架构是对存储在ActiveDirectory中的对象类别和属性的描述。对于每一个对象类别来说,该架构定义了对象类必须具有的属性,它也可以有附加的属性,并且该对象可以是它的父对象。

  可以动态更新的ActiveDirectory架构。应用程序可以使用新的属性和类扩展该架构,并能立刻使用该扩展。通过在ActiveDirectory中创建或修改存储在ActiveDirectory中的架构对象来完成架构的更新。与ActiveDirectory中的所有对象一样,架构对象能访问控制列表,因此只有授权的用户才可以更改架构。

赞(10)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程