点击空白处退出提示
作品详情
后台保全管理系统:对接该公司保险核心数据库,核心数据库会提供api,从而能进行所有的保全操作,也能进行客户管理,包括各个渠道客户的管理,客户等级的管理,保单的管理,理赔处理等核心业务。
整个项目采用前后端分离开发方式:
前端:angular+H5
后端:开发框架采用springboot+springcloud,数据访问使用mybatis,中间件使用了redis,rocketmq,sharding jdbc
该项目代码层架构:基于DDD六边形架构分层
该项目物理架构:nginx代理后端网关(基于netty自研的网关)集群且nginx开启了限流(连接数限流,以及访问频率限流),网关再分发到具体业务微服务,服务之间调用使用feign,配置中心基于自研。
数据库层面基本上一个服务一个库,对于核心业务考虑分表分库,数据库高可用为2主2从(并引入了haproxy和keepalived这两个工具进行从库负载均衡及各个数据库实例可用状态监测)
Redis高可用:使用Redis Sentinel方案保证redis高可用
队列高可用:rocketmq采用多Master多Slave同步复制模式
对于微信端可能产生大流量访问的业务,使用mq进行削峰处理,对于产生订单,支付,通知等顺序的业务,使用rocketmq的顺序模式
项目亮点:
1、保证系统稳定运行及高可用,基本上按照集群部署或者多主多从的方式部署
2、Nginx开启限流,在并发情况下一定程度保护了后端服务
3、完善自研的网关和配置中心(比如网关中缓存后端服务,这样网关路由到后端服务时,直接取缓存就行,网关加入定时任务,拉取注册中心中各个服务,配置中心加入配置项变更后广播到对应的服务)
4、DDD六边形代码分层,保障核心业务都在领域层
5、高并发情况,比如下单业务,使用队列进行削峰入库处理,但入库会有时间延时,所以在入队列之前引入缓存,这样查询的时候就算入库没有完成,也可以先查询缓存
6、分布式事务使用rocketmq的事务消息方式处理,也自研了一套基于netty的文件存储的分布式事务框架(但后来开发的不是很成熟,没有使用,但作为了我们公司的一个技术沉淀)
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论