C\S服务端如何从(获取方式)管理员处获取指定命令呢????????

梦里开天 2010-02-05 02:13:18
现在的解决方式是:
服务器扫描数据库,查找是否有命令要下载,有则取出数据按照一定要求发给指定客户端。数据库的下发命令是由管理平台控制具体字段。

不知道这种方式是不是比较主流的?
服务器频繁读取数据库是否影响性能,另外实时性也不能得到保证,现在是10秒钟扫描一次数据库。
大家不知都是如何做的呢?有什么想法、建议、意见大家来交流一下!
...全文
117 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
梦里开天 2010-03-12
  • 打赏
  • 举报
回复
数据库可行
tcpip似乎效力和效果好一些吧
MicroSoftor 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ggbb190 的回复:]
引用 1 楼 cchvsgame 的回复:
你的是非主流。
好的应该是客户端与服务端通过tcp/ip协议建立连接。每一方有消息主动发送,另一方可以即时响应,且不消耗资源。 tcp/ip的连接windows下最好的是完成端口,如果连接很少,可以直接用c#的类库也不错

问题你理解错了,我问的是如何把命令告诉服务器,管理人员不能总在服务器边上等着啊!!!
[/Quote]
我觉得通过这种命令监听的方式可行啊。需要像目前的每隔10s扫描一次数据库么?
梦里开天 2010-02-07
  • 打赏
  • 举报
回复
难道牛人都领了年终奖回家过年了?
ourola 2010-02-07
  • 打赏
  • 举报
回复
WCF不错.我觉得也应该是从架构来考虑问题.
梦里开天 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 soaringbird 的回复:]
如果是sql server 2005/2008,可以用数据库通知服务,就不用服务器程序定时扫描数据库了。
[/Quote]
谢谢
现在用的2000,2005以上好像提供了很多新功能,包括存储过程、分页等效率提高了。
学习一下数据库通知服务。
梦里开天 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sp1234 的回复:]
你提的问题完全从数据库出发来考虑c/s系统设计,我觉得我很难从你这个思考方法去设计这类商品化系统。

如果你不得不从数据库表之类的东西开始去考虑系统架构设计,那么就直接实现即可。对于真正从对象服务器的角度(而不是数据库服务器的角度)去架构c/s系统来说,“避免额外读取数据库”并不是因为性能原因,而是出发点就不应该假设有或者没有数据库。例如我们考虑IM产品支持几万个客户端即时通讯,那么一个信息从A发送到系统之后就在系统服务中发送到B,在考虑直截了当地实现业务需求的第一个层面时跟数据库没有关系(信息不需要落地)。考虑数据库只是用来做备份,既扩展出备份、续传功能的第二个层面才考虑。
[/Quote]
那么我的管理平台对指定终端下发的命令,是以一种和终端平级的客户端存在的?
相当于我的管理平台中的下发命令部分也是客户端?做成类似与qq的那种??
梦里开天 2010-02-07
  • 打赏
  • 举报
回复


系统如图
现在所有服务器对终端的操作不在服务端进行操作。
所以当时就设计成服务器与管理平台无关,但是下发的命令就只想到用数据库作为中介。
一般情况该如何做呢?
跨进程?线程?真的不了解了,还望指教。
  • 打赏
  • 举报
回复
sql server 2005/2008支持数据依赖,当指定表内容发生改变时会发出事件
你可在这个事件里将数据发送给客户端
流程:管理平台->特定字段->依赖变化->发给客户端
好处:省下计时器,避免频繁的数据库访问

每次看到楼上神人的文字,就不由得心生恐惧,往往简单的事情,让他整一些是似而非的概念就变得复杂了
呵呵
feile922 2010-02-07
  • 打赏
  • 举报
回复
同意
  • 打赏
  • 举报
回复
你提的问题完全从数据库出发来考虑c/s系统设计,我觉得我很难从你这个思考方法去设计这类商品化系统。

如果你不得不从数据库表之类的东西开始去考虑系统架构设计,那么就直接实现即可。对于真正从对象服务器的角度(而不是数据库服务器的角度)去架构c/s系统来说,“避免额外读取数据库”并不是因为性能原因,而是出发点就不应该假设有或者没有数据库。例如我们考虑IM产品支持几万个客户端即时通讯,那么一个信息从A发送到系统之后就在系统服务中发送到B,在考虑直截了当地实现业务需求的第一个层面时跟数据库没有关系(信息不需要落地)。考虑数据库只是用来做备份,既扩展出备份、续传功能的第二个层面才考虑。
soaringbird 2010-02-07
  • 打赏
  • 举报
回复
如果是sql server 2005/2008,可以用数据库通知服务,就不用服务器程序定时扫描数据库了。
  • 打赏
  • 举报
回复
对于什么“扫描数据库”不置可否。如果你不得不如此,或者能力所限只能想到这样,那么也只能这样。如果不是,那么问题就出在系统设计上。可是你的问题中没有提供系统设计的环境,你描述的环境似乎是“只能想到这样”,那么也就没有什么好说的了。

这是一个系统设计问题,你没有提出问题,也就没有回答。
梦里开天 2010-02-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 microsoftor 的回复:]

我觉得通过这种命令监听的方式可行啊。需要像目前的每隔10s扫描一次数据库么?
[/Quote]
10秒是比较能够快速响应,是不是有其他方法呢?
梦里开天 2010-02-06
  • 打赏
  • 举报
回复
aaaaaaa 怎么没人啊
梦里开天 2010-02-05
  • 打赏
  • 举报
回复
都说晚上人多
梦里开天 2010-02-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cchvsgame 的回复:]
你的是非主流。
好的应该是客户端与服务端通过tcp/ip协议建立连接。每一方有消息主动发送,另一方可以即时响应,且不消耗资源。 tcp/ip的连接windows下最好的是完成端口,如果连接很少,可以直接用c#的类库也不错
[/Quote]
问题你理解错了,我问的是如何把命令告诉服务器,管理人员不能总在服务器边上等着啊!!!
cchvsgame 2010-02-05
  • 打赏
  • 举报
回复
你的是非主流。
好的应该是客户端与服务端通过tcp/ip协议建立连接。每一方有消息主动发送,另一方可以即时响应,且不消耗资源。 tcp/ip的连接windows下最好的是完成端口,如果连接很少,可以直接用c#的类库也不错

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