面试官您好,我之前任职了两年java开发工程师,刚开始都是一些SSM框架的项目。大约在做了1年的SSM框架,之后开始接触微服项目,前后经历过Dubbo和SpringCloud两种框架,接下来我就介绍一下简历上的第一个项目。
这个项目是基于SpringCloud框架的名为“湖南政务服务网“的微服项目,这个项目有首页、个人服务、法人服务、部门服务、便民服务、效能监督等几大模块。各个模块下分有很多子模块。这个项目期间我自己独立承担了个人服务和便民服务模块。
本项目是基于SpringCloud的微服项目。另外也接触了许多技术,比如Vue、支付宝等第三方技术,另外我还接触到了缓存技术redis,全文索引技术Elasticsearch,还接触了一些环境,比如elk+kafka实现分布式系统日志收集系统的搭建何使用。
在使用个人服务和公共服务之前,用户必须处于登录状态,这里我们用到了redis-token令牌机制实现登录,并且接入事业单位在线、支付宝账号等第三方快捷登录与注册。redis+token能够解决传统session登录的问题,比如我们这个工程里web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候,session会丢失,而且session效率不高,还耗费资源。
在用户进行一些服务的在线预约服务时可能会遇到高并发的问题,这个时候我们的处理方式是采用redis分布式锁setnx原理,引入分布式锁的原因是为了解决在线预约过程中防止一个用户预约多次或者预约的用户量超过了实际可接受办理的数量。但是引入分布式锁之后发现分布式锁的效率比较低,于是我们引入ActiveMq来解决效率低的问题,实现流量削峰。当用户发送一个预约请求的时候,用户会直接得到一个排队成功的返回信息,实际上处理这个抢购请求的还是我们的consumer,然后处理完成之后将是否预约成功发给ActiveMq,然后配置一个监听器,后端做一个轮询接口,前端调用轮询接口,这样前端就可以不用等待,是一个异步请求,并且接近实时的获取是否预约成功。
另外,在项目中还有一些其他技术,比如百度地图api,短信验证接口,报表等。最后,感谢贵公司给我这次面试的机会,如果有幸被贵公司录用,我会不断学习,提升自己,为公司制造价值。