互联网技术概述

互联网技术日新月异,发展得比较快,这里想聊聊互联网技术有哪些,不涉及很具体的原理介绍,从最高层次上去把握技术领域。

从以下几个方面来介绍:存储、计算、运维、稳定性四个方面来介绍。

1. 存储技术

这是一个很大的话题,用一本书来介绍它都不为过。存储分为持久化存储和非持久化存储。持久化存储如mysql等,非持久化存储如memcache等。存储又可以分为以下几个方向来介绍:

1)持久化存储:mysql,这里关注的是如何快速、安全存储和访问数据。如mysql主备切换、mysql读写分离,当然这是最基本的内容。当数据量一上来后,要使用到分库分表,分库分表最大的难题就是规则定义和路由,目前也有一些分库分表的中间件,如mycat等。做到这一步,基本上持久化层数据没有什么问题,理伦上做到了水平扩展的分表,可以存储海量的数据。这里提一点,mysql有一个binlog,可以解析这个binlog用作后面做很多的事,可以结合mq来完成你意想不到的事。

2)非持久化存储:这类主要用于缓存、消息等领域。缓存是性能优化常用的手段之一,如mysql+redis可以解决很大一部分问题;消息是两个系统进行通信暂存的手段之一,用于流量削峰、异构系统通信、异步处理等。

以上两类是常见的模式,如果算上大数据方向,还有一些存储技术,如HDFS等分布式存储框架,在我看来,这些分布式存储框架吸起了单机存储的思想,在单机存储系统中,有元数据管理+数据块存储,在分布式存储中,有资源管理节点+数据存储节点。

为了加快存储访问速度,加了如索引、缓存等技术,存储引擎是一个关键点,不管我们看到有多少产品,底层的存储引擎其实不多:hash、B树、LSM。这里有几点可以和大家分享下:数据访问具有局部访问特性(面向块存储)、有序访问比无序访问要快、数据读写之前要寻道(尽量减少寻道时间,顺序写效率才会高)。


2. 计算

计算也是一个大的话题,常用计算有任务调度(quartz,spring-batch)和分布式计算。quartz用于单机还不错,不太适合用于并行计算,其实数据量一大,并行计算的威力才会发挥出来,它的思想是任务分片,将任务划分成一系列的子任务,然后节点拿到子任务后,在内部它也会分成多线程来处理,一个主线程获取所有的数据,然后其它子线程拿数据进行处理。分布式计算框架也比较多,如mapreducer、storm等,分布式计算的思想还是分而治之的思想。


后面的两个话题先放一下,大家最关心的是互联网中常说的高并发、高性能、高可用。其实理解上面的三高得从本质上去看,何为高并发、高可用?从本质上去理解这些,有些手段就会自动出来。高可用的本质就是我一台机器挂了,不能影响服务,如何做到?冗余呗,多节点部署就会解决这个问题,这是最简单的层次,深一点的可能考虑限流和服务降级(部分可用与down机是两个不同的效果),服务也可以分等级,有些可以使用,有些不可以使用。所以理解高并发也是一样的。

最好的服务是能支持横向扩展的,就是访问量上来了,加机器就行,其实要做到这一点,还是不容易的,能够支持横向扩展有一个要求,就是机器或者服务之间是独立的,要做到这一点,可以从服务独立性和依赖数据集中化来考虑,也即大家常说的无状态。

今天先洋洋洒洒地写了一部分,后面会再写些detail的内容出来和大家分享,这里面的每一项都是一个大的话题,里面包含的内部很多内容,感兴趣的同学可以一起聊聊,个人微信:13512717641。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值