怎么搭建一个跨国的系统架构。
有一个贸易相关的需求,就是国外负责下单,目前国内只是跟进单据(有可能国内也会开单)。国外可能不是一个国家,美国,跟加拿大,德国都有服务器。德国这边开了销售单据后,美国,加拿大是看不了的。但是无论 国外那个国家的服务器开的单据,国内这边的用户登录系统都可以看到。
国内的用户可以打开对应国家的销售订单,可以修改单据状态。 还有一个文件传输,这个怎么处理??还有网络问题?vpn 应该可以解决。但是这个系统怎么搭建呢?? 还有如果大陆 拿三个国家的业务数据对比,这个咋搞? 大家谈点自己的想法啊.....
------解决思路----------------------
给你两个建议:
1. 让你的公司先做一踏踏实实做一次简单的设计。先设置1、2个服务器在某地,然后让世界各地的用户注册自己的账号,认证,然后访问。关于上传文件的“问题”,随便学点编程的都会!
2. 你学点编程,而让你们公司的其他人、或者你身边的其它朋友去做瞎编需求的工作。如果你一直跟着做这种貌似高大上的“设计”,永远也不落地,结果往往是公司散伙、老板跑路。
------解决思路----------------------
如果让我设计的话,概念上,需要一个数据中心(hub),和一条消息总线(bus)。hub用来存储/集成所有数据,并托管bus,bus用来进行通知/数据传递/日志/审计等等数据流活动。
各地区(包括国内)的业务系统是对称的,或者说是同一架构,其都可以独立完成本地业务工作。包括用户界面(ui)和后台服务(service)两部分,ui当然就是和用户交互,读界面需要的数据,写界面提交的数据。service订阅bus,进行数据发送/接收/整合。
下单/修改时,ui通知service,或service轮询取得数据,发送给bus。hub订阅bus,将数据处理后保存,如果有数据改动不是由发起方进行的(比如国内改国外订单),那么将改动通过bus发送给对应地区的service,同步本地数据(可能涉及数据合并,无论如何,数据的最终一致状态由hub决定)。也由hub将所有其它地区的数据通过bus发送给国内的service。
国内业务系统的service订阅bus上所有其它地区的数据,同步到本地。一些大量数据的分析/聚合工作由hub完成,国内业务系统可以同步这部分数据。
文件传输对于企业系统,最好不要点对点传,应该使用离线模式,也就是先发送给hub,hub通知对应地区,对应地区再从hub取。
在实现上,如果你使用云的话,就是使用数据库服务、消息总线/消息队列服务、文件存储服务和后台计算服务。这些各家云供应商都有提供。如果要自行实现也可以,不过可能不如云方便和稳定。
如果不会用消息总线,那么web service也可以,web service可以看作是消息总线的劣化版本,在各个端点部署web service也可以实现功能,但是它缺少消息总线的持久化消息和分发的能力,可能需要自行实现。
系统中需要集成的数据都应该有唯一id,这类事情应该不需多说了。