黑马冰眼冷链---3.大数据采集服务-Netty网络编程

学习目标:

  1. 能够了解ETL、大数据和物联网数据采集技术
  2. 能够了解Netty网络编程
  3. 能够知道Netty网络编程过程和实践
  4. 能够知道冷链设备监控中如何使用netty进行数据流转和处理

1、数据采集技术

1.1 ETL概述

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。

ETL的设计分三部分:Server2005的SSIS服务、Informatic等,

 

1.2 大数据采集技术介绍

数据产生的种类很多,并且不同种类的数据产生的方式不同。

对于大数据采集系统,主要分为以下三类系统:

  • 1.2.1 系统日志采集系统
  • 1.2.2 网络数据采集系统
  • 1.2.3 数据库采集系统

 

1.3 物联网数据采集技术介绍

随着物联网工业级采集器领域的逐步扩大,物的数量呈几何级增长,而物联网的信息也必然呈爆炸性增长,随之而来的访问量定然空前高涨。

核心组件介绍

 

2、Netty网络编程

2.1 Netty介绍

2.1.1 网络编程原理

IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这 个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。

比如你打开浏览器,访问某个网站,浏览器这个程序就需要通过网络IO获取网站的网页。

 

2.1.3 Netty的主要特点

  • 1)设计优雅:适用于各种传输类型的统一 API 阻塞和非阻塞 Socket;基于灵活且可扩展的事件模型, 可以清晰地分离关注点;高度可定制的线程模型 - 单线程,一个或多个线程池;真正的无连接数据报套 接字支持(自 3.1 起)。
  • 2)使用方便:详细记录的 Javadoc,用户指南和示例;没有其他依赖项,JDK 5(Netty 3.x)或 6(Netty 4.x)就足够了。
  • 3)高性能、吞吐量更高:延迟更低;减少资源消耗;最小化不必要的内存复制。
  • 4)安全:完整的 SSL/TLS 和 StartTLS 支持。
  • 5)社区活跃、不断更新:社区活跃,版本迭代周期短,发现的 Bug 可以被及时修复,同时,更多的新 功能会被加入

 

2.1.4 Netty 常见应用场景

1)互联网行业:在分布式系统中,各个节点之间需要远程服务调用,高性能的 RPC 框架必不可少, Netty 作为异步高性能的通信框架,往往作为基础通信组件被这些 RPC 框架使用。典型的应用有:阿里 分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作 为基础通信组件,用于实现各进程节点之间的内部通信。

2)游戏行业:无论是手游服务端还是大型的网络游戏,Java 语言得到了越来越广泛的应用。Netty 作为高性能的基础通信组件,它本身提供了 TCP/UDP 和 HTTP 协议栈。 非常方便定制和开发私有协议栈,账号登录服务器,地图服务器之间可以方便的通过 Netty 进行高性能 的通信。

3)大数据领域:经典的 Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架,默认采用 Netty 进行 跨界点通信它的 Netty Service 基于 Netty 框架二次封装实现。

 

2.2 Netty架构设计

Netty 作为异步事件驱动的网络,高性能之处主要来自于其 I/O 模型和线程处理模型,前者决定如何收发数据,后者决定如何处理数据。

 

2.3 开发步骤

2.3.1. 服务端处理步骤

2.3.2. 客户端处理步骤

 

2.4 Netty代码示例

服务端

 

3、设备数据处理

3.1 需求分析

根据业务需要,我们目前需要处理的是仪表设备发送报文消息到服务端,服务端接收到数据进行后续处理

我们采用的是Netty网络编程技术。

 

4、总结

通过此章节的学习,对ETL、大数据采集、物联网数据采集等业务和技术有了一定的认识。

同时,应该能够使用netty进行网络编程。