zoukankan      html  css  js  c++  java
  • 02使用java脚本向Pxc集群写入数据

    使用java脚本向Pxc集群写入数据

    批量写入pxc集群程序

    导入mysql驱动包

    # 批量插入数据的java脚本

    package pxc_demo;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    
    import com.mysql.jdbc.Driver;
    
    
    public class Test {
    
        public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            DriverManager.registerDriver(new Driver());
            String url="jdbc:mysql://10.11.0.210:3306/chinasoft";
            String username="root";
            String password="root";
            Connection con = DriverManager.getConnection(url, username, password);
            String sql = "INSERT INTO students(name) values(?)";
            PreparedStatement pst = con.prepareStatement(sql);
            while(true) {
                for(int i=1;i<=10;i++) {
                    pst.setString(1, "Test");
                    pst.execute();
                }
                Thread.sleep(1000);
            }
        }
    
    }

    在死循环插入数据的时候查询集群的状态,可以看到集群能够很迅速的处理请求,改变批量插入的大小为100,也能正常处理

    流量控制

    流量控制的相关信息

    向pxc集群中添加一个空的新节点,就需要全量同步数据到新节点,如果数据库很大,同步队列会触发流量控制,整个个集群就不可用直到集群同步完成

    业务就会中断,正确的做法应该是拷贝数据到新节点

    如何避免流控,提升硬件性能,网络带宽,网卡性能

    增加线程数

    Non_primary脑裂:比如pxc集群部署在a和b两个机房,如果中间线路被挖断, a机房写入数据,查询的时候分配到了b机房,就会出现数据不一致

    Pxc为了避免这种情况发生,一个机房当数量少于半数会自动宕机,超过半数就会组成新的集群,机房不要部署相同数量的节点

     

  • 相关阅读:
    php多进程和多线程的比较
    设计模式学习系列——建造者模式
    设计模式学习系列——单例模式
    设计模式学习系列——前言
    设计模式学习系列——工厂模式
    记一次给nginx的web服务器目录加软链接
    某公司后端开发工程师面试题学习
    2010年腾讯前端面试题学习(jquery,html,css部分)
    2010年腾讯前端面试题学习(js部分)
    winfrom 隐藏任务栏(win7)
  • 原文地址:https://www.cnblogs.com/reblue520/p/10338465.html
Copyright © 2011-2022 走看看