1. 开发技术1) spring mvc/struts 客服的权限管理用KK的代码通过struts实现,其它新开发的业务通过spring mvc实现 2) hibernateORM框架 3) dubbo/zookeeper系统初期通过dubbo的参数injvm实现单主机单tomcat实例部署,各业务模块向zookeeper注册服务provider, 消费都comsumer向zookeeper查找业务后直接调用,后期做分布式部署只需要修改injvm参数,dubbo自动切换成远程调用,业务层不需要做任何调整。 4) http/json移动端接口通过http+json形式提供 [size=16.0000pt]2. 业务模块划分1) 基础 basic短信、推送等各个模块都可能用到的全平台业务 2) 用户 cif用户的注册,登录的个人信息,绑定的车辆信息,客服的用户管理,车辆绑定的验证功能由此模块提供 [size=13.0000pt]3) 账户 account充值、余额功能(暂未用) 4) 支付 payment支付信息(支付宝与微信的支付回调业务在这里) 5) 交易 transcore后台停车场的进场、出场数据生成订单数据,客服的订单管理功能也由这个模块提供 6) 停车场 merchant后台停车场的新增、修改等数据,客服的停车场管理功能由这个模块提供 7) 移动接口 mobile为IOS和Android接口远程接口,可单独部署, 8) 客服 boss客服系统,提供用户管理,停车场的维护,订单与支付等异常单处理,可单独部署 [size=13.0000pt]9) 业务分层各业务模块一般划分为接口层(facade),业务层(business),数据层(dal),集成层(integration),WEB层 接口层:只提供各业务模块间的调用接口,集成模块仅依赖接口层 业务层:具体的业务实现,provider的主要功能,通过spring加载后用dubbo向zookeeper注册,后端调用数据层做数据持久化。 数据层:hibernate的数据库映射文件,主要是DAO/VO,增删改查等功能 集成层:暂未用 WEB层:各业务模块可单独启动并向zookeeper注册业务层provider。暂未使用,通过统一的模块启动。 1-6为业务模块(作为服务提供者将服务注册到zookeeper,具体配置参考各业务business层的spring-***-dubbo-provider.xml;spring和hibernate配置为spring-***-biz.xml,启动业务并连接数据库)。 7/8为集成模块(作为消费者向zookeeper查询业务提供者并调用实际业务)。 3. 系统部署与运维1) ECS部署tomcat,为Android/IOS提供HTTP服务,向后端停车场提供进场、出场数据接口。 Root用户仅作登录用户,系统运维均通过flashpark用户组的子用户操作,如代码编译和tomcat的发布用mobile用户,zookeeper和dubbo服务的监控的启动用zk用户。 具体操作如下 编译发布: su – mobile cd shell compile-core.sh 用来编译非业务的工具类等核心模块。 compile-flash.sh 用来编译整个业务系统。 deploy-boss.sh 用来发布2.8客服系统。 deploy-flash.sh 用来统一发布2.1-1.7各业务模块。 重启zookeeper: su – zk zookeeper-3.4.8/startup.sh 用来启动zookeeper. dubbo-monitor/bin/start.sh 用户启动监控。 2) RDS数据库实例,2.1-2.6各模块均的数据在各个不同的DB中存储,如后期的某业务压力大,可以容易扩展拆分出新的实例来单独来支撑 。 运维操作均通过云平台实现。可参考阿里云相关文档。 3) REDIS缓存和消息队列,现在权限缓存REDIS,(如后端停车场的数据量过大可先推送先进入REDIS,业务后台从这里取数据后做订单入库等操作)。
|