多客户端链接mysql,安全和效率问题?
遇到项目实际需求,特此来请教大家。(本人没啥经验)
项目:多个客户(客户端),用同一桌面软件(VC 或者 C#开发),去链接自己的数据库,进行读写(读少,写多!而且写可能会持续1s一次写,要2个小时的样子)。假定以200个客户端同时写的情况,来考虑。
首先遇到的就是安全问题:因为每一个客户都是对应不同的数据库,密码。所以:客户端软件所需的数据库名,密码,应该怎么处理?写在哪里?特别要注意的是,我们不希望用户得到这个密码,从而可以导出数据库(不能让用户反向出数据库)
我自己想到是通过 post到 php网站来处理,客户端post过来他的用户id和密码,在网站上验证,通过则写入数据库。可是又担心效率问题 (当然没测试),我个人感觉应该不如直接把数据库密码弄在本地。(或者谁有经验,能否说出效率会相差多大?)
有经验的朋友给些许提示,思路。谢谢了。
所以:客户端软件所需的数据库名,密码,应该怎么处理?写在哪里?还要考虑效率
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
没人回答。。。
建议不要直接连接数据库操作,修改为客户端通过POST将数据提交给PHP处理,为了提高效率,PHP接受到数据后,直接将数据丢进一个缓存队列,然后再单独开启一个服务进程监控缓存队列,及时进行入库落地操作。当然,你也可以自己实现一个长连接的服务端,自己实现一套缓存规则,会比PHP方式更高效
既然是多个客户端,又考虑安全性问题,那么可以考虑使用Token来解决。
对于效率问题,如果数量就几百个的话,那完全不用担心PHP的效率问题,但对于你这种持续时间较长的写入的话,还需要在服务端进行优化较好,比如考虑楼上说的消息队列来实现。
但如果在没有测试的情况下,就使用开发成本较高的队列的话我觉得不划算,还是先用比较原生的PHP压测一下,如果效率问题可以接受的话,那就如此。
如果真的存在效率问题,再对服务端进行优化也不迟。