在 MOPCON 2017 的 Unconference「MySQL to NoSQL & Search Engine」

来源:转载


这是在介绍noplay/python-mysql-replication
这个软体,我在示範时用的 python script 有增加blocking
参数让他保持一直读取MySQL
replication stream:


from pymysqlreplication import BinLogStreamReader
mysql_settings = {'host': '127.0.0.1', 'port': 3306, 'user': 'root', 'passwd': ''}
stream = BinLogStreamReader(connection_settings = mysql_settings, server_id=100, blocking=True)
for binlogevent in stream:
binlogevent.dump()
stream.close()


利用这样的工具可以做很多事情,像是当post
表格更新时自动更新 search engine,并且清空memcached
内的资料。这可以避免使用 library 时有可能会漏掉忘记做 (因为有些程式不用 library 处理),可靠度比较高。


另外一方面 replication protocol 本身就有考虑重连的问题,重新接上时是可以从上一次处理完的资料继续处理 (只要不要隔太久),这让写应用的人不需要用太複杂的方式确保他不会漏掉。


分享给朋友:
您可能感兴趣的文章:
随机阅读: