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限流原理
项目名称:新零售电商平台-聚合支付中台
项目介绍:构建微服务聚合支付平台,整合第三方支付接口(支付宝、银联支付、微信支付等),封装成接口提供给服务接口给其他中台使用。
责任描述:
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实现+补单形式保证最终一致性实现双方数据同步
项目名称:新零售电商平台-构建分布式日志采集系统
项目介绍:负责构建分布式日志采集平台统一管理微服务日志文件,方便开发者生产环境查询日志
责任描述:
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接口以图形报表信息查询日志。