“大麦”企业级高并发实战项目亮点介绍

项目特点

项目中包括了 微服务、本地缓存/分布式缓存、消息队列、搜索引擎、并发编程、本地锁/分布式锁、设计模式、分库分表 等核心技术

项目技术

  • 使用了 SpringCloud+SpringCloudAlibaba 的微服务结构
  • 使用了 Nacos 作为注册中心
  • 使用 Redis 不仅仅作为缓存,还使用了Lua脚本/延迟队列/Stream消息队列 等高级特性
  • 引入了 Kafka 消息中间件,SpringBootAdmin 作为服务的监控通知
  • ELK 作为日志的记录,ElasticSearch提供搜索和展示功能,
  • Sentinel/Hystrix 作为熔断保护层
  • 使用 ShardingSphere 实现分库分表,来存储海量的数据

项目架构

  • 使用非对称/非对称算法对接口的数据进行加密签名,预防接口的伪装攻击
  • 使用JWT生成Token并实现用户可以在多个渠道平台进行登录
  • 分布式id生成,并且结合Redis+lua,解决MybatisPlus的雪花算法生成重复的问题
  • 定制全局异常处理、以及接口的结构规范
  • 自定义全服务链路id,能够快速查找业务问题
  • 对线程池进行定制优化,支持MDC和ThreadLocal范围的数据传递
  • 对Redis进行封装,实现对键的统一管理
  • 设计分布式锁组件,提供切面、命令式、方法级别三种方式的使用
  • 设计幂等性组件,并结合多种锁的类型来进一步提升高并发情况下的幂等效率
  • 设计服务初始化行为组件,能将初始化行为更好的集中式管理
  • 将数据库的分库分表功能统一管理,制定复合分片基因法的分片算法
  • 根据Ribbon/LoadBalance负载均衡的原理,实现服务部署时从灰度环境到生产环境的丝滑切换

项目地址

  • gitee:https://gitee.com/java-up-up/damai
  • github:https://github.com/shining-stars-lk/damai`
#项目##面试##java##23届找工作求助阵地#
全部评论
有视频吗
点赞 回复 分享
发布于 08-16 16:41 北京

相关推荐

        今天,我非常荣幸能与大家分享我在秋招与春招征途中的宝贵经验。随着我投递的岗位日益增多,我不仅对简历的撰写要求愈发精益求精,也惊喜地发现,这份努力直接转化为了更多面试邀约的收获。步入职场后,我更有幸承担起部门简历筛选的重任,这一转变让我得以从雇主视角深入审视每一份简历,深刻理解何为优秀简历的精髓。        PS: 我是一个Java后端,更多的观点是以Java后端的视角出发,其他方向的小伙伴,仅供参考。        接下来,我渴望与大家深入探讨,究竟何为一份出色的简历,以及它应当具备哪些令人瞩目的特质。这不仅是对过往经验的总结提炼,更是希望为即将踏上求职旅程的你们,提供一份实用的指南,助力你们在激烈的竞争中脱颖而出。        好的简历,首先应当是一封精准的自我推销信,它不仅要全面展现你的专业技能、教育背景及实习经历,更要巧妙地凸显你的个人优势与岗位需求的契合度。它应当像一幅精心布置的画卷,既有宏观的概览,也不乏细腻的笔触,让看到你简历的人能够迅速捕捉到你的亮点与潜力。       一份后端简历,大体包括个人信息,教育背景,职业技能,项目经历,实习经历,个人介绍,这几大部分。对于其中的顺序我们应该如何排版呢?应该秉承的最优最前的原则,我们最突出的经历尽可能的放到前面,但然最先开始的内容应该是我们的个人信息。当我开始做招聘工作后,每天需要看大量的简历,这就导致不能够去详细的阅读大家的所有经历,就像看一本书一样,在一开始我的精神一定是最集中的时候,当我看到后面,可能就没有太多的耐心,就会一扫而过。所以要在一开始我们就要牢牢抓住招聘人的眼球,让他们更有兴趣的去看完这一份简历。        在个人介绍版块,大家一定要补充好自己的个人联系信息,包括电子邮箱和个人的手机号,我在招简历的过程中有不少HR喜欢先通过打电话的形式与我们提前沟通及约面试的时间。求职岗位大家也建议大家写上。        在专业技能版块,这块是八股拷打的重灾区,所在在写这块的时候大家一定要把自己熟悉的技术栈和技术点写上,对于哪些不熟悉的技术点不要写,万一面试官问起来,答不上来,会大大降低面试官对我们的印象。校招生比较容易犯的大忌是写精通XX技术,我的个老天爷啊,千万不要写,否则被面试官拷打时,真的如同下油锅啊。这里有个小技巧,在写熟悉某一个技术时,在专利技术版块不写成,使用XX技术做了什么什么,要写成熟悉这个技术的XX技术点。例如:Mysql:熟悉SQL语言编写、Mysql索引、MVCC、事务、日志、锁等机制。 Redis:熟悉 Redis 的数据结构、过期删除与内存淘汰策略,也了解高并发场下缓存异常,如缓存穿、缓存击穿、缓存雪崩。 这样的话面试就知道我拉熟悉哪些知识点,有针对我进行提问看我们掌握的是否扎实。如果只写的熟悉MySQL、Redis那知识点就太多了,面试官也不知识你到底掌握了哪些。        如果有实习经历的小伙伴,一定要想尽一切办法突出我实习期间的一些工作内容。因为这是你第一次到社会上从事相关专业的工作,通过你的实习经历面试官能看出你在工作中到底是一个什么样的表现,是不是匹配他的要求。对于项目描述我们一定要描述的简短且清晰,面试官很少会关心项目的业务细节。在描述项目成果时,我们要更多从技术的角度去出发,展现我们的技术功底。                对于还没有实习经历的小伙伴,项目经历就成我们最重要的部分。这里面有一个面试的隐藏点,如果大家项目准备有非常多的点可以和面试官聊,那么八股的比例就会明显的下降,如果大家项目很简单,面试官感觉没有啥可以聊的,那么大家就要做好被八股拷要的准备。校招的小伙伴,对于项目要求的标准并不会那么高,要我们的使用微服务,解决了什么高并发、高性能的问题,这个知识点太高大上了,我们需要准备好一个项目中的某一个模块或几个模块,这个模块一定要有一定的业务复杂度跟和面试官拉扯几个回合。对于校园项目的数量2~3最为佳。最有亮点的项目一定要放在开始。        自我评介这块,大家都容易写得很虚,因为我们是面试的是技术岗,所以还要以围绕技术来写,如果大家好写喜欢钻研技术,那就不能只写喜欢钻研技术,你还要得写你通过什么方式来钻研技术的,看了什么技术书籍、参与了什么开源项目、阅读了什么源码等等,一定要把东西留在具体的事上。        简历就是我们脸面,把简历写成什么样,直接决定着我们是否有机会上牌桌。PS:24年求职,一共拿到6份offer,其中包括两家头部大厂和一家AI独角兽公司。
点赞 评论 收藏
分享
点赞 2 评论
分享
牛客网
牛客企业服务