基于高并发的数据采集器

  1. 项目背景:

数据采集是当前很多智能设备都需要的。数据类型有很多种,有字符串,有json等等。交互协议有基于tcp的,有基于http的。现在针对原先项目面临的问题做出解决方案。

2.面临问题

1:并发量较低:原先项目采用裸写nio的方式,由于java本身的nio bug以及有些地方写的不太到位,单台机器并发量在200左右
2:业务逻辑耦合度相对较高,可读性差:由于很多地方采用字符串截取匹配来做路由的方式,存在很多的if else语句,导致可读性差
3:未考虑到tcp粘包问题
4:经常使用的数据未考虑缓存,频繁的mysql数据查询导致效率地下。

  1. 解决方案:

    先看架构图
    这里写图片描述
    图片中比较简略的描述了数据流程,下面一步步介绍如何实现的。

所用技术介绍:
作为一个java工程师,spring 那一套是必须的
持久层mybatis,对于经常使用的数据用redis做缓存
控制层:springMvc
数据通信层:netty
服务治理:dubbo
负载均衡:nginx
项目骨架:maven

在接下来的文章中会对各个整合细节做出介绍
搭建步骤:
1:maven各个模块创建
2:spring 整合mybatis redis
3:spring 整合 netty
4:spring 整合dubbo
5:路由分发器编写
6:nginx做负载均衡
7:项目测试

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值