个人介绍
Ø 熟悉主流开发框架,springcloud微服务、分布式等熟悉
Ø 对dubbo+zookeeper等微服务相关技术理解,对小程序、服务号开发流程
Ø 对oauth2统一认证,分布式事务、分布式锁理解
Ø 对redis,rabbitMQ,activiMQ等中间件理解
Ø 熟练Mysql、Oracle数据库,熟悉Redis缓存数据库,熟练使用
Ø 熟悉Redis集群分布式缓存技术。
Ø 熟悉RabbitMQ消息队列的使用。
Ø 熟悉Linux基本命令;
Ø 了解Spring Cloud分布式服务框架的工作原理。
Ø 熟悉tomcat、nginx的部署,熟悉git的使用
Ø 熟悉使用jenkins实现自动化部署,编写shell脚本
工作经历
2019-03-25 -至今文思海辉高级后端工程师
项目开发,功能模块开发,技术把控。
2016-04-02 -2019-03-22广州道一信息技术股份有限公司高级后端工程师
项目开发,代码review,带领实习生。
教育经历
2014-09-01 - 2017-07-01江西工程学院计算机软件与理论大专
连续三年获得优秀学生评奖
技能
发环境:IDEA + Maven 软件架构:Springboot+ Shiro+ Oracle + Redis + RabbitMQ 项目描述: 该项目主要是完成网上招标的功能,实现智能化招投标。该系统分为首页、工作台、项目目中心、资源中心、系统管理,供应商门户 6个模块。 主要中心功能点是招标员在项目中心发布项目,会给有权限投标的供应商发送系统消息和*消息等,供应商可以在规定的时间内在*上或者登陆系统进行投标。当时间一到,会给项目负责人发送消息和待办去评标,且时间过了供应商不可在投标操作。然后招标员公示中标信息。 本项目结构上分为表现层、业务层和数据访问层。层次间的依赖关系自下到上。采用springboot+shiro实现权限管理和登录认证,使用了redis做缓存,使用rabbitMQ消息队列。因为给供应商发送消息比较多,使用了一个消息队列。
该项目是微服务系统,由Spring Cloud开发,用到Java8、Maven、Mysql、Redis、Rabbitmq、elasticsearch 采用前后端分离,后端提供json,前后端基于access_token进行ajax交互 权限基于Spring Security注解实现的,因此粒度很细,达到方法级zipkin分布式追踪,收集数据可存储到内存、mysql、elasticsearch 注册中心:Spring Cloud Eureka实现 配置中心:Spring Cloud Config实现,配置文件支持本 用户中心:用户、角色、权限、绑定*号、*网页公众号授权 认证中心:Spring Cloud Oauth2实现,授权后提供access_token、支持用户名+密码、*号+密码、*号+短信验证码、*公众号登陆 网关中心:Spring Cloud Zuul实现,路由分发请求到各个微服务 管理后台:管理后台的前端页面 日志中心:各微服务aop拦截并发送日志,基于rabbitmq处理日志,存储到mysql或者elasticsearch 文件中心:文件上传,实现了本地存储、阿里云,可自行扩展第三方存储 监控中心:Spring Boot Admin实现 通知中心:阿里云短信、发送验证码
1:根据海大的业务需求,主要包括订单模块,库存模块,产品管理,组织客户管理等等,包括各数据展示模块,小程序,企业*,服务号,各个终端等等。主要销售订单模块,从下单,到装车,出库整个过程。库存从入库到出库整个过程。 2:海大mip系统重构:一期开发该项目由于上线时间着急,采用了公司老的框架进行开发。二期的时候整合了mybatis等,在不可拆分的新业务上使用mybatis。对可单独拆分的业务,使用springboot拆分成单独的应用模块。由于一期的业务还是用老框架,所以没有对之前的业务进行重构。目前重构项目,是对整个架构进行重构,使用springcloud分布式,使用统一登录模块,对整体的业务进行拆分成多个微服务,以适应海大业务的数据量的增长。 3:实现持续集成自动化部署,使用jenkins实现自动化部署。 项目重构架构实现方案 1.采用eurake作为注册中心实现服务治理,服务注册通过rest请求将自己的元数据注册到注册中心。心跳机制和服务剔除机制很好的对服务进行管理。 2.采用feign作为服务之间http api调用,feign和eurake的使用,直接拿到服务的元数据就知道调用的那个具体的服务。其实feign就是通过生成request对象,然后调用client进行请求。并且feign的client可以配置,支持httpclient、okhttp组件。 3.采用spring cloud zuul最为网关,对所有的服务请求进行一个统一的入口。并且zuul在等个请求生命周期中,都有过滤器可以进行操作,更方便我们使用,要注意一个小问题,zuul在请求过程中会忽略请求头中的一些信息,阻止往下游传递,可以通过配置解决这个问题。 4.采用spring cloud config作为配置中心,所有的服务配置统一好管理。并且可以整合git将配置信息配置在远程。并且可以实现动态刷新需要引用actuator依赖。 5.采用spring boot admin 服务监控。 6.采用spring cloud oauth2实现权限认证。Oauth2分为授权服务器,资源服务器,请求客户端。Oauth2有多种模式(客户端模式、密码模式等)