需要WCF服务作为数据访问器来操作MYSql数据库、请问怎样来解决很多客户端同时访问WCF服务的并发问题?

时间:2022-09-12 20:12:20
问题描述: 最近有个项目,就是说让服务器端采用WCF作为数据访问器来操作数据库,客户端不能直接连接数据库、看了一些WCF并发模型的文章、还是不懂像我这种情况:“ 需要很多客户端调用WCF服务获取数据库,万一同时获对一张表操作会不会有问题?”,望各位不吝赐教、本人水平有限、谢谢需要WCF服务作为数据访问器来操作MYSql数据库、请问怎样来解决很多客户端同时访问WCF服务的并发问题?

5 个解决方案

#1


同时对一张表操作,跟你用不用WCF没有任何关系.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.

#2


相反,如果使用了WCF,而同时还有其他客户端能够直接访问数据库(比如服务器上跑的其他程序),那你依然要在数据库里做文章
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关

#3


wcf是解决数据通信的,一个客户端和100个客户端都没问题。
你说的问题可以自己做数据锁定,表锁定,记录锁定等等。

#4


引用 1 楼 Z65443344 的回复:
同时对一张表操作,跟你用不用WCF没有任何关系.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.


引用 2 楼 Z65443344 的回复:
相反,如果使用了WCF,而同时还有其他客户端能够直接访问数据库(比如服务器上跑的其他程序),那你依然要在数据库里做文章
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关

谢谢二位的回答、是这样、我现在困扰的是,假设有10个客户端通过调用服务器的方法去操作数据库的同一个资源、
我想得到的效果是客户端之间互不影响且都有一个WCF客户端实例,就是同时让你这么多客户端去提出请求,WCF服务器端
也同时接受请求,这时候WCF服务器端需要做些什么才能达到这个效果。 如果是一个一个来处理客户端请求,肯定效率上太低了。

#5


侦听请求肯定是只能在一个线程来处理
接到请求后可以为每个用户动态开个线程去执行,或者用线程池.
对于资源,要加锁,保证同时只有1个线程访问.

#1


同时对一张表操作,跟你用不用WCF没有任何关系.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.

#2


相反,如果使用了WCF,而同时还有其他客户端能够直接访问数据库(比如服务器上跑的其他程序),那你依然要在数据库里做文章
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关

#3


wcf是解决数据通信的,一个客户端和100个客户端都没问题。
你说的问题可以自己做数据锁定,表锁定,记录锁定等等。

#4


引用 1 楼 Z65443344 的回复:
同时对一张表操作,跟你用不用WCF没有任何关系.
如果不用WCF,你只能去调用数据库里的存储过程,而用了WCF,而且确定所有客户端都访问WCF,没有直接访问数据库的,你可以在WCF多线程里给事务加锁,每次只能有一个线程去调用.


引用 2 楼 Z65443344 的回复:
相反,如果使用了WCF,而同时还有其他客户端能够直接访问数据库(比如服务器上跑的其他程序),那你依然要在数据库里做文章
WCF只不过起到"桥"的作用,转换了一下数据格式,不能从根本上解决脏数据的问题
想解决这个问题,你需要自己做逻辑,跟使用什么服务无关

谢谢二位的回答、是这样、我现在困扰的是,假设有10个客户端通过调用服务器的方法去操作数据库的同一个资源、
我想得到的效果是客户端之间互不影响且都有一个WCF客户端实例,就是同时让你这么多客户端去提出请求,WCF服务器端
也同时接受请求,这时候WCF服务器端需要做些什么才能达到这个效果。 如果是一个一个来处理客户端请求,肯定效率上太低了。

#5


侦听请求肯定是只能在一个线程来处理
接到请求后可以为每个用户动态开个线程去执行,或者用线程池.
对于资源,要加锁,保证同时只有1个线程访问.