《大型网站系统与Java中间件》读书笔记(上)

news/2024/5/9 22:03:12/文章来源:https://blog.csdn.net/weixin_34138521/article/details/92409632

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

前言

只有光头才能变强。

文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y

这本书买了一段时间了,之前在杭州没带过去,现在读完第三章,来做做笔记

豆瓣评分

这本书前三章都在科普和回顾中间件/分布式的基础,讲得非常通俗易懂。在之前已经我写过基础分布式相关文章,大家可以先去看看:

  • 外行人都能看懂的SpringCloud,错过了血亏!
  • 什么是ZooKeeper?
  • 什么是消息队列?
  • 什么是单点登录(SSO)

一、为什么分布式?

在之前的文章(外行人都能看懂的SpringCloud,错过了血亏!)也提过为什么要分布式:

  • 模块之间独立,各做各的事,便于扩展,复用性高
  • 高吞吐量。某个任务需要一个机器运行10个小时,将该任务用10台机器的分布式跑(将这个任务拆分成10个小任务),可能2个小时就跑完了

在书上给出的观点:

  • 升级单机的处理能力的性价比越来越低,单机的处理能力存在瓶颈
  • 分布式系统更加稳定和可用(单机挂了就挂了,分布式挂了一般还有备用/不至于整个链路全挂)

1.1 大型网站架构演进过程

其实在没接触过分布式之前,在逛论坛的时候,经常会出现一些看起来很牛逼的词,诸如”读写分离“、”分库分表“、”主从架构“、”负载均衡“、”单点故障“等等名词,就觉得很高大上。下面我就稍微顺着”大型网站架构演进过程“来讲解一下这些词

在我们最开始接触Java项目的时候,一般来说是单机的(数据库、Web服务器都是同一台机器)

数据库、Web服务器都是同一台机器

网站对外开放以后,访问量增大,服务器的压力也随之提高。此时,我们最简单的做法就是可以将数据库和应用分开,这样可以缓解一下当前系统的压力

数据库服务器和应用服务器分开

应用服务器的压力继续增大,我们可以把应用服务器做成集群(说白了,就是加了台机器)

给应用服务器加了一台

加了台应用服务器以后,就出现新的问题了:

  • 用户请求的时候,走哪台服务器啊?
  • Session是依赖单台服务器的,那Session怎么搞?

两个直面而来的问题

解决用户走哪台服务器,我们就在用户请求到达应用服务器之前,加了一个”负载均衡器“,这个”负载均衡器“说白了就写了用户请求会到哪台应用服务器的逻辑

  • 比如说,一个用户请求过来,负载均衡器指派这个请求到服务器A。另一个用户请求过来,负载均衡器指派这个请求到服务器B。这样就平摊了请求— 这种方式就叫做轮询
  • ...策略还有很多种,就看你想怎么实现了,反正这个逻辑的代码放在负载均衡器上。

而Session的问题,我之前写什么是单点登录(SSO)已经讲过了,一般来说我们可以将Session保存在Redis上就行了。

解决请求指派和Session的问题

随着业务的发展,我们的数据量和访问量都在增长,现在有不少的业务都是读多写少的,对于这种业务也是会直接反应到数据库上。

于是,我们可以增加一个读库。写入的操作走服务器C的MySQL,读取的操作走服务器D的MySQL。这样就实现了读写分离

读写分离

一般来说,我们的写库也叫做主库,读库也叫做从库,在互联网架构中,这叫做主从架构,比如常见的架构:一主多从(详细的参考资料:如何给老婆解释什么是 Master-Slave)

主从架构

针对读多写少的业务,我们还有优化策略,引入搜索引擎和缓存

  • 搜索引擎也相当于一个读库,使用搜索引擎的倒排表方式,能够大大提升检索的速度
  • 缓存则将热数据放入内存中,如果查询的数据在缓存中存在,则直接返回

增加缓存和搜索引擎

搜索引擎和缓存的参考资料:

  • Redis合集
  • 什么是Lucene
  • Elasticsearch入门

:这里说的索引和缓存就未必特指ES和Redis,比如缓存我也可以用本地缓存而不一定是Redis的。这里用Redis和ES只是我画图方便。

继读写分离之后,数据库还是遇到了瓶颈,此时我们就可以采用分库分表策略了:

  • 垂直拆分— 不同的业务数据分到不同的数据库
  • 水平拆分— 将同一张表的数据拆分到不同的数据库中(原因是这张表的数据量/更新量太大了)

垂直拆分示例图

注:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表(如果预计三年都达不到这个数据量,不要在创建表的时候就分库分表!) —《阿里巴巴 Java开发手册》

