本文仅给出架构设计中需要考虑的知识点,不详细介绍具体知识点。
一、顶层结构
Linux/Windows平台、CS/BS大数据架构、应用领域(游戏、互联网、传统产业等)
二、CS中的Client的技术选型
1、GUI开发技术
(1)微软技术体系
MFC、WinForm、WPF、UWP
(2)Java技术体系
java AWT、java swing、javafx
(3)Python技术体系
Kivy、PyQt、PyGUI、Libavg、wxPython
2.移动开发技术
原生应用:Android、ios、wp
微信小程序
渐进式Web应用:对移动端友好Web应用程序。
3.控制台程序
三、BS中的Browser的技术选型
1.微软技术体系
Asp.net、Asp.net MVC、Silverlight、IIS
2、Java技术体系
JSP Servlet Struts Hibernate Spring、tomcat
3、其他技术
html5、js、AJax、CSS3、http/https
js框架:jQuery 、Angular JS、Bootstrap、jQuery UI、Ext JS、Dojo、Prototype JS、Prototype JS(DOM解析、Ajax 处理、CSS支持、JSON支持,浏览器兼容)
四、CS和BS中的Server终端技术选型
1.微软技术体系
ASP.NET WebService、WCF、WebAPI
2、Java技术体系
Java WebService
3、REST、微服务
4.数据库及其访问技术
(1)数据库产品
Sql Server、MySql、Oracle、DB2、Postgre、Redis
(2)数据库访问技术
JDBC、ADO.NET、ORM技术
5.新闻队列技术
(1)RabbitMQ
Erlang重量级新闻队列的开发支持许多协议:AMQP,XMPP, SMTP, STOMP。对路由(Routing),负载均衡(Load balance)或者数据持久化有很好的支持。
(2)Redis
一个Key-Value的NoSQL但是支持数据库MQ功能。提供轻量级队列服务。无论数据大小,Redis出队操作性能优于出队操作性能RabbitMQ。入队操作的性能与数据量有关。
(3)ZeroMQ
所谓最快的消息队列系统,特别是对于大吞吐量的需求场景。技术复杂性高。ZeroMQ具有独特的非中间件模式,不需要安装和运行消息服务器或中间件,只需简单引用ZeroMQ程序库可以在应用程序之间愉快地发送信息。ZeroMQ只提供非持久性队列。
(4)ActiveMQ
类似于ZeroMQ,它可以通过代理和点对点技术实现队列。
(5)Jafka/Kafka
kafka高性能跨语言分布式Publish/Subscribe和Jafka是在Kafka孵化在上面,即Kafka升级版。快速持久,高吞吐,完整的分布式系统,支持Hadoop并行加载数据。
(6)kestrel
快,小,耐用, 可靠性、集群支持和灵活配置。scala开发,运行JVM上面。运行时,队列存储在内存中,并将日志保留在硬盘上进行持久化。支持多请求协议:memcache协议、text协议、thrift协议。
(7)msmq
稳定性、消息优先级、脱机能力、事务性消息处理、安全性、故障恢复能力windows平台。
五、大数据技术
1、hadoop技术组件
HDFS:Hadoop分布式文件系统
Hive:数据仓库
Hbase:分布式数据库
Zookeeper:协调服务分布式应用程序
Sqoop:导入关系数据库HDFS的工具
Thrift:跨语言服务部署框架
Map/Reduce:分布式计算框架
YARN:Hadoop资源管理系统
Kafka:订阅消息系统分布式发布
Flume:Cloudera高可用性、高可靠性、分布式海量日志采集、聚合和传输系统
2、spark技术组件
Spark Core
Spark SQL
Spark Streaming
Spark MLlib
Graphx
3、NoSql数据库
Cassandra
Mongodb
CouchDB
Redis
Riak
Membase
Neo4j
HBase
4.大数据安全技术
除了大数据库,你还需要了解这些未来的技术
1.人工智能、机器学习和深度学习
技术:决策树学习、推导逻辑规划、聚类、强化学习、贝叶斯网络等传统算法;人工神经网络;
应用:无人驾驶(百度、谷歌)、智能问诊(”沃森”)、搜索引擎(语音、图像)、机器翻译、语音助手(siri、小娜,小冰,科大讯飞),智能推荐,围棋。
2、云计算
技术:虚拟化技术,IAAS技术、PAAS技术、SAAS技术
应用:云物联网、云安全、云存储、私有云、云游戏、云教育等。
3、物联网
技术:RFID技术、GPS技术、北斗系统、GSM/GPRS/CDMA移动通信技术,GIS技术、传感器技术、嵌入式系统技术。
应用:智能交通、智能建筑、数字家庭、数字图书馆、数字档案、数字博物馆、文物保护、环境保护、现代物流管理、食品安全控制、数字医疗、防入侵技术、零售、定位导航。
4、容器技术
(1)常用的容器技术
基于Linux的Docker容器、Solaris Zone还是FreeBSD Jail。
微软正与Docker合作,开发Windows容器。
(2)容器技术与虚拟机技术的区别
容器具有轻量级特性,内存空间少,启动速度快,而虚拟机提供了专用操作系统的安全性和更强的逻辑边界。
5、VR、AR、MR技术
VR:虚拟现实是利用计算机模拟创建一个三维空间的虚拟世界,为用户提供视觉、听觉、触觉等感官的模拟,使用户能够及时、无限地观察三维空间中的事物。
AR:通过阅读中心的计算机技术,虚拟信息应用于现实世界,真实环境和虚拟对象实时叠加到同一图片或空间中。
MR:混合现实不仅包括增强现实,还包括增强虚拟,是指合并现实和虚拟世界产生的新的视觉环境。物理和数字对象在新的视觉环境中共存,并实时互动。
七、其他
制定编码规范
2.制定软件工程阶段
QA -PG-IT-ET-OT-ST
3.代码管理技术
SVN,CVS,Git
4、Bug管理技术
jira、BugFree
5.单元测试和自动化测试技术
6.设计模式和设计模式的六个原则
7、MVC/MVP/MVVM
8.其他需要考虑的技术点
(1)容器技术
(2)多线程
(3)同步与异步
(4)过程或线程之间的通信
(5)通信协议
(6)资源管理
(7)内存泄漏
(8)日志系统
(9)异常系统
(10)校准系统
(11)需要考虑更多因素
数据量、吞吐率、性能、实时性、可扩展性、可维护性、可靠性