专业开发服务ERP系统

专业开发服务ERP系统

ID:39561004

大小:23.50 KB

页数:13页

时间:2019-07-06

专业开发服务ERP系统_第1页
专业开发服务ERP系统_第2页
专业开发服务ERP系统_第3页
专业开发服务ERP系统_第4页
专业开发服务ERP系统_第5页
资源描述:

《专业开发服务ERP系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、专业开发服务ERP系统  曾几何时,我混迹于电商、珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP)。作为一个ERP系统,系统主要功能模块无非是订单管理、商品管理、生产采购、仓库管理、物流管理、财务管理等等。作为一个管理系统,大家的一般开发习惯就是使用.Net或Java技术,建立一个单块(单进程)架构的应用,只有一个SQLServer或MySql数据库。然后在项目文件中分一下各个模块,三层结构方式组织代码编写开发。最后测试,交付上线。  ERP之痛  起初,因为数据量不大,系统性能还不错,各种列表查

2、询,报表查询,Excel数据导出功能等用的都很流畅。但是随着公司业务发展,订单量日积月累,后期各种业务部门的报表查询、数据导出需求不断增多,我们渐渐就感觉系统运行越来越慢。于是我们可能最先想到的解决方案就是,优化系统瓶颈数据库这个大头。我们可能的一种尝试就是将数据库单独放置到一个服务器,实现数据库和应用程序分离,或者是建立各种数据库表索引,优化程序代码等方法。经过这样一番研究优化,系统某些功能可能性能的确大大提高,但是我们还是发现某些功能列表的数据查询导出依然很慢,或者随着数据量继续积累,原来较快的列表导出功

3、能,也愈来愈变得缓慢了。我们用尽各种办法,最后也达不到理想的系统性能速度。  为了提高系统性能,我们也许会主动学习一些互联网公司的技术经验,什么高并发、高性能、大数据、读写分离等方案,发现自己根本无从下手。我们会觉得因为系统业务特点不一样。ERP系统并发量不高,主要是业务复杂,各种业务耦合度远高于那些互联网应用,不好做拆分,数据查询逻辑要远比互联网系统复杂,一个列表页查询出来的数据,往往需要关联4、5张表才能得到结果。有些报表类的甚至更多。加上各种业务操作事务性、数据一致性要求很高,很多时候导致我们措不及手,

4、无法进一步优化系统。  曾几何时,我也被这样或那样的理由所挫败,认为ERP系统非常特殊,无药可救,可是后来。。。  我现在已经不这么认为了,似乎有了新的解决方案O(∩_∩)O哈哈~  曙光乍现  在叙述具体方案前,先说下自己的想法。我首先觉得我们做ERP系统前,就得有当今互联网思维。我们不要再去做一个大一统的系统了。我们要分拆一个大系统,做成一个个小系统。然后通过系统接口让这些小系统相互通信。这样来组成一个大系统,具体来说就是“分布式”、“服务化”的互联网思维。让系统在架构设计上就是一个先天支持高度可扩展的系

5、统。  怎么做呢?具体来说就是要将订单管理、商品管理、生产采购、仓库管理、物流管理、财务管理拆分成一个个子系统。这些子系统可以单独设计开发,对外暴露出各种其他子系统需求的数据接口即可。每个子系统都有单独的数据库。甚至这些子系统可以交由不同的团队去开发和维护,使用不同的技术体系,使用不同的数据库。而不是再像以前那样,都集成在同一个大而全的系统中,一个大而全的数据库。  对于新架构的系统他有什么优点呢?  首先,也是最重要的就是解决系统的性能问题。以往数据库实例只有一个,没法扩展出多个实例,以便在性能受限的情况下

6、依靠增加数据库实例来达到负载均衡。也许有人会说可以使用读写分离方案,但是因为ERP系统的特点,这个方案很多时候不现实。比如说操作库存的时候,你不能从读库里读库存,然后在写库里写入库存。因为主从复制会有时效性,写入的库存并不能马上写入从库。这样的场景在ERP中也有多处。何况写库不能扩展,只能有一个。而新设计方案是写库是分离的,每个子系统有自己的数据库。  其次,就是更新非常方便,各个子系统以后台微服务的方式存在。前台一个单独的web项目,这个web项目调用后台这些子系统的服务接口。这样的设计,在某个业务子系统需

7、要更新的时候,可以单独更新。不用像以前那种单进程架构时,一个小更新需要整个系统重启,导致用户会话也丢失,用户需要新登录。而现在的这种设计就不会有这个问题。  拆分应用层,是践行“微服务”架构的理念。将原来大而全的单进程架构按照业务模块拆分成可独立部署的应用程序,以此来达到平滑系统更新、升级、方便负载扩展的目的。具体来说,技术上可以使用restfull风格的接口,也可以使用像java中dubbo框架方式来简化开发复杂度。ERPWeb端或其他移动端也是一个单独的应用充当表现层。非常薄,只是简单的接受参数,调取后台

8、其他各种微服务程序的接口获取所需展示的数据。微服务充当业务逻辑层,每个微服务都是可独立部署上线的程序,对外提供数据访问接口。  微服务可以使用流行的各种RPC框架,比如dubbo,可以支持多种调用协议Http、TCP等,这些框架使得编码比较容易,框架封装底层数据通信细节,使得客户端执行远程方法如同执行本地方法一样简单。  dubbo微服务架构,还支持服务治理,负载均衡等功能。这样不仅可以提高系统的可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。