• 2375阅读
  • 10回复

[提问]请教关于软件架构 [复制链接]

上一主题 下一主题
离线clickto
 

只看楼主 倒序阅读 楼主  发表于: 2020-06-29
由于之前一直做单机产品多一些,没怎么接触到网络数据这一块。现在接到一个项目,要求qt实现,传统的C/S模式,有一个总的MySql服务器,同事每个客户端还带有自己的本地数据库,sqlite型,客户端的数据是mysql服务器数据的子集,每个客户端的子集有差异,也有交集。
其中,客户端的操作会对数据进行怎增删改查,这些数据需要同步到服务器,同时由于客户端之间有交集,也需要将服务器的数据同步到每个用到的客户端。
没怎么做过这种需求复杂(对我来说)的项目,请问一下该怎么设计软件架构?是需要有个服务器软件么?
在线uidab

只看该作者 1楼 发表于: 2020-06-29
就是数据的同步问题。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线lemonzll

只看该作者 2楼 发表于: 2020-06-29
这种有两个方式,一种是直接通过网络远程连接控制mysql,这种很麻烦,不建议用,第二种是让做网页后台的弄个程序,由网页后台的操作mysql数据库,网页后台弄的程序提供个http接口,你只用对接http接口就行了,比如要读数据库内容,就访问个http网址,网站会返回个json数据,你再处理json就行了。
离线aaa2000

只看该作者 3楼 发表于: 2020-06-30
自己写一个简单的网络服务器,架构大致如下:
多个客户端 ---> 服务器 ---> Mysql
离线clickto

只看该作者 4楼 发表于: 2020-06-30
回 uidab 的帖子
uidab:就是数据的同步问题。 (2020-06-29 17:13) 

是啊,就是不知道这个数据同步具体怎么实现。
离线clickto

只看该作者 5楼 发表于: 2020-06-30
回 lemonzll 的帖子
lemonzll:这种有两个方式,一种是直接通过网络远程连接控制mysql,这种很麻烦,不建议用,第二种是让做网页后台的弄个程序,由网页后台的操作mysql数据库,网页后台弄的程序提供个http接口,你只用对接http接口就行了,比如要读数据库内容,就访问个http网址,网站会返回个json数据,你再处 .. (2020-06-29 17:34) 

客户端的同步呢?关键客户端在不断的更新数据,客户端之间又各有交集,没搞过,没经验,很头疼啊
离线clickto

只看该作者 6楼 发表于: 2020-06-30
回 aaa2000 的帖子
aaa2000:自己写一个简单的网络服务器,架构大致如下:
多个客户端 ---> 服务器 ---> Mysql (2020-06-30 09:26) 

目前初步是这样打算的,但是具体到客户端之间的同步的话,没有头绪。
离线XChinux

只看该作者 7楼 发表于: 2020-06-30
增加个消息发布、订阅库。数据产生变化,通过消息发布给订阅者。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
在线uidab

只看该作者 8楼 发表于: 2020-06-30
回 clickto 的帖子
clickto:是啊,就是不知道这个数据同步具体怎么实现。 (2020-06-30 10:10) 

加数据同步时间戳。
如果不想自己写太多可以用消息订阅/发布的方式,自己百度一下。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线levon

只看该作者 9楼 发表于: 2020-07-01
取决于你的网络架构,c、s之间如果是广域网, c、s可以采用采用http通讯,拉取和同步数据; 如果是局域网网。http或udp 都可以; 然后c,s两端的服务各自访问自己的数据库。
离线clickto

只看该作者 10楼 发表于: 2020-07-01
还没有使用过http相关的东西,慢慢尝试看看吧!
快速回复
限100 字节
 
上一个 下一个