在华泰公司,从事微服务电商后端项目开发,主要参与项目需求讨论、研发阶段、分布式环境部署、技术难题解决、上线CDN部署等
参与微服务电商项目核心项目模块的开发,例如:
会员模块(SSO单点登陆、多端唯一登陆、第三方QQ和微信联合登陆等),活动秒杀模块、商品搜索服务、聚合支付平台的开发等。
项目技术架构
A项目核心技术
1.该项目为微服务电商项目,采用目前比较主流的SpringBoot2+SpringCloud2构建微服务电商项目、使用SpringCloudEureka作为注册中心,实现服务治理
2.使用Zuul网关框架统一管理微服务请求入口、使用Ribbon实现本地负载均衡器和FeginHttp客户端调用工具
3.使用Hystrix服务保护框架(服务降级、隔离、熔断、限流)、使用消息总线Stream RabbitMQ和Kafka
4.基于redis和xxl-sso实现微服务单点登陆
B.分部署基础设施解决方案
1.项目统一使用分布式任务调度平台XXL-Job管理任务调度
2.使用分布式日志采集系统ELK +kafka实现微服务统一日志管理
3.分布式事务解决方案LCN 、分布式锁解决方案Zookeeper、Redis
4.使用分布式配置中心携程阿波罗、高并发分布式全局ID生成雪花算法
5.分布式Session框架Spring-Session、分布式服务追踪与调用链ZipKin
C. 项目运营与部署环境
1.分布式设施环境,统一采用docker安装部署
2.使用jenkins+docker实现自动部署
3.微服务API管理ApiSwagger、使用GitLab管理代码
4.项目使用第三方腾讯云数据库、使用七牛云服务器对静态资源实现加速
5.构建企业级Maven私服管理微服务接口调用依赖关系
项目一:华泰微服务电商平台
项目名称:会员服务/SSO服务
开发时间/开发周期:2017.06-2017.09
使用技术:SpringBoot2.0+SpringCloud2.0+jenkins+docker+ApiSwagger+Maven
责任描述:
1. 负责创建会员服务和SSO单点登陆系统项目
2. 负责会员服务核心模块开发(令牌Token登陆和多端唯一登陆接口的开发)
3. 负责会员服务QQ和微信联合登陆功能开发
4. 负责SSO单点登陆系统的开发
技术描述:
令牌登陆实现:
客户端(移动端、PC端、微信端)调用会员服务登陆接口成功后,返回对应的Token令牌,有效期为90天,客户端保存该Token信息,客户端使用令牌关联用户会话信息。
使用UUID随机生成Token令牌、用户登陆成功后会生成对应的Token令牌作为key,存入在Redis中,Redis中令牌对应的Value为UserId、有效期为90天。
唯一登陆实现:
后端实现:使用数据库表记录每次客户端登陆的Token令牌,每次产生新的用户Token都会删除上一次登陆的Token,客户端采用定时器检查当前客户端保存的Token是否过期或者是否重复登陆。
前端实现:采用定时器形式,使用Token调用验证接口是否已经过期。
联合登陆实现:
调用腾讯/微信开放平台,使用OAuth2.0授权获取用户相关openid,使用openid关联会员服务账号信息
SSO登陆实现:
使用XXL-SSO框架实现微服务平台单点登陆开发
项目二:华泰微服务电商平台
项目名称:商品搜索服务
开发时间/开发周期:2017.08-2017.11
使用技术:SpringBoot2.0+SpringCloud2.0+jenkins+docker+Elasticsearch+Maven
责任描述:
1. 负责整个商品数据库的设计
2. 负责商品搜索服务接口的开发
3. 负责实现Elasticsearch与MySQL数据库同步问题
技术描述:
商品数据库设计:
分类表采用无限级分类策略,采用SPU(产品单元)、SKU(库存量单元)具体商品规格。
商品搜索服务接口:
为了提高用户的搜索效率,采用Elasticsearch存放商品信息数据,集成IK分词+PingYin插件,实现拼音和中文分词高效查询。
MySQL与ES数据同步:
采用MQ实时性和Logstash定时实现MySQL与ES同步
MQ同步方案:发布/修改/删除/商品的时候,以MQ异步形式同步到Elasticsearch中,可以实时保证双方数据一致性问题。
Logstash同步方案:使用Logstash定时方式读取数据库最新的数据>=update_time时间 ,让后在格式化