1.项目主要分为三个模块:APP(提供用户扫码充电),云服务(接入充电桩设备、给app和管理网页提供数据接口)、管理网页(用户、充电设备管理、订单管理、财务管理、数据报表统计)
2.项目中我主要负责和用户对接需求设计功能以及云服务的设备接入功能的开发。
(1)云服务采用的springcloud+consul微服务架构,拆分为:app服务、网页服务和设备接入服务。数据库采用的mysql+redis。
(2) 设备接入服务采用的TCP通信方式和设备进行对接,采用的netty框架。
(3)部署方式采用的docker-swarm,app服务和网页服务部署单副本,设备接入服务部署了3个副本,并采用nginx做负载均衡。
3.项目难点主要集中在设备接入服务和网页服务的性能优化上。
(1)TCP通信的性能问题,经常出现粘包和断包的情况,需要对这两种情况进行处理.
(2) 用户充电过程中需要查询订单数据,数据查询更新很慢,采用redis做的数据缓存
(3)订单数据量大,用户在网页上查看订单数据和导出报表时很慢,采用了数据库分表模式,按照月份对订单进行分表.