我自己做了一个服务端,准备用mysql作为数据库。我自己的服务和mysql服务跑在不同电脑上面的。我的需求:
1、有N个客户端到我这里写数据,N范围5~20。我需要把数据写到mysql里面。2、有N个客户端到我这里查询数据,N范围5~50。3、有N个客户端到我这里更新数据,N范围5~50。
目前的一点点思路:
1、当查询数据的时候,异步处理。我做线程池,比如开10个线程,每个线程绑定一个mysql连接,当任务队列非空的时候,由空闲线程取出任务查询,然后将结果返回给客户端。2、插入操作该如何处理?虽然有N个客户端,但是每个客户端是单线程的。3、更新操作呢?有N个客户端,而且每个客户端是多线程到我这里更新的。

解决方案 »

  1.   

    根据要求,查询可以异步处理让客户端慢慢等。
    但是插入和更新必须是同步的,也就是我在mysql里面真的执行了,才能够告诉客户端OK。
      

  2.   

    首先你的服务端是长连接还是短连接
    就是你客户端是用socket连你服务端,还是用类似http的方式
      

  3.   

    我希望是长连接,开了以后可能几个月不关的。
    客户端应该是socket连接的吧?就是用C的API
      

  4.   

    如果是socket的话
    你服务端保持5000个连接没问题,其实每个连接就是一个独立的线程,你自己找一个framework,不要自己写
      

  5.   

    客户端到我自己的服务端我会写,用的corba。关键是我的服务端到mysql服务器不会写,因为之前没有用过mysql。不了解性能什么的
      

  6.   

    sigh, 思路应该很清晰地呀。
    无非就是在你的server程序里实现一个mysql连接池,不管来的是读、写(插入或更新)请求,先从池中获取连接,执行读写操作完以后,马上把连接释放到连接池里头。这个池还可以控制大小。至于你的socket通信如何实现,有很多现成的方案。