项目名称:物联网IOTGATEWAY
项目简介:此项目甲方为中国联合网络通信集团有限公司(简称“中国联通”),乙方包括天源迪科、东软集团、亚信科技,本质上为能力开放平台,上游对接物联网应用层,我司项目开发共分为两期,目前项目一期已经交付并上线,一期项目开发经费为720万。
开发环境及技术:IntelliJ IDEA、Spring Cloud、Mysql、Redis、Rhino、Mybatis、Cas、Shiro
项目描述:此项目前端使用vue.js + Bootstrap ,选取Spring Cloud作为后端基础的微服务架构。
根据用户群体可划分为能力门户和运营门户,能力门户开放到公网供企业级用户访问浏览,运营门户为内部运营人员使用。
根据业务拆分为八个模块,包括单点登录、权限控制、能力门户Web、运营门户Web、能力管理、报表账单、短信验证码、定时任务。所有模块统一注册到Spring Cloud的Eureka中心,通过Http通讯完成不同模块的交互。
其中能力门户Web、运营门户Web作为分布式架构中的表现层,其余模块皆有独立的业务层和数据访问层,业务层分为Function(功能)层和Business(业务)层,对其它模块统一暴露为功能层,功能层中做参数校验、参数提取、异常处理等通用化操作,调用业务层,业务层处理更为细致的业务逻辑,并调用数据访问层将业务数据持久化到数据库。
数据访问层使用Mybatis(Spring Boot版),数据库为Mysql 5.7。数据库设计中拆除了所有外键,业务关联皆通过第三方表,数据删除统一为软删除(字段标识),不使用浮点数(统一使用整型如有需要将其在Java代码中转换),数据库主键非mysql自增主键统一使用独立的一张表维护。数据库引擎为支持事务的Innodb,Java代码中使用Spring事务,支持声明式事务和编码型事务。
日志使用Spring Boot自带的log4j,日志输出目录和日志级别都有严格规范。
项目实际共有四套环境——开发、测试、沙箱、生产使用Git进行版本管理,严格按照开发->测试->沙箱->生产的流程进行迭代有效地保障了项目生产中客户的使用。
项目发布使用Jenkins进行持续集成,极大简化了发版工作。在项目后端使用了python进行接口自动化测试,在持续集成中项目发布后会自动对后台接口进行单元测试。
工作内容:
1.开发人员,开发了大约三十多个接口并将其以Restful形式提供了出去;
2.自动化测试工作管理,使用Python进行自动化测试,并教授其它同事编写Python测试脚本,随后以统一入口方式集成并将测试结果以Html展示;
3.JavaScript脚本编写,发布在我们项目中的能力的业务逻辑更新迭代较快,因此核心业务逻辑以JavaScript脚本完成(可在页面配置),故对于需要升级的能力需要编写JavaScript替换原有逻辑,本人处理编写脚本以外,还负责该块工作的分派、监察、整理和汇报;
4.服务发布和故障排查。
项目名称:红包
项目简介:本项目甲方为中国联合网络通信集团有限公司(简称“中国联通”),乙方为北京天源迪科信息技术股份有限公司(我司下辖全资子公司),一期投入40人,项目经费为1200万,目前开始进行二期,二期预计投入69人,预算三年内完成五期,项目经费为5000万。项目两周一个迭代,采用敏捷开发的的模式,分为四个敏捷小组。
开发技术:Spring + Mybatis + HSF(淘系RPC框架)、阿里云数据库、Redis、阿里消息队列、kafka、阿里OSS存储
项目描述:项目分为四个模块,电子券、kafka业务、渠道运营、存量运营
本人分属于存量运营,但其他模块的部分开发亦有涉及。
在架构师指导下使用公司内部封装jar搭建项目架构,分为公共基础模块base、工具模块took-kit、对外服务模块unified-jump、定时任务模块task、核心业务模块stock,每个模块下又分为function(功能)层api、function(功能)层实现、busi(业务)层api、busi(业务)层实现、jar版本管理模块、service(服务)层、web层。其中service层为服务统一集成,将功能层和业务层服务集成并统一暴露为HSF服务,web层为Http调用入口,通过hsf调用service层服务。
日志严格区分,通过切面将业务层、功能层、MQ相关、切面相关、定时任务的日志以及它们错误的日志都输出到不同文件,使日志更为规范化且十分有利于后期排查错误。
数据库使用阿里云数据库DRDS(其自带分库分表),按照功能进行分库,分为交易库、业务库、权限库、配置库,主键统一使用阿里数据库自带序列。
文件存储使用阿里OSS。
异步处理使用阿里消息队列RocketMQ,支持实时消息、延时消息、定时消息、事务消息、顺序消息,且阿里提供了一系列配套运维工具,如消息查看、消息验证、位点重置等。
Redis用于并发处理、分布式信息处理等。
定时任务使用当当网的elastic-job(会依赖于Zookeeper),项目中使用的是lite无中心化版本,有可视化的管理页面。
项目发布使用Jenkins进行了持续集成。
工作内容:
1.开发小组长。当前版本开始(上一个版本上线结束)时参与需求分析进行功能拆分,分配开发任务,并进行代码版本分支管理以及上线checkList(上线配置如sql、topic、nginx、外网配置等)准备,统一管理开发组员与外围系统人员的联系;
2.开发人员,负责存量运营各个模块的迭代优化和新需求的设计与开发,需求少时会参与其它模块的编码;
3.负责研发环境、测试环境的搭建以及负载的配置和持续集成的配置,处理环境问题如maven私服、maven打包失败、项目启动异常等;
4.生产环境的问题定位以及人工补救的措施;