几十套业务系统集中统一授权管理、几十万账户同步多系统实现经验分享
2015-06-03 14:25 通用C#系统架构 阅读(5973) 评论(3) 编辑 收藏 举报由于这几年互联网电商的快速崛起,快递行业也进入了高速发展的绝好成长期。随着全社会强劲需求快递公司业绩年年攀新高。快速发展的快递公司需要有强大的IT信息系统,硬件设备基本上款到了货也可以到了,但是软件系统就不是那么简单了,需要长期的改进测试维护完善才能平稳运行。
公司有几十套业务系统需要快速开发、开发队伍的建设、软件系统的建设、基础平台的建设都堆在了一起,由于用了成熟的通用快速开发平台,所有的用户都能集中统一授权管理、所有的业务系统都有统一的管理后台配置管理,几乎很多开发精力都放在业务模块的开发上就可以了,通用部分可以节约很多精力,减少重复投入。
我们大致用了2年时间就把公司的核心业务系统重新构造了一遍,全部平稳上线成功。一个公司的核心信息系统甚至是公司的主要资产,也是评估上市竞争力的核心资产。安全稳定可控的信息系统是一个公司平稳运行、快速成长的基本根基。
由于全国各地有10-30多万用户在线操作,还有各种网络环境,网络不稳定等因素,所以需要能支持离线作业,数据下载上传等处理优化。 几十套业务系统有序、统一,需要一个强大的后台管理工具、集中配置权限、支持c\s, b\s系统之间的单点登录等等。
虽然说说是很简单,但是足足耗费了2年时间才真正稳定成熟、感觉这2年时间没浪费。公司耗费了巨大的人力、物力、财力,没有让公司的项目失败,按计划、有条有理的完成了,还是付出了艰苦的努力。接着可以放松几年了,学习学习新技术,完善完善细节就可以了。
开发一套庞大的软件系统很累,但是后续改进维护就容易了、不用天天加班了,接近2年全部的精力都投入在这个项目了,经常晚上加班到11-12点是经常的事情,还有周末、节假日的时间,大多都在处理这些。其实技术上也不是有多少艰难,就是数据量大了需要有很硬的功夫,能优化每个细节,毕竟每天有30多万人在用,经常在线的用户就有10来万人。业务数据量就更庞大,我主要负责的基础数据部分,相对数据量还少一些,压力小一些。
专业从事软件编成事业也有15年时间了, 有这么庞大的系统整合亲自操刀、并有全国各地这么多人天天用,而且往后还要用很多年,甚至10年以上,也有一种满足感、成就感产生。生命没浪费。
同步几十万用户到不同的信息系统中的接口方法参考如下,往往几十万数据获取时接口超时,返回信息过多,接口调用超时,数据库连接超时等等,分批次获取数据效率就会高很多了。
公司数据、用户数据的基础数据获取所有数据的方法、同步初始数据的方法、以下方法只能在内网里调用
方法一
http://jirigala.com.cn/WebApiV46/API/Organize/GetIds
获取所有公司的Id主键列表
http://jirigala.com.cn/WebApiV46/API/Organize/GetObject?Id=xxxx
获取某个id的公司的json序列化信息
http://jirigala.com.cn/WebApiV46/API/User/GetListByCompany?CompanyId=xxx
可以按某个公司获取这个公司下的所有用户,这样接口不会超时一次返回的数据不会太多
方法二
// 用户数据量不大的,也可以用下面的方法进行用户数据同步
http://jirigala.com.cn/WebApiV46/API/User/GetIds
获取所有用户的Id主键列表
http://jirigala.com.cn/WebApiV46/API/User/GetObject?Id=xxxx
获取某个id的用户的json序列化信息
方法三,后去某个时间段被修改的数据,从几号到几号有修改的变动数据获取
http://172.1.100.119/WebApiV46/API/User/GetList?CompanyId=xxx&start=2018-05-01&end=2018-05-02
获取某一时间段被修改的用户的json序列化信息(CompanyId可以不传递)
http://172.1.100.119/WebApiV46/API/Organize/GetList?start=2018-05-01 &end=2018-05-02
获取某一时间段被修改的公司的json序列化信息(pageIndex=0、pageSize=500 可以不传递)