记录一次大数据量传输问题-二十几万

业务背景:我们的open服务会从第三方获取到需要的源数据,将源数据进行业务整理,然后调用adapter服务进行数据推送。之前数据量都在一万以内甚至更少,所以没有遇到数据量过大导致服务重启问题,任务是后台定时任务对性能需求不大。
灰度机器资源:2核2G (后面升到4G)

问题:现某客户的明细账数据一月超二十几万条,直接干爆服务器
解决思路:使用mysql数据库和MQ
mysql存储源数据,通过MQ通知adapter服务读取mysql数据进行推数操作
问题:mysql数据性能瓶颈问题,批量插入几十万数据很慢

新的解决思路:使用MongoDB做中间数据存储
结果:批量插入两百多万数据,无丝毫压力

MongoDB介绍:
Mongodb,分布式文档存储数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。
虽然是NoSql数据库,但也最接近关系型数据库
特点:
高性能、可扩展、易部署、易使用,存储数据非常方便
面向集合存储,容易存储对象类型的数据
重要概念:
数据库–MongoDB 中多个文档组成集合,多个集合组成数据库。一个MongoDB 实例可以承载多个数据库。它们之间可以看作相互独立,每个数据库都有独立的权限控制
集合–是一组文档,类似于关系数据库中的表。集合是无模式的,集合中的文档可以是各式各样的。例如,{“hello,word”:“Mike”}和{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中
文档- -MongoDB 中数据的基本单位,类似于关系数据库中的行(但是比行复杂)。多个键及其关联的值有序地放在一起就构成了文档

springboot使用MongoDB:

引入依赖

	<dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>

添加配置

spring.data.mongodb.uri=mongodb://192.168.10.41:27017/lps
#192.168.10.41为我的ip地址 27017Mongodb端口号  lps是数据库 按需更改即可

添加实体类然后在注入MongoDB模板类,即可操作MongoDB

 	@Autowired
    private MongoTemplate mongoTemplate;
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值