技术栈包括哪些 互联网开发人员需知的108个技术栈?

在软件开发行业扑腾了快三年了 , 多少积累或者了解了一些技术 , 整理总结一下 , 与诸位共享 , 欢迎各位补充 , 评论!
数据层
数据层主要作用是存储数据 , 大概分为两类 , 一类是关系型数据库 , 一类是非关系型数据库;
mysql数据库目前在互联网行业中应用最多 , 主要原因是免费 , 生态圈好 , 用的人多 , 资料多 , 遇见问题能够在网上找到很多资料 。
mysql的局限性在于存储的数据量相对较小(与oracle相比) , 当表中记录到千万级别时 , 性能下降很快 , 不过在高手如林的IT行业 , 很多牛人研发出了相应问题的解决方案 , 如分表、分库 , 同时有很多与之相关的高可用方案 , 如mycat、Haprox、MHA;
oracle数据库 , 目前应用也比较多 , 但由于收费的原因 , 失去了很多用户 , 当然在数据量不大的情况下 , 也不会有人找你收费 , 当向你收费的时候 , 恭喜你 , 相信业务已经达到一定规模了 。
SqlServer数据库 , 在互联网行业应用较少 , 一些传统行业应用较多 , 关于对SqlServer的了解 还是停留在大学的时候水平 , 不多介绍 , 不过在传统行业如:数字矿山 , 地理信息系统 , CAD辅助制图等还有一定应用 。
非关系型数据库的有点在于数据结构灵活 , 使用方便 。但功能相对于关系型数据库较为简单 , 尤其在事务管理 , 一致性保证 , 锁等方面 。
memcache是一种高性能 , 分布式内存对象缓存系统 。优点在于高性能以及分布式的实现及其方便 , 但在数据结构上较为单一 , 并且不能持久化 。关于memcache的使用 会在以后的文章中做详细介绍 。
redis 一种比较典型的NoSQL数据库 , 具备丰富的数据类型与高效的存取速度 , 基于redis可以实现分布式消息队列 , 分布式锁等诸多功能 。redis不仅可以做缓存 , 而且具备持久化功能 , 即便机器宕机后 , 数据也不会丢失 。
mongoDb一种很高效的数据库 , 一般用来存储数据量较大的非结构化数据 , 如博客、文档、网页等 。存取速度优于mysql , 但在事务性和锁等方面特性较弱 。目前很火的一种数据库 。
Hbase 一种大数据领域的数据库 , 了解不多 。欢迎各位补充其特性… …
消息中间价
消息中间件一般用于各个模块、系统之间的异步通信 , 降低各个模块之间的耦合性 。详细介绍后续总结… …

技术栈包括哪些 互联网开发人员需知的108个技术栈?

文章插图
分布式技术
LVS的全称是linux virsual server , keepalive用于检测各个机器是否存活 。这种分布式比较简单 , 不需要太多的开发工作 , 局限性在于一般只能用于无状态服务中 。
nginx一种很常用的反向代理服务器 , 具有丰富的负载均衡策略 , 简单易用 。
zookeeper 分布式服务的管理者 , 在hadoop、kafka、分布式框架中几乎都有所应用 。
技术栈包括哪些 互联网开发人员需知的108个技术栈?

文章插图
RPC框架
分布式通信框架主要是使服务的远程调用跟调用本地化方法一样简单 。