有200左右客户端,需要不停的向服务器提交数据,由于是金融方面的系统,所以对数据的正确性要求比较高(因为都是钱啊~!~)
为了防止数据提交出错,所以目前的设计是先在客户端保存数据,保存成功后再提交服务器,提交成功,就将本地数据删除。有时服务器对数据进行了修改,修改后发送消息,客户端就将修改的数据重新下载下来
目前设计大概就是这样,但是在效率上有点影响,想问一下有什么解决方案
tcp通信。
网络开发,c/s就可以了。
客户端,客户端存在哪里呢?文件?xml?还是客户端也有数据库?
客户端保存没有必要吧,服务端做还日志就可以了。定时刷新,或者异步。
股票行情软件也是实时的,也不用客户端保存什么数据吧。
提交失败了,就提示一下用户,让用户决定是继续提交还是进行其他业务。进行其他业务,当前提交的数据肯定是抛弃了,不用管它了。
我看见你说"客户端数据库是必须存在的,要不服务器数据库数据处理太频繁" 彻底被你雷倒了, 别说才区区200客户端, 就是2000客户端, 也不算多, 数据库服务器怎么可能连这一点压力都承受不了? 那还叫数据库服务器吗? 不要告诉我你就是用一台配置很烂的破机器当服务器, 那也别搞金融了......
明确地告诉你, 客户端不需要临时数据库, 不管是国外还是什么, 那只是网络通讯代价较大, 与数据库服务器毫无关系,
不能这么设计,客户端数据是不需要的.
"防止数据提交出错"----提交出错就让用户再次提交,这不是什么大问题。
服务器端、客户端两边保留数据,很可能因为各种原因导致数据不一致。当数据不一致时,你以谁的数据为准呢?
可能出错地方:
1. 客户端保存数据,成功,再提交服务器,提交失败。
2. 以上1成功,服务器端处理"提交的数据"失败。
3. 以上1成功,删除本地数据失败。
4. 服务器对数据进行修改,成功,发送消息给客户端,失败。
5.以上4成功,客户端下载修改后数据,失败。
你这种设计是自寻烦恼。还不如就服务器端有数据,一切以服务器端为准。
"客户端数据库是必须存在的,要不服务器数据库数据处理太频繁" 这句话也把我雷倒了。你有客户端数据库,请问服务器端数据库可以少做什么?还不是一样做同样多的事情。