ID:331035

Saimen_黄

Java开发工程师

  • 公司信息:
  • 筑材网
  • 工作经验:
  • 7年
  • 兼职日薪:
  • 500元/8小时
  • 兼职时间:
  • 周六
  • 周日
  • 可工作日远程
  • 可工作日驻场(离职原因)
  • 可工作日驻场(自由职业原因)
  • 所在区域:
  • 上海
  • 长宁

技术能力

我参与过百万级项目,确保整体查询耗时低于400毫秒。从数据库设计、数据权限设计、登录、单点登录、权限架构到资源架构的整体设计优化,我都有着独到的经验。我专注于在当前权限架构下关系性数据库性能优化,涵盖 MySQL 以及非关系性数据库(如 Redis )缓存的整体设计。通过我的优化,使其他开发人员无需担心系统性能问题,能够更专注于业务开发。
我曾在几个团队以组长的角色参与产品需求讨论并与开发人员一起完成整个开发周期。

项目经验

配合筑材网的服务拆分,筑材金融独立为单独的 服务,采用dubbo的框架和zookeeper的筑材,进行拆分,然后把筑材网所有相关的支付订单模块也独立到金融服务,在不改变原有大架构的情况下重新设计优化订单相关业务的表和业务接口。
将筑材金融独立为单独的服务,采用Dubbo框架和Zookeeper进行服务拆分,然后将筑材网的支付订单模块也独立到金融服务中:
服务拆分:
技术选型: 选择Dubbo作为服务框架,Zookeeper作为服务注册中心。
服务定义: 定义筑材金融服务接口,包括金融业务和支付订单相关的接口。
服务实现: 实现筑材金融服务的业务逻辑,包括支付订单相关的处理。
数据库设计优化:
业务表优化: 重新设计和优化订单相关的数据库表结构,确保表的设计符合金融服务的需求,包括订单的存储、查询、更新等操作。
索引优化: 根据订单查询的频率,添加适当的索引以提高查询效率。
业务接口设计优化:
优化后的设计遵循单一职责原则,将订单表中与订单不相关的快递部分信息独立出去,形成了更为模块化的结构。
重新定义一个新的服务接口,专门处理与快递相关的操作,例如查询快递状态、更新快递信息等。
使用Lambda表达式优化集合内数据操作,使得代码更为简洁、可读,并能够充分发挥函数式编程的优势。
接口默认方法:
利用接口默认方法,将银行接口调用的一些通用逻辑提取到接口默认实现中,以降低重复代码的出现。
重新设计银行任务打印日志系统。
分布式锁: 利用Zookeeper的分布式锁确保在多台服务器上运行的任务不会出现冲突。一台服务器获取锁后,其他服务器会等待,确保同一时刻只有一个服务器执行相关任务。
异步线程: 为了应对银行接口可能导致任务长时间占用资源的情况,异步线程可以在后台处理银行接口调用,而不影响主线程的执行。这样可以避免其他任务因为等待线程结束而被中断的问题。


Spring Cloud架构: CRM系统采用Spring Cloud框架,
Gateway网关: 引入Gateway作为系统的网关,负责请求的路由
缓存组件Redis: 使用Redis作为缓存组件,
数据库MySQL: 作为系统的主要存储引擎,MySQL用于持久化数据。
消息中间件RabbitMQ: 引入RabbitMQ作为消息中间件,用于实现异步消息处理。
注册中心Eureka: 使用Eureka作为注册中心,实现服务的自动发现和注册。
Feign远程调用: 采用Feign进行远程服务调用。
配置文件管理Apollo: 引入Apollo作为配置文件的管理工具,通过动态配置,实现系统配置的灵活管理。
这个项目是和别的公司联合开发的,我主要担任本公司的leader,负责本公司的开发计划和需求评审。
我主要负责的是整个项目的核心模块:权限,登录,组织,菜单资源,还有就是数据字典等的设计维护。
在前期与客户沟通整个权限体系和组织关系的过程中,着重考虑了符合客户要求的权限组织体系,并确保了效率。主要是以下几点:
需求收集: 在初期与客户的沟通中,详细了解客户对权限体系和组织关系的具体需求。
业务场景分析: 分析客户的业务场景,理解不同用户在系统中的角色和职责。
权限层级设计: 根据客户需求设计权限的层级结构,确保不同层级的权限能够清晰地区分和控制。
组织架构设计: 考虑客户的组织结构,设计能够支持多级组织的权限管理体系。
权限与角色关联: 将权限与角色进行关联,以便更好地进行权限的分配和管理。例如,每个公司的用户可以多角色,多角色意味着会出现权限冲突,后面整理冲突点跟客户一个个过,例如a角色是最小权限,b角色是最大权限等等这种数据权限设计: 如果系统涉及敏感数据,考虑设计数据权限,确保用户只能访问其具有权限的数据。达到满足客户对每个表字段级的数据权限控制
效率优化考虑: 在设计权限体系时,引入设计思想,加入缓存达到提高效率。
全局登录与权限拦截:
通过网关层拦截登录token,确保全局登录的安全性。
利用权限拦截机制,对用户进行访问权限的验证,确保系统的安全性和数据的隐私。
组织与菜单资源设计:
设计灵活的组织结构,支持多级组织,并与用户关联,以实现更细粒度的权限控制。
菜单资源的设计要符合业务模块化的原则,确保菜单的动态扩展和管理。
数据库设计与数据权限字段:
在业务表中冗余业务字段是为了提高查询效率,
数据权限字段包括公司、部门、创建人,有助于细粒度的权限控制。
索引设计与查询效率:
在一张表索引不多于6个的前提下,根据业务字段的调用频率设计索引,提高查询效率。
对于模糊查询,有明确的规范是很好的,以确保查询的高效性,需要根据业务场景权衡全模糊查询的需求和对性能的影响。
数据相关规范的

案例展示

  • 筑材金融

    筑材金融

    配合筑材网的服务拆分,筑材金融独立为单独的 服务,采用dubbo的框架和zookeeper的筑材,进行拆分,然后把筑材网所有相关的支付订单模块也独立到金融服务,在不改变原有大架构的情况下重新设计优化订单相关业务的表和业务接口。 将筑材金融独立为单独的服务,采用Dubbo框架和Z

  • 某公司crm

    某公司crm

    Spring Cloud架构: CRM系统采用Spring Cloud框架, Gateway网关: 引入Gateway作为系统的网关,负责请求的路由 缓存组件Redis: 使用Redis作为缓存组件, 数据库MySQL: 作为系统的主要存储引擎,MySQL用于持久化数据。

查看案例列表(含更多 0 个案例)

信用行为

  • 接单
    0
  • 评价
    0
  • 收藏
    0
微信扫码,建群沟通

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系需求方端客服
联系需求方端客服