在数据存储方面,除了关系型数据库之外,如果有别的业务场景,可能还需要引入分布式存储系统

  • 分布式文件系统
  • 分布式Key-Value系统
  • 分布式数据库

数据库问题解决之后,应用也面临着挑战(应用的功能会越做越多,应用也随之越做越大),为了不让应用持续变大,这就需要把应用拆开,从一个应用变为两个/多个应用。

应用拆分

不同功能/模块之间的调用不再单纯通过本机调用,引入了远程的服务调用

某个应用只有一台机器上运行着,如果这台机器上出现了问题,导致这个应用无法运行,这就叫单点故障

最后

这本书《大型网站系统与Java中间件》的前三章主要是铺垫什么是中间件、什么是分布式(从单机演进到分布式的过程)以及讲述了网站的架构演进过程,剩下的是回顾一些基础。比如说:

  • bio/nio/aio
  • HTTP/Session
  • JVM
  • Java多线程以及并发的基础知识
  • JUC包下的常见类

这些我都曾经多多少少都做过笔记,不妨在我的公众号下找找相关的文章。总的来说,还是读得很过瘾的!后面读完下面的章节,我会继续分享,敬请期待。

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,关注即可获取!

转发到朋友圈是对我最大的支持!

觉得我的文章写得不错,点

转载于:https://my.oschina.net/u/3777556/blog/3060002

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_787679.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改.htaccess文件设置网站默认打开静态页面

为什么80%的码农都做不了架构师&#xff1f;>>> .htaccess文件设置网站默认打开静态页面的方法。首先复制如下代码&#xff1a; <Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files> DirectoryIndex index.html index.php order den…

部署HTTPS让让网站安全运行,https证书的重要性

现在网络安全事件越来越多&#xff0c;随着各大浏览器对网络安全的重视&#xff0c;对HTTPS的强力支持&#xff0c;HTTPS已成为主流&#xff0c;企业要做的是防患于未然-部署SSL证书实行HTTPS加密&#xff0c;让数据在传输之初就得到保护。千万不要小看HTTPS对数据隐私的保护。…

企业网站安装SSL证书的优势

网站安装SSL证书和没有安装SSL证书有很大的区别&#xff0c;而安装SSL证书的网站不仅为网站安全带来了好处&#xff0c;同时也是为想要访问网站的客户提供了一个一个安全的上网环境。安装了SSL证书的网站有以下几点优势。 1.SEO优化。 现在大多数浏览器都优先抓取和收录安装了…

Comodo和SymantecSSL证书分别适合什么样的网站

Comodo和Symantec这两个品牌的SSL证书从价格上看就是两个极端。一般Comodo的SSL证书在同类型的SSL证书中价格最低&#xff0c;而Symantec的SSL证书在同类型的SSL证书中价格最高。两个品牌的定位不同&#xff0c;它们适合的网站也不同。 首先Comodo这个品牌现在已经正式更名为S…

免费SSL证书是否适合企业类网站

ssL证书因为成本、维护等原因是需要收费的&#xff0c;但是有很多机构觉得每年ssl证书都要付费太费钱了&#xff0c;就开始研究出了免费ssl证书&#xff0c;今天就由ssl盾小编讲解企业网站适不适合这种免费ssl证书。 企业网站分为展示型、商城型、综合型&#xff0c;免费ssl证书…

ssl证书安装之后对网站有哪些好处

说实在的&#xff0c;现在身边很多人都建议有网站的人安装SSL证书&#xff0c;都知道安装ssl证书对网站很好&#xff0c;那到底有什么好处呢&#xff1f; 1.网站传输信息加密。要知道没有安装SSL证书的网站使用的还是http连接&#xff0c;没有加密&#xff0c;也无法识别信息来…

OV SSL证书适合的网站

OV SSL证书是SSL数字证书的一种&#xff0c;又称组织验证数字证书。这款SSL证书不适合个人申请&#xff0c;只适合企业申请&#xff0c;那么OV SSL证书具体是何哪些网站呢&#xff1f; 首先&#xff0c;要知道申请OV SSL证书是需要域名验证电话验证的&#xff0c;这就需要申请者…

在大型电商网站中哪些SSL证书比较适合

大型电商涉及的资金往来比较多&#xff0c;DV SSL证书已经不太适合&#xff0c;OV SSL证书和EV SSL证书的安全等级比DV SSL证书要高很多&#xff0c;是比较适合大型电商类的网站。其中Digicert和GlobalSign这两个SSL证书品牌是比较不错的选择。 Digicert和GlobalSign都比较侧重…

