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

    作者:cuiyongchao007更新于: 2020-05-14 11:35:12

      架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(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中的所有对象一样,架构对象能访问控制列表,因此只有授权的用户才可以更改架构。

课课家教育

未登录