1. 熟练掌握JavaSE基础知识,拥有丰富的系统设计分析能力及面向对象分析和设能力,熟悉常用的设计模式(代理、单例、工厂、建造者、观察者、策略、模版、装饰、门面等)及反射、自定义注解、泛型等;
    2. 熟练掌握熟悉多线程与JUC并发编程synchronized原理、Atomic原子类、BlockingQueue、AQS、CAS、Lock锁原理、线程池原理、、锁的分类实现(悲、乐、公、非、重入)、常用并发类库Semaphore/CountDownLatch/CyclicBarrie原理、disruptor/ForkJoin并发框架等;
    3. 熟练掌握IDEA、Svn、Git、Maven等开发及版本控制工具,熟练掌握Java基础技术Jsp、Servlet、Jdbc,熟练掌握Web应用系统开发,具备的独立开发能力;
    4. 熟练掌握JVM内存结构、对象内存布局、类加载器、字节码技术、生产环境下JVM参数调优、垃圾收集器原理( Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1、ZGC原理等)、压力测试工具JMeter、生产环境下排查CPU飙高、内存泄漏问题,VisualVM、Arthas诊断工具使用;
    5. 熟练运用Spring5、Mybatis3、SpringMVC、SpringBoot等优秀的开源框架,熟悉Spring的IOC、DI、AOP设计思想;
    6. 有阅读过Mybatis3 (Mapper接口绑定、二级缓存设计)、Spring5(IOC容器、AOP切面编程、事务底层实现)、SpringMVC(执行流程)、SpringBoot 框架源码;
    7. 有深入研究过ConurrentHashMap/HashMap、Arraylist、LinkedList、LinkedListHashMap集合框架源码底层实现;
    8. 熟悉掌握SOA、分布式、微服务、服务网格,熟悉RPC远程调用框架、Dubbo、Dubbox、SpringCloud第一代Netflix和第二代SpringCloudAliBaba服务常用组件;
    9. 有深入研究过Eureka、Nacos实现服务注册中心(心跳、续约、剔除、注册、健康检查、集群同步、raft选举)原理、及AP与CP模式的选择,Sentinel限流原理(漏桶,令牌桶,滑动窗口)等;

    10、有深入研究过分布式事务解决方案Base/CAP理论、柔性与刚性事务、最终一致性思想、2PC与3PC提交协议、分布式一致性算法Zab和Paxos原理,SeataAt解决分布式事务解决方案原理、RocketMQ事务消息解决分布式事务原理、分布式任务调度平台(xxl-job) 执行器集群分片算法原理、RPC接口幂等性问题、分布式Session一致性问题等;
    11、有深入研究过分布式锁解决方案Zookeeper(CP模式)、Redisson(AP模式)实现分布式锁原理,分布式锁问题(如何避免客户端死锁、续命、超时等问题);
    12、熟练掌握网络通讯协议TCP/UDP,IO模型NIO、BIO、AIO,及NIO实现原理linux内核(select、poll、epoll),Linux内核零拷贝、内存池实现原理、Reactor 线程模型(单、多、主从),基于Netty+动态代理模式手写过Rpc框架;
    13、熟悉掌握消息中间件Kafka、RocketMQ、RabbitMQ运用,RabbitMQ队列模型、四种不同交换机、死信队列原理,掌握MQ使用常见问题(消息堆积、避免重复消费、不丢失、顺序一致性)、深入研究过Kafka
    底层实现原理(消息压缩、分区模型、分段日志、稀疏索引、缓冲池设计、offset原理、保证可靠消息、ISR副本选举原理、Kafka的性能优化等)
    14 、熟悉Restfull API开发规范,熟悉三方授权OAuth协议、Token/JWT、对接第三方支付接口(银联、支付接口(银联、支付宝、微信支付)及微信公众号开发;
    15、熟悉构建apm系统服务性能监控平台SkyWalking、分布式日志采集系统ELK+Kafka使用;
    16、熟悉微服务容器部署思想devops、docker基本命令、dockerCompose、Docker Swarm、Kubernetes部署微服务项目;
    17、有丰富微服务电商项目开发实战经验,熟悉整个微服务电商项目的架构流程,并实际参与过微服务电商项目,从项目需求讨论、研发阶段、分布式环境部署、技术难题解决、上线CDN部署等。

    项目名称:新零售电商平台-会员服务中台设计
    项目介绍:负责创建会员服务和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框架实现微服务平台单点登陆开发
    改造问题:
    早期使用多线程整合线程池技术将处理登录之后异发送邮件、短信、优惠券,从而提高接口响应效率,后期改为
    整合rabbitmq异步处理,减少服务器cpu的资源。

    项目名称:新零售电商平台-构建分布式日志采集系统
    项目介绍:负责构建分布式日志采集平台统一管理微服务日志文件,方便开发者生产环境查询日志
    责任描述:

    1. 基于DockerCompose部署ELK+Kafka收集日志平台
    2. 使用Aop+BlockingQueue技术将日志信息投递到Kafka中
    3. Logstash订阅Kafka将日志信息输出到ES中

    ELK+Kafka收集日志平台原理
    使用AOP技术环绕和异常通知拦截日志内容缓存到BlockingQueue中,单独线程从BlockingQueue中取出msg转化成json格式投递到Kafka主题中,Logstash订阅Kafka主题实时将日志信息输出到ES中,最后使用kibana调用ES接口以图形报表信息查询日志。

    项目名称:新零售电商平台-聚合支付中台
    项目介绍:构建微服务聚合支付平台,整合第三方支付接口(支付宝、银联支付、微信支付等),封装成接口提供给服务接口给其他中台使用。
    责任描述:
    1.与第三方支付接口平台技术人员对接
    2.聚合支付平台数据库表结构设计
    3.基于设计模式构建聚合支付平台
    4.基于MQ实现分布式事务解决方案
    5.使用xxl-job分片实现聚合支付对账
    6.常用遇到支付难题问题解决
    与第三方支付接口平台技术人员对接
    负责支付宝、微信支付、银联支付等支付接口技术人员沟通对接
    聚合支付平台数据库表结构设计
    负责聚合支付平台数据库表结构设计,payment_channel渠道表、payment_transaction流水表、payment_transaction_log日志表等实现完全可视化界面支付开关控制支付渠道。
    基于设计模式构建聚合支付平台
    使用策略+工厂设计模式实现支付接口提交html表单元素重构、使用模版方法+工厂设计模式实现共同异步回调代码重构,采用多线程+MQ实现支付回调日志收集
    使用xxl-job实现聚合支付对账
    使用分布式任务调度平台XXL-JOB实现支付接口产生延迟导致订单状态不同步实现自动化补偿,每天晚上两点钟时间定时触发任务,商户端主动使用支付id调用第三方支付渠道接口查询支付状态是否已经支付过,如果第三方支付渠道接口已经支付过,同步商户端订单状态。
    基于MQ实现分布式事务解决方案
    在微服务系统中,支付服务调用积分服务接口增加对应积分,该场景存在分布式事务问题,我们采用rabbitMQ实现+补单形式保证最终一致性实现双方数据同步