`

<<大型网站系统与Java中间件实践>> 读书笔记(第2章)

 
阅读更多

        最近正准备采购这本书,正好iteye上开展试读活动中有这本书,就下载试读了第二章,第二章主要将了如何去定位一个网站是否是大型网站,以及一个网站随着自身的业务发展,我们如何去架构它,通过以上两点,结合下自己的一些认识,发表下自己的感想:

 

1、如何是定位一个网站是否大型网站?

      大家都清楚,我们构建一个网站就是给广大的用户提供服务,那么我们怎么更好的提供服务,首先我们必须提供丰富的信息(数据),这是最基本,没有数据等于没有网站是个空白,更没有我们下面所说的访问量。

网站的提供了丰富的信息,用户从中得到了他想要的,需要的,他们会经常访问这个网站。我非常赞同书中所说的从数据量和访问量两个维度去定义个网站的规模。

 

2、网站的演变过程

      网站的业务从过去的简单到如今的复杂,网站的架构也越来越复杂,考虑的因素越来越多(单点、读写分离、并发等).

      网站的共享session的几种解决方案,Session Sticky、Session Replication、Session 数据集中存储以及Cookie Based

      上面我们说到网站的数据量越来越大,数据库面临的压力越来越大,我们如何拆分数据,如何减轻数据库的压力,通过读写分离、nosql、以及sharding的垂直和水平方式去拆分数据。

      最后网站的架构发展到服务化,各个系统通过消息或者通过rpc通讯相互调用。

 

 

读了第二章影响比较深就是写的比较通俗易懂。

 

 

分享到:
评论
2 楼 zong.jianhui06 2014-06-11  
讲的不错,比我的好啊

asle 写道
    在分布式系统设计中,为了提供更好的非质量属性(高可用,可扩展,互信安全等),系统伸缩性问题是我们关注的核心问题,它主要表现在网络和服务器的容量(即书中所谈及的数据量)和性能(即应用程序的计算逻辑)问题,原则上讲只存在三种伸缩技术:隐藏通信延迟,分布和复制。
    隐藏通信延迟:主要针对的是地理的伸缩性问题。它的基本思路很简单:尽可能避免等待远程服务的回复。从本质上来讲,这就要求我们尽可能的采用异步通信的方式来构成服务请求的应用,在服务回复到达的时候,用户可以继续服务请求的处理。
    分布:涉及到将一个较大的组件分解成更小的部分,然后将它们部署在整个系统上(而不是一台机器上)。由于组件分布在不同的机器上面,不可避免的带来了网络损耗。
    复制:不仅可以提供系统的可用性,而且可以帮助我们在组件之间实现采用负载均衡而使系统达到更好的性能。同事,对于地理位置比较分散的分布式应用,一个较近的资源就可以隐藏通信延迟。缓存是一种特殊形式的复制,是对资源做的一个拷贝。复制天然的会来一个数据不一致的问题,这是有数据的多点分布这个特性带来的
    从上面三个基本点来说,分布式系统本身就是一种折中的方案,对于CAP定理,从本质就决定我们不可能同时满足所有的客观要求。针对上面的三种基本技术,一般来说一个分布式系统的分析和设计就必须解决下面的7个子问题:
(1)高级通信问题。计算机网络通信的模型本质上计算机之间的消息传递。
(2)进程和代码的分布。将应用系统的代码处理和进程进行分布构成分布的最基本的思想。最近的研究集中在代码在分布环境下的迁移和基于主体的应用。
(3)资源的命名服务。在大规模分布的环境中,资源的命名和管理是一个关键的问题。如何采用一致的方式进行资源的命名,资源的访问和资源的配置就构成了命名服务研究的主要问题。
(4)分布式事务处理。
(5)复制与一致性问题。
(6)分布式容错系统。
(7)分布式安全设计。
     任何设计都不能减少系统本身的业务逻辑性的复杂度,这是系统本身的商业环境和业务场景决定了系统在实现难度上的基本难度下线,我们的设计只能不断的逼近这个难度下线,通过系统性的思考来综合考虑一个分布式系统的设计会是有个不错的方式。

1 楼 asle 2014-06-11  
    在分布式系统设计中,为了提供更好的非质量属性(高可用,可扩展,互信安全等),系统伸缩性问题是我们关注的核心问题,它主要表现在网络和服务器的容量(即书中所谈及的数据量)和性能(即应用程序的计算逻辑)问题,原则上讲只存在三种伸缩技术:隐藏通信延迟,分布和复制。
    隐藏通信延迟:主要针对的是地理的伸缩性问题。它的基本思路很简单:尽可能避免等待远程服务的回复。从本质上来讲,这就要求我们尽可能的采用异步通信的方式来构成服务请求的应用,在服务回复到达的时候,用户可以继续服务请求的处理。
    分布:涉及到将一个较大的组件分解成更小的部分,然后将它们部署在整个系统上(而不是一台机器上)。由于组件分布在不同的机器上面,不可避免的带来了网络损耗。
    复制:不仅可以提供系统的可用性,而且可以帮助我们在组件之间实现采用负载均衡而使系统达到更好的性能。同事,对于地理位置比较分散的分布式应用,一个较近的资源就可以隐藏通信延迟。缓存是一种特殊形式的复制,是对资源做的一个拷贝。复制天然的会来一个数据不一致的问题,这是有数据的多点分布这个特性带来的
    从上面三个基本点来说,分布式系统本身就是一种折中的方案,对于CAP定理,从本质就决定我们不可能同时满足所有的客观要求。针对上面的三种基本技术,一般来说一个分布式系统的分析和设计就必须解决下面的7个子问题:
(1)高级通信问题。计算机网络通信的模型本质上计算机之间的消息传递。
(2)进程和代码的分布。将应用系统的代码处理和进程进行分布构成分布的最基本的思想。最近的研究集中在代码在分布环境下的迁移和基于主体的应用。
(3)资源的命名服务。在大规模分布的环境中,资源的命名和管理是一个关键的问题。如何采用一致的方式进行资源的命名,资源的访问和资源的配置就构成了命名服务研究的主要问题。
(4)分布式事务处理。
(5)复制与一致性问题。
(6)分布式容错系统。
(7)分布式安全设计。
     任何设计都不能减少系统本身的业务逻辑性的复杂度,这是系统本身的商业环境和业务场景决定了系统在实现难度上的基本难度下线,我们的设计只能不断的逼近这个难度下线,通过系统性的思考来综合考虑一个分布式系统的设计会是有个不错的方式。

相关推荐

Global site tag (gtag.js) - Google Analytics