实现网
黄泽栋

昵称登录后显示

800/8小时
3年工作经验

人人车
高级Java开发工程师

后台开发
架构设计
易于维护
java
python

0

被预约次数

0

被收藏次数

0

被评价次数

擅长技能

本人目前就职于人人车互联网公司核心部门,参与公司主要产品的App网关研发、用户中心研发、模型定价。
对技术有源发的兴趣,持续学习 springboot、kafka、flink 等前沿技术,并独立完成多个兴趣项目、包块所属教育行业的北京、贵州两地的自考平台建设

详情请前往各大应用市场自行搜索“慕享”App

项目经验

APP网关开发
网关服务是移动端、PC端调用的统一路由管理服务、核心模块的接口访问均有该服务发起远程调用来进行同步应答。核心模块的路由ActionLib配置文件由一下自定义节点元素构成、Actions -> [Import | Action { package、name、version }] ->Api {protocol、url、method}->Param、且项目启动时,需要加载其到内存内、客户端请求一旦发起将通过Http发起远程调用。
检验用户是否登陆、校验参数是否需要RSA解密、本地存储用户信息、MDC用户操作日志追踪、CRLF防攻击拦截、调用监控如果失败,则会触发报警机制、外接钉钉预警。
B、用户中心开发
用户中心作为互联网中至关重要的基础服务支持、在各自公司产品线中担任不可获取的角色、为方便功能解耦、该模块分为BaseUser模块、和User2Business模块、前者仅仅负责用户的注册、登录、忘记密码、修改密码等。后者承担登录、注册、顶人推送、token检验、校验验证码、排行榜、点赞、一键已读公告通知、修改个人资料、意见反馈。开发期间有过的坑、在用户登录是登录基础账号、用uniqueId去业务库查询、并且初始化钱包信息(业务线、账户分类虚拟货币、账户余额),再次,个人钱包的初始化是需要用户的userId的、但是当app并行调用两次登录接口时,会发现返回的User模型一直是null的、解决斯问题思路是借助于redis是单线程操作的技巧、在保存完毕后紧接着做缓存操作,在执行业务逻辑的地方尝试从redis中3次查询此用户数据,这样是一种途径规避掉并发带来的问题。
业务系统均接入消息消费RestApi、经过消息判重以后决定是否消费该条消息。

D、订单/支付/钱包开发
D-1、订单拓扑
通用订单服务提供一组HTTP API供Payment系统和业务系统访问。通用订单服务访问业务系统,是指在通用订单服务的状态机事件方法里,对业务系统的回调。
通用订单访问Payment系统,具体指两种情况:
1)异步的支付退款请求、状态机事件方法如果涉及支付退款请求,则同步写请求记录表,然后对每条记录异步访问Payment。
2)同步的访问请求、通用订单对业务系统开放了生成支付流水号、支付、二次支付API,在这些API里,对Payment的访问是同步的。
Facade: 业务层对外的Facade接口,是Service层向上提供的唯一入口、每个接口都是一个事物。
Service层按照业务功能分,可分为以下几个模块:
1. 订单模块、提供订单相关的查询、修改、创建方法,供业务系统直接调用。 2. 运单(发票)模块、提供运单(发票)相关的查询、修改、创建方法,供业务系统直接调用。
3. 支付模块、依赖Payment-agent.jar,提供支付相关的方法,供业务系统调用,对业务系统屏蔽支付细节。
4. 产品线配置模块、以配置文件的方式配置产品线的信息。提供将配置文件解析成Java对象的功能。
D-2、状态机设计
通用订单服务的状态机是基于Squirrel框架实现、我们会内置几套通用的订单状态机,接新业务时,如果已有的状态机不满足需求,就需要重新定义一套状态机。

E、异步消息服务
消息服务构建于RabbitMQ的第二种工作队列应用模型之上。针对于消息的配置、和消息订阅的配置、MQ节点做服务化管理;

0条评论 雇主评价

暂无评论~

可兼职时间

周六全天
周六半天
周日全天
周日半天
工作日下班后

可兼职地点

海淀
上地
望京
西二旗

被预约

0

被收藏

0

被评价

0

立即预约

可兼职时间

周六全天
周六半天
周日全天
周日半天
工作日下班后

可兼职地点

海淀
上地
望京
西二旗

已通过身份认证