首先说下安徽移动系统BOSS系统的基本属性和移动系统中承担的所要职务
整个移动系统中其实是分了很多中心的,BOSS(基本业务支撑)、CRM(客户关系处理)、订单中心(为了营业统计各种业务办理和缴费等比较重要操作的数据报表来源)、ESB(服务处理总线)等。其中就BOSS分为了三个子系统,账务处理、计费业务、账务管理。
自己所在的部门也就是账务管理,处理移动各种账务关系的部门 比如BOSS比较重要的功能发票、缴费等都放在了我们部门上。
账务管理系统Java化和其他移动移动Java化所使用的架构模式是一致的
系统基本的框架采用Spring和iBatis搭配使用,数据库使用Oracle延续之前C使用的数据库系统,在Java之前也做了很多调研使用MySQL、PostgreSQL这样的关系数据库,但是考虑到Java化项目比较紧急 数据库改用调研也就搁置了(其实本身想使用MySQL做分布式数据库的,但是考虑到老员工都比较熟悉Oracl也就推了又推)。在我看来使用MySQL是很好的选择,本身他对分布式就有很好的支持,几个库搭建分布式数据库可以缓轻很大来在缴费这一边的业务来源入库,还有每个月欠费预销这种业务对数据库IO的折磨。
当然除了基本的Spring和iBatis还有很多公司自研的很多框架,基本上都是在开源项目上的增加业务。
然后说说整个移动系统的架构模式,基本的分布式RPC框架,因为前面也说了移动系统的子中心很多,跨中心这种交互就使用了业内很成熟的RPC框架模式,采用了Alibaba的Dubbo作为基础框架改写自有的一套框架。
其实基础的核心都没有变,Netty作为网络通信,ZooKeeper作为注册中心来使用,要说改动了也就是中间加了很多自定义的Log功能和ESB服务缓存的功能。
ESB这一块的注册服务缓存,都用的Oracle自家的Coherence缓存来实现的,对于这个缓存自己也不是很了解,只知道他在永久缓存上性能很突出,零时缓存就做的很不足。
—-To Be Continue(最近睡眠不足,等下再写)