`

<<大型网站系统与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)分布式安全设计。
     任何设计都不能减少系统本身的业务逻辑性的复杂度,这是系统本身的商业环境和业务场景决定了系统在实现难度上的基本难度下线,我们的设计只能不断的逼近这个难度下线,通过系统性的思考来综合考虑一个分布式系统的设计会是有个不错的方式。

相关推荐

    韩顺平JSP学习笔记+源代码

    请输入第二个数:&lt;input type="text" name="num2"&gt;&lt;br/&gt; &lt;input type="submit" value="计算" onclick="return checkNum();"&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt; &lt;!-- myResult.jsp --&gt; &lt;%@ page contentType="text/html;...

    Java Springboot入门自学笔记

    - 使用`logging.level.&lt;package&gt;=&lt;level&gt;`控制日志级别。 #### 2.3 数据源配置 - 自动配置支持多种数据库,如H2、MySQL、PostgreSQL等。 - 通过`spring.datasource.*`属性进行数据源配置。 ### 03 整合第三方技术 ...

    2018最新JAVA架构师培训视频教程(附笔记、源码 、视频 网盘链接 详细)

    018最新JAVA架构师培训视频教程(附笔记、源码、视频教程 全网盘链接) 内含完整资料及代码: 一、互联网并发编程 二、互联网网络通信编程 三、JAVA虚拟机 四、Linux部分 五、数据库设计与优化 六、互联网...

    魔乐李新华javase笔记第一天.doc

    Oracle拥有了强大的数据库系统、中间件产品以及Java编程语言,进一步巩固了其在企业级市场的地位。而Java也分化为三个主要方向: - **Java SE(原J2SE)**:主要用于桌面单机程序开发。 - **Java EE(原J2EE)**:专...

    淘淘商城笔记

    《淘淘商城笔记》主要涵盖了Java技术在电商系统开发中的应用,这是一份详细记录了淘淘商城系统架构和技术选型的学习文档。由于文件名仅给出"笔商城记",推测这可能是文档的部分章节或者子目录,具体内容可能包括但不...

    技术笔记(第二部分整理)

    【技术笔记(第二部分整理)】 本笔记涵盖了广泛的IT技术领域,主要集中在Web开发和Java相关的框架与工具。以下是对各个知识点的详细说明: **Web前端** **HTML5** HTML5是HTML的最新版本,引入了许多新特性以...

    2021最新java面试合集pdf.rar

    爱奇艺2021Java方向笔试题(第一场).docx 看透springMvc源代码分析与实践.pdf 网易2021招聘笔试- 系统开发研发工程师(提前批).docx 网易2021笔试- Java 开发工程师(提前批).docx 网易2021笔试- Java 开发工程师...

    activemq activeMq笔记

    Apache ActiveMQ 是一款非常流行的开源消息中间件,它支持 Java 消息服务 (JMS) 标准,并提供了多种高级功能,例如持久化、集群、故障转移等。ActiveMQ 能够帮助开发者实现解耦、可靠的消息传输以及高性能的应用程序...

    中间件技术及应用考试复习重点

    #### 第一章 中间件产生背景与分布式环境 ##### 一、中间件的基本概念 1. **中间件定义**:中间件是位于系统软件(如操作系统和网络软件)与应用软件之间的一种软件层。它的主要功能是使不同的应用软件能够跨越...

    尚硅谷周阳SpringCloud第一季笔记(超详细非官方手工笔记)

    SpringCloud是中国Java开发者广泛使用的微服务框架之一,它基于Spring Boot进行快速构建分布式系统中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群...

    尚硅谷周阳SpringCloud第一季笔记

    以上知识点是根据“尚硅谷周阳SpringCloud第一季笔记”中的主要内容推测的,这些笔记详细记录了学习SpringCloud过程中所涉及的关键概念和技术点,对于想要掌握SpringCloud的开发者来说,是一份宝贵的参考资料。...

    j2ee超级核心技术笔记与代码

    JMS是Java平台的中间件通信规范,支持点对点和发布/订阅两种消息模型,常用于解耦系统组件间的通信。 六、Java Transaction API(JTA) JTA提供了分布式事务处理的接口,确保跨多个资源的事务一致性。 七、Web ...

    第五章JDBC技术.pptx

    3. **JDBC网络纯JAVA驱动程序**:通过中间件服务器与数据库通信,驱动本身较小,加载速度快,但中间件层仍需配置其他驱动。 4. **本地协议纯JAVA驱动程序**:最高效,直接将JDBC调用转换为数据库的网络协议,无额外...

    学习笔记.md

    ### JavaWeb 学习笔记知识点总结 #### Spring Boot 和 Spring MVC 的区别 1. **Spring MVC**: - **定位**:Spring MVC 是 Spring 框架中的一个重要组成部分,主要用于构建 Web 应用程序。 - **作用**:提供了一...

    EJB学习笔记.doc

    2. 第一个EJB:讲解EJB编程的基本步骤,特别是EJB3.0的编程模型。 3. 会话Bean:深入学习两种类型的会话Bean,包括无状态和有状态会话Bean。 4. 会话Bean发布为Web服务:如何将EJB作为Web服务公开。 5. 实体基础:...

Global site tag (gtag.js) - Google Analytics