工作期间隶属架构组,主要工作是公共服务平台微服务项目的业务实现。
公共服务平台采用springcloud搭建,采用微服务的设计理念,拆分为微信服务,日志服务,推送服务等公共组件,供公司各个业务项目使用。
在这个平台中,我主要负责日志服务、设备中心、用户中心。
日志服务
技术栈:elasticsearch、logstash、filebeat、kibana、redis、elastalerb
项目描述:主要是为各个服务抓取日志,并提供日志按时间、字段等复合查询、日志告警功能。
项目职责:
1、负责调研、搭建elk(elastic + logstash + kibana)日志平台;
2、前期使用filebeat抓取日志,logstash正则匹配,最后存入elasticsearch,供kibana做日志展示查询;
3、后期日志量增加,在filebeat抓取日志后,放入redis队列做日志读取缓冲。
4、配置elastalerb,提供error日志告警;
5、shell脚本定期删除索引。
设备中心
技术栈:springcloud、springboot、mybatis、mysql、redis、rabbitmq
项目描述:设备中心主要负责设备注册,数据上报、查询,指令下发。
项目职责:
1、负责开发设备注册、查询等接口;
2、数据上报主要使用rabbitmq队列上报(定位、指令回执、设备信息等);
3、指令下发会根据设备绑定的推送类型调用推送服务发送指令,使用redis做数据暂存缓解mysql数据写入压力;
4、指令数据按日期分表存储、查询;
5、接口降级异步队列处理,保证数据不丢失。
用户中心
技术栈:springcloud、springboot、mybatis、mysql、redis、rabbitmq、mycat
项目描述:为公司多产品线的用户提供多种登陆方式(手机、账号、微信等)统一注册、登陆、绑定、解绑等。
项目职责:
1、接口设计,开发;
2、使用mycat将用户数据分库分表,满足大数据量存储,提升查询性能;