Java: 具有扎实的 Java 基础,熟悉 Java 集合、多线程、并发等基础开发技术。
框架: 熟练掌握 Spring、Spring MVC、Spring Boot、Mybatis plus 等主流开发框架。 Redis: 熟练掌握 Redis 的基本数据结构、分布式锁、持久化机制、主从集群、分片集群等。 数据库:熟练掌握 MySQL 数据库基础知识,熟悉锁、索引、基本的 SQL 语句等。
分布式:熟悉CAP、BASE等分布式理论,并对Raft共识算法有一定的研究;了解Paxos、ZAB等一致性算法。
算法: 熟练掌握数据结构和算法,了解树、图、动态规划等基础算法,有较强的代码分析和设计能力。
工具: 熟悉企业中利用 Git 工具做版本控制的基本流程。
Git:熟悉git基本操作以及在团队项目开发中的使用。
前端: 了解 Html、Css、JavaScript、Vue、Node 等前端技能。
其他:了解Go,python语言的基本语法,对主流中间件有一定的了解,比如(ElasticSearch、RocketMQ 、XXL-JOB等)
基于Raft实现的KV数据库 独立开发 2023.04-2023.07
项目简介:本项目基于Raft共识算法实现的强一致性的分布式数据库;在复杂的分布式环境下,多节点数据库能保证数据的强一致性;项目背景主要是为了深入了解Raft算法,从而更深刻的了解分布式环境下强一致性是如何实现的。
技术选型:Java,Raft算法,SOFA-BOLT,RocksDB。
项目负责:1、整个项目参考Raft共识算法论文并进行了工程化的实现。其中包括选举模块、心跳检测模块、日志复制模块、集群变更模块。并对所有模块都进行了安全性控制,即便在集群某节点发生宕机或重启等异情况下也能保证集群的高可用和数据的安全。
2、项目在引入Raft算法后并对Raft算法做了一定的优化来保证数据的强一致性,采用写主读主的策略保证客户端读到的数据都是最新的,并设置了applyIndex来保证客户端读到的数据有被应用到了状态机中。为进一步提高性能,设置一个比选举更短的租期Lease Read来保证租期内该节点的leader地位。
3、实现Pre Vote预投票机制来保证在网络分区情况下节点选举失败不会导致term持续增加,避免网络正常的时候造成leader不必要的卸任。
4、集群变更采用两阶段提交策略,从old集群->(old,new)集群->new集群的策略,避免集群出现脑裂的情况。
5、项目中多处使用多线程、锁等技术来提高代码的性能和保证并发安全。
6、项目对外提供KV数据库的基本读写功能,对外暴露接口供外部服务调用.
实时链路仿真压测项目(小红书) 后端开发 2023.07-2023.10
项目简介:实时链路仿真压测项目,通过多任务同时压测,模拟活动当天的系统性压力,可以提前暴露上下游各引擎的系统性风险。同时,和在线链路一起压测,可以提前验证网络、基础设施、混部压力,避免大促当天再去暴露风险。
技术选型:Java、SpringBoot、MyBatis Plus、Mysql、Redis
项目负责:
1、项目管理模块的开发。主要包括项目的增删、信息修改、成员管理等。
2、链路复制模块的开发。通过自动化复制的方式产生影子链路,在影子链路上的压测可以避免对生产环境的影响。
3、压测计划启动/停止检测模块开发。主要包括配置检测、冲突检测和安全检测,保证压测计划能安全的启动和停止。
4、原链路与影子链路配置变更对比模块开发。如果对影子链路上的任务与实体配置进行了调整,可以输出影子链路所有变更与原链路的比对结果,便于用户在实际场景到达前对原链路进行配置调整。
可兼职时间
可兼职地点
0条评论 雇主评价