扫一扫

跨屏手机阅览

扫一扫

关注微信服务号

支撑百万并发的数据库架构如何设计?

干货 2019-06-22 10:36:15互联网 阅读数:
摘要:在设计架构之时,要先考虑每一个组件的应用框架,把这些框架的基本部分写好,封装成依赖包,给业务系统调用。这些基础的部分包括以下...

上图的架构是这几个月来开发的总结,照一列一列来看,从右到左先看右边两列,可归为一类,这一部分可以叫做依赖,作为公共部分。在设计架构之时,要先考虑每一个组件的应用框架,把这些框架的基本部分写好,封装成依赖包,给业务系统调用。这些基础的部分包括以下:

缓存:redis redis的地址、端口、线程配置从配置文件读取,把redis的连接释放都做成工具,只提供使用接口

日志:推荐用log4j

消息中间件:kafka集群,封装工厂配置、提供生产者、消费者接口

core:权限认证、拦截检查

文件系统:ftp/fdfs,管理文件,提供上传下载接口

数据库: mysql

持久层框架用的mybatis:service提供接口

工具类:base64、map、email…

右边第三列作为业务,根据需求,垂直切分业务,对外提供接口的做一个业务子系统、逻辑处理的作为一个子系统、底层运算作为一个子系统,中间通过kafka通信。那么这里就涉及到一个问题,部署的时候,每个业务子系统要配多少台机器,才能达到最佳的处理效果:

单台机器:在接收kafka的地方做一个线程控制,允许单台机器在资源耗尽的情况下跑最大线程

部署:推荐先各自部署一台,压力测试后,打印出cpu、jvm、文件写入写出的利用率的曲线图,对利用率大的增加机器,最好让各自的资源都跑满(85%以上)

最左边的一列,对对外的

nginx做负载均衡

可视化可以查找内部任务

监控系统会监控哪些服务器宕机

更多精彩内容,请关注 广东快乐十分任选5-广东快乐十分任选4服务号(ID:ZiXinShuJu),或者下载 广东快乐十分任选5-广东快乐十分任选4APP
关闭