随笔分类 - 阅读笔记
摘要:服务调用 分布式框架中,引入NIO 带来的好处: 1.所有的I/O 操作都是非阻塞的,避免有限的I/O线程因为网络,对方处理慢等原因被阻塞。 2.多路复用的Reactor 线程模型:基于Linux 的epoll 和 Selector ,一个I/O 线程可以并行处理成百上千条链路,解决了传统同步I/O
阅读全文
摘要:序列化与反序列化 序列化和反序列化是RPC框架的基础组成部分,设计的好坏对服务化框架的性能、可扩展性和可靠性影响都很大。尽管业界存在多款序列化框架,但是我们在设计时需要从功能丰富度、跨语言支持、兼容性、性能,甚至社区活跃度等多个角度去综合考量,从中择优。 Serializable, xml, jso
阅读全文
摘要:应用框架演进 MVC (Modle View Controller) 架构: 当业务规模很小时,将所有功能都部署在同一个进程中,通过双机或者前置负载均衡器实现负载分流;此时,用于分离前后台逻辑的 MVC 架构是关键。 RPC (Remote Procedure Call)架构:当垂直应用越来越多,应
阅读全文
摘要:8.无状态系统 只有当业务确实需要的时候,才使用状态。 无状态的系统更利于扩展,更利于做负载均衡。 9.水平扩展非垂直升级 永远不要依赖更大、更快的系统。 微服务是水平扩展的一个例子,不要把所有的功能都集中在一个系统里面。必要的时候把需求分为多个系统,而不是升级原有的系统。 10.设计至少有两个步骤
阅读全文
摘要:《架构即未来》这本书的第12章简单阐述了架构设计的一些常用的原则。 1.N+1设计 要确保任何你所开发的系统在发生故障时,至少有一个冗余的实例。 一个实例确实很危险,当这个实例出现不明原因的问题不能对外服务,需要debug的时候,如果优先debug,那当前实例就要暂停服务直到你找到问题为止。如果你直
阅读全文
摘要:《架构即未来》第一部分主讲组织和人在架构中的作用与地位。总结成一句话就是:人才是根本。 架构之道在于人,可扩展性的关键是人 人增加越多,每个成员的单位沟通和协调成本就越大。尤其个性解放的年代,每个小伙伴的性情各异,成长背景,工作经历都不尽相同,所以导致成员间的性格差别,做事风格迥异,要大家统一遵守一
阅读全文
摘要:Refined Architecture是相对于 Conceptual Architecture而言的,它们是架构设计的两个层次,分别对应于“概念级”解决方案和“规约级”解决方案(如图12-1所示)。须要注意的是, RefinedArchitecture(细化架构)属于架构设计,不能与 Detail
阅读全文
摘要:《大型网站技术架构:核心原理与案例分析》第2篇对架构进行了详细的讲解。这一部分包括5个章节:性能、可用性、伸缩性、可扩展性、安全。 第四章:瞬时响应:网站的高性能架构 4.1 网站性能测试:性能测试是为性能优化的前提和基础,也是性能优化结果的检查和度量标准。不同视角下的网站性能有不同的标准,也有不同
阅读全文
摘要:大型网站核心架构 关于什么是架构,一种比较通俗的说法是:“最高层次的规划,难以改变的决定”,这种规划和决定奠定了事物未来发展的方向和最终的蓝图。 具体到软件架构,维基百科这样定义:“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计”。 一般说来,除了当前的系统功能需求外,软件架构
阅读全文
摘要:今天读了《大型网站技术架构:核心原理与案例分析》的第一篇第一章和第二章,第一章主要讲的是大型网站架构的演化,第二章主要讲了大型网站的架构模式。感觉这本书有点偏理论性。 1 大型网站架构演化 1.1 大型网站特点 高并发 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频
阅读全文
摘要:安全性战术有三个方面:抵抗攻击、检测攻击和从攻击中恢复。 抵抗攻击 对用户进行身份验证、对用户进行授权这两个方面暂时未涉及到。 维护数据的机密性是保证用户接收到的数据和发送方发送的数据一致。目前还不知道怎么重构信息化领域热词分析系统来实现这方面的要求。 维护完整性这一方面没怎么搞明白书上到底什么意思
阅读全文
摘要:系统的质量属性:可用性,可修改性,性能,安全性,可测试性和易用性。 可用性 刺激源 服务器集群 刺激 单个服务器宕机 环境 正常运行 制品 淘宝网 响应 将服务由另外的服务器继续提供支持 响应度量 15s内完成服务的转移 可修改性 刺激源 开发人员 刺激 更改商品搜索算法 环境 正常运行 制品 淘宝
阅读全文
摘要:第三章用一个故事来讲了软件开发的方向,作者将软件开发的过程比作了开车。软件开发就是做好准备后开始“行驶”,期间需要不停地“打方向盘”。 好的项目管理方法可以描述为:“预备……发射……瞄准……瞄准……瞄准……瞄准……瞄准“ 第四章题目是:平衡职权。这一章主要讲的是”业务人员进行业务决策。技术人员进行技
阅读全文
摘要:这本书第二章讲的是“担心”。看到题目和摘要,感觉很疑惑,担心和勇气有什么关系?读完这一章,我才发现,真的是有些联系的。 软件开发是有风险的,有关人员非常担心什么都可能会出错。为了有效地进行开发,我们必须承认这一事实(这些担心)。我们需要有勇气去承认这些事实。 第一部分的标题点明了项目失败的原因:不承
阅读全文
摘要:这几天看了点《规划极限编程》这本书。 第一章讲的是开发软件之前要有计划,这一点和之前看的代码大全(第二版)里开头讲的一样,都是软件开发之前必须有规划,要先做好构建工作。开篇用Kent的经历说明了计划的重要性。当我们面临困难时不能慌张,慌张也于事无补,应当制定好计划,虽然可能结果与预期有些不同,但是总
阅读全文
摘要:今天看了构建之法的第五章:团队和流程。团队和流程这一部分主要讲了一些团队模式和开发的流程。 软件团队的模式:最初可能只是一窝蜂模式,然后逐渐演变成以下几种模式 主治医师模式:一个主刀医师,其他人为主刀医师服务,然而这种模式很容易退化为“一人干活,其他人打酱油”。 明星模式:主治医师模式的极致,一个人
阅读全文
摘要:今天看了构建之法的第四章:两人合作。这一部分不止讲了该如何写代码,还讲了作为一名程序员,该如何与他人交流,与团队成员交流。 代码规范包含:代码风格规范、代码设计规范 代码风格的原则是:简明、易读、无二义性 缩进:最好不用TAB键,一般4个空格的距离正合适;我在编程中总是使用TAB键来规范格式,这种做
阅读全文
摘要:这几天看了一部分《构建之法》这本书,突然发现有些例子王老师在课上已经给我们用过了,比如说第一章开头的四则运算那个例子,一开始只是让我们在eclipse的控制台输出式子进行运算,后来改成文件,再后来改成网页。在这个过程中,一个小程序,慢慢变成了某种意义上的软件(最终成果太差,还算不上软件)。我认为这就
阅读全文
摘要:这本书5、6、7、8、9章是第二部分的内容,主要与代码质量有关。 第五章讲了软件构建中的设计。 设计是一个险恶的问题。意思就是这个问题只能通过解决后有了经验才能明确。 设计是个了无章法的过程。设计的过程中会出很多错误,在设计的过程中出错比在编码的过程中出错代价小的多。 设计就是确定取舍和调整顺序的过
阅读全文
摘要:第四章主要讲的是一些细节问题,比如使用什么编程语言来编程、编程过程中的一些约定等等 计算机语言 机器语言:计算机最底层的语言,不是给人用的 汇编语言:计算机的一种低级语言,运行速度较快。如果有兴趣arm,嵌入式,单片机可以深入学一下。对理解内核有帮助。 中级语言:C语言 一种中级语言,实用,效率高。
阅读全文