SSL证书中的安全站点证书对金融银行网站的好处

对于涉及很多安全隐私的金融行业和银行网站来说&#xff0c;一个足够安全的上网环境是必要的&#xff0c;而SSL证书中的Digicert的安全站点证书在这一方面有很大的优势。 Digicert的安全站点SSL证书其实是原Symantec的SSL证书&#xff0c;自从Digicert合并了Symantec这个牌子的…

建站用什么cms_逐浪CMS告诉你安全性高的CMS建站系统是怎样一种体验?

CMS建站系统有使用者非常多&#xff0c;很多个人站长或者小企业者都是选择了用CMS来建站&#xff0c;可是建站容易运营难&#xff0c;网站的安全性就是一个非常大的问题。但并不是所有的CMS的安全问题都是这么令人头疼。在与逐浪CMS客户服务经理一次偶然的聊天过程当中&#xf…

基于SSM+VueCDN 的二手房交易网站设计与实现

之前的练手项目简单双向交易,页面有很多Vue模块的实现所以只有两个html,且细节粗糙 找房情况,搜索框为axios异步 进入预约界面 付款后

基于SpringBoot与VueCDN+ElementUI实现的教育辅导网站的设计与实现(毕业设计项目)

有简单使用springsecurity 页面效果: 登录后 教师认证后 私教列表与辅导班列表相似填写发布后

公司网站能不能使用免费ssl证书?

ssl证书使http站点转换为https站点&#xff0c;可以加密防劫持&#xff0c;防篡改等 下面为您解答下公司站点能不能使用免费ssl证书。 公司网站分为展示型&#xff0c;商城型&#xff0c;大型综合性&#xff0c;在线交易型等站点. 如果公司网站没有用户名系统&#xff0c;仅仅…

SSL证书到期后在网站自助续费

网站域名SSL证书都是存在使用有效期的&#xff08;一次只能注册1年或2年&#xff09;&#xff0c;域名证书过期后&#xff0c;Web网站就会出现安全警告&#xff0c;严重影响用户访问。那么SSL证书到期前该如何自助续费呢&#xff0c;下面SSL盾小编以SSLDUN为例进行具体说明下自…

java反射优化_「java反射」Java 反射 - seo实验室

java反射Class 对象如果想在运行时使用类型信息&#xff0c;就必须首先获得对恰当的Class对象的引用。getClass()方法来获取Class引用。这个方法属于Object类的一部分&#xff0c;它将返回该对象实际类型的Class引用。拥有Class对象可以使用getSuperClass()方法查询其基类&…

企业网站安装SSL证书的优势

网站安装SSL证书和没有安装SSL证书有很大的区别&#xff0c;而安装SSL证书的网站不仅为网站安全带来了好处&#xff0c;同时也是为想要访问网站的客户提供了一个一个安全的上网环境。ssl盾小编就总结了安装了SSL证书的网站有以下几点优势。 1.SEO优化。 现在大多数浏览器都优…

免费SSL证书是否适合企业类网站

ssL证书因为成本、维护等原因是需要收费的&#xff0c;但是有很多机构觉得每年ssl证书都要付费太费钱了&#xff0c;就开始研究出了免费ssl证书&#xff0c;今天就讲解企业网站适不适合这种免费ssl证书。 企业网站分为展示型、商城型、综合型&#xff0c;免费ssl证书比较适合展…

在大型电商网站中哪些SSL证书比较适合

大型电商涉及的资金往来比较多&#xff0c;DV SSL证书已经不太适合&#xff0c;OV SSL证书和EV SSL证书的安全等级比DV SSL证书要高很多&#xff0c;是比较适合大型电商类的网站。其中Digicert和GlobalSign这两个SSL证书品牌是比较不错的选择。ssl盾小编带大家认识这些SSL自助。…

html网站实现站内搜索功能_房地产网站该怎样建设,要如何运营?

房地产一直在国民经济中占有重要地位。特别是近年来&#xff0c;房价一直在上涨&#xff0c;大型房地产公司赚了很多钱。今天&#xff0c;房地产开发商正在通过互联网进行新一轮的竞争。通过互联网&#xff0c;他们可以获得一定数量的页面浏览量&#xff0c;在传播自己的房地产…

Python 爬取小说点评网站,用大数据方法找小说

优书网是一个老白常用的第三方小说点评网站 首先爬取优书网–>书库 通过书库翻页来获得书籍相关信息 def get_url():url "http://www.yousuu.com/bookstore/?channel&classId&tag&countWord&status&update&sort&page"headers {Us…