如何在sqlalchemy中配置故障切换

如何在sqlalchemy中配置故障切换,sqlalchemy,Sqlalchemy,sqlalchemy中有没有一种方法可以让开发人员指定多个mysql主机来尝试连接,如果第一个主机连接失败,它将自动故障切换到第二个主机?我在mysql上有一个解决方案,它使用了名为mysql Connector/Python的驱动程序,名为connect()函数可以接受名为故障转移的参数 希望将来能对一些人有所帮助 以下是参考链接: 这里是我的测试代码 global engine, session, metadata from sqlalchemy import create_engine

sqlalchemy中有没有一种方法可以让开发人员指定多个mysql主机来尝试连接,如果第一个主机连接失败,它将自动故障切换到第二个主机?

我在mysql上有一个解决方案,它使用了名为mysql Connector/Python的驱动程序,名为connect()函数可以接受名为故障转移的参数

希望将来能对一些人有所帮助

以下是参考链接:

这里是我的测试代码

global engine, session, metadata
from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm import scoped_session, sessionmaker
import mysql.connector
import time

SQLALCHEMY_DATABASE_URI='mysql+mysqlconnector://test:test2013@172.16.1.160:24801/test?charset=utf8'
SQLALCHEMY_POOL_SIZE=45
SQLALCHEMY_POOL_MAX_OVERFLOW=45

connect_args={
    'raise_on_warnings': True,
    'failover': [{
        'user': 'test',
        'password': 'test2013',
        'host': '172.16.1.160',
        'port': 24802,
        'database': 'test',
    }, {
        'user': 'test',
        'password': 'test2013',
        'host': '172.16.1.160',
        'port': 24803,
        'database': 'test',
    }]
}
engine = create_engine(SQLALCHEMY_DATABASE_URI,connect_args=connect_args,
                       pool_size=SQLALCHEMY_POOL_SIZE,
                       max_overflow=SQLALCHEMY_POOL_MAX_OVERFLOW)
session = scoped_session(sessionmaker(autocommit=False,
                                      autoflush=False,
                                      bind=engine))
metadata = MetaData(bind=engine)


base= 2000

while True:
    base+=1
    info = "info%s"%base
    print info
    results = session.execute("insert into t1 values(%s,'%s')"%(base,info))
    print results
    session.commit()
    time.sleep(10)

你找到答案了吗?没有,我最终用mysql代理解决了SQLAlchemy作者提出的问题