本人多年服务端开发微服务架构设计经验长期熟练使用 Spring/Spring boot 体系、Quarkus、MySQL、PostgreSQL、Oracle、Redis、ElasticSearch、Kafka 等开源框架、中间件及技术。深刻钻研并实际运用领域驱动设计方式面向业务开发架构落地项目,熟练掌握低耦合高效的事件驱动架构,深耕云原生微服务体系架构技术,熟练掌握0到1搭建k8s集群环境及项目 CI/CD 持续集成等。熟悉前端 Webpack、Vue、Argular 、微信/支付宝生态等技术。
老板梦平台
该项所属广东昱昊互联网科技有限公司;
“老板梦” 服务端原一个单体架构应用,前端拥有 APP 、小程序、及 Web 端管理员/设计师/监理/连锁客户/供应商;
涉及功能性业务包含:装修订单、装修材料管理、门店售后服务、门店设备管理、线上设备/耗材商城、商品库存管理、智能设备物联网、汽车货运物流、在线支付、消息推送、在线聊天、远程摄像监控、远程设备控制等;
涉及非功能性需求包含:安全控制、权限管理、版本管理、配置管理、日志采集、性能监控、异常处理等;
由于业务不断增长,需求迭代增加,原应用由于是单体遗留系统,常常牵一发动全身,bug 频发,再由于先后多人维护过该项目,导致代码混乱耦合度极高难以维护;基于问题空间大问题分解成小问题,职责明确划分归类,将项目进行了面向微服务的拆分与重写,以解决需求迭代、降低耦合度,明确职责等问题,及降低日常开发维护的成本;
由于近几年云原生容器化的成熟,项目逐渐迭代成云原生微服务架构,以解决项目运维监控及高可用成本;
项目的服务拆分策略基于领域驱动设计的限界上下文指导;降低核心业务复杂性;
项目中使用成熟的 Springboot 系列框架完成基本的代码编写指导;
使用事件驱动架构, 以构建更高性能的异步调用通信系统,及使用 Saga 模式管理事务,以解决分布式事务问题;
对核心业务相关服务使用命令查询职责读写分离(CQRS )架构方式实现业务的输入与查询的输出之间的解耦;
项目使用 PostgreSQL、Elasticsearch、Redis 等完成数据持久化和必要的缓存;
使用 Kafka&Zookeeper、CDC (数据变更捕获) 等中间件及服务处理消息,以解决服务间事件的发布与订阅事件及事务性命令消息的调用通信问题;
Http 接口全部采用 RESTFul 风格设计,遵循 Swagger Open API 3.0规范,使用 yaml/json 描述编写 API 文档,以实现 API 先行策略,解决前端开发进度完全受制于后端接口编写进度的问题,API 文档和服务端代码实现彻底分离,降低耦合度;
使用 GraphQL 技术实现 BFF 查询网关,实现不同需求及不同端的数据格式,以解决跨服务查询需求数据聚合和降低传输流量成本;
使用 Jenkins 持续 发布到k8s集成测试和生产环境,以降低项目迭代发布成本;
使用k8s平台、istio 网格 实现服务容器化部署、服务治理、服务发现,入口流量访问控制及访问路由;大大的降低了运维成本、服务可用稳定性、和服务器采购的金钱成本;
业绩:1、 引导团队需求收集与问题空间问题点的分解,对应每个点商讨对应解决方案;
2、 核心业务域定位、主导服务拆分、技术选型;
3、 组织通用语言、编写开发文档、制定开发规范、业务建模;
4、 框架搭建、完成核心功能代码编写、后端代码 CodeReview;
5、 集成测试环境 kubernetes 集群搭建;
6、 新版本的的迭代发布及日常运维中问题的定位于修复;
项目链接:https://api.bossdream.com
昱昊智慧设备系统
昱昊智慧设备系统, 是一个物联网设备管理系统,主要管理公司自研设备如:蒸包机、关东煮、开水 机、微波炉、高汤机及店铺照明控制器等设备的远程监控与控制。 主要模块包含设备身份管理(二维码绑定注册与激活)、设备运行数据记录与分析、设备运行状态远程 控制等。
采用 EMQ、Springboot,、Mybatis、Mysql、Shardingsphere 等技术栈。 设备端和服务端使用 MQTT 协议连接远程 MQTT 服务器实现相互发布订阅模式进行通信,MQTT 中间 件服务器选型社区版 EMQ X, 单点支持50-100万设备连接性能,支持 MQTT,Websockt 等主流协议,服 务端使用 Eclipse Paho 框架实现 MQTT 协议连接到 中间服务器,解决数据交互控制问题。 由于设备端会定时上报运行状态数据,服务端需要择优进行持久化,将产生大量数据,使用 Shardingsphere 分片框架结合 MySQL 进行分库分表持久化设备运行数据,提高数据库并发与读写性 能。 店面智能照明控制,对接了萤石云监控平台,通过摄像设备监控检测等实现智能化照明供应,另提供 防盗安全报警信息推送功能。还支持 定时 开关照明,对于定时任务执行,使用 zookeeper 实现分布式 锁,保证一个有效节点对定时照明控制系统任务的执行。
我在项目中主要负责的内容有:
• 参与需求调研与分析;
• 与硬件部门商定通信协议,并编写通信技术文档; • 技术选型,基础设施环境
负责项目整体架构设计开发工作,项目采用云原生微服务架构,基于DDD的领域模型业务自治内聚和事件驱动异步调用交互,使用spring boot、PostgreSQL、kafka/zookeeper、CDC、Redis、 GraphQL、k8s、istio等技术。
项目主要做人证核验 两要素 三要素 四要素API服务接口,使用spring boot编写,MySQL存储,使用Shardingsphere 对业务记录数据分库分表,对接微信、支付宝在线支付充值等。