V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
glei
V2EX  ›  Python

nginx负载均衡后,数据库提交后的数据不能读取

  •  
  •   glei · 2013-05-09 13:32:06 +08:00 · 3509 次点击
    这是一个创建于 4245 天前的主题,其中的信息可能已经有所发展或是发生改变。
    数据库是mysql
    用nginx反代了三个端口127.0.0.1:8001 ~ 8003
    用户访问网站后在8001提交的数据,然后在8002读取,结果读不到。
    数据确实提交到数据库了,是因为不同进程所以读不到?
    如果只反代一个端口正常可以读到。
    有人知道原因吗。。。
    7 条回复    1970-01-01 08:00:00 +08:00
    est
        1
    est  
       2013-05-09 13:49:23 +08:00
    代码放出来吧。环境也没说清楚?python的啥框架?啥版本?
    glei
        2
    glei  
    OP
       2013-05-09 14:08:11 +08:00
    原因大概知道了,应该是多个不同的进程操作数据库后,相互数据是不可见的。我现在在查询前先commit一次,就可以取到当前最新的数据了。
    大家有什么好的方法吗?
    keakon
        3
    keakon  
       2013-05-09 14:18:23 +08:00
    每个事务在完成之前,其他事务都是不能看到这个事务里的改动的。

    所以应该是你写完数据后没提交=。=
    gamexg
        4
    gamexg  
       2013-05-09 14:28:01 +08:00
    我的网不稳定?刚刚回复打不开网页了。。。

    自己写的程序?
    每个请求结束时都必须提交一次事务的(有些框架会帮您做),不然很有可能你会突然发现关掉服务器再重新启动后之前的数据全部丢失了。。。

    关于事务可以看看这个。
    http://www.taobaodba.com/html/91_mysql_innodb_transaction_isolation_level.html
    gamexg
        5
    gamexg  
       2013-05-09 14:29:08 +08:00
    那个地址介绍并不是很详细,这里有个pg数据库的事务介绍
    http://www.pgsqldb.org/pgsqldoc-8.1c/transaction-iso.html
    glei
        6
    glei  
    OP
       2013-05-09 14:35:41 +08:00
    @keakon A插入数据的地方确实是commit了,因为是另外一个进程B的connection去读这个数据,所以应该是读了旧的数据,因为当前的这个connection不知道数据有变化。所以只有在查询前先commit一下。
    glei
        7
    glei  
    OP
       2013-05-09 14:45:55 +08:00
    改成
    提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别
    应该就可以了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2584 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:02 · PVG 19:02 · LAX 03:02 · JFK 06:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.