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

news/2024/5/13 12:52:04/文章来源:https://blog.csdn.net/weixin_30580943/article/details/98566404

前言

只有光头才能变强。

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

回顾上一篇:

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

这周周末读了第四章,现在过来做做笔记,希望能帮助到大家。

注:在看这篇文章之前,强烈建议先看看我之前写过的一篇SpringCloud入门文章:外行人都能看懂的SpringCloud,错过了血亏!。看完再回头看这篇文章,你会发现:这本书讲的设计与实现在SpringCloud中几乎都有对应的组件支持。

一、服务框架的设计

从上一篇我们讲到,应用拆开了以后,不同功能/模块之间的调用不再单纯通过本机调用,引入了远程的服务调用

服务拆分

而远程的服务调用这个东东会很难吗?说白了,不就是两台服务器之间通信吗?

远程的服务调用

这时候,你能想到什么?必定是Socket吧。没错,我们通过Socket肯定是可以完成两个系统之间的通信的问题的。(Socket相信大家在学习基础的时候已经写过Demo了,这我就不多BB了)

Socket完成系统之间的通信

一两个系统的Socket写起来没啥,但我们应用拆分之后,系统可是会变得很多很多。

系统会变得非常多

系统很多的情况下,我们在写远程调用代码的时候就可能要考虑到以下的问题:

  1. 我们肯定是不希望每次远程调用的时候都贴上重复的Socket代码,要是调用远程方法像调用本地方法一样简单就好了。
  2. 某个服务应用为了实现高可用,集群了(多台机器部署同一套应用)。那我远程调用的时候选择哪一台机器进行调用?
  3. 网络之间的传输协议用现成的HTTP呢?还是自定义一套通信协议呢?
  4. 因为我们想调用远程方法像调用本地方法一样,那么在网络上就需要传输Java对象,要传输Java对象,就必须得对其进行序列化和反序列化的处理。能实现序列化的操作也有很多,选择哪一种方式呢?
  5. 网络之间的通讯也有bio、nio、以及aio这几种模式,一般来说我们会选择哪种比较多?如果不了解nio的同学,可以阅读我以前写过的笔记(nio你了解多少?)
  6. ….等等等

由于系统之间的调用会非常多,我们自然是不希望写重复的代码的,所以服务框架(也可以说是RPC框架)就应运而生了【说白了就是专门处理远程服务调用的框架】。有了服务框架,我们就可以实现多个系统之间以统一的方式来进行远程调用了。

  • 推荐阅读:RPC太太太太太太太容易理解啦!

一个服务框架需要考虑的问题其实远不止上面所列出的那些,比如说:

  • 服务框架与Web应用和Web容器的关系是什么?服务框架和应用是绑定在一起吗?(服务框架作为Web应用的一个依赖包),还是说服务框架只是Web应用的一个扩展(没有和Web应用打包绑定在一起)
  • 服务框架的jar包和Web应用的jar包冲突了怎么办?
  • 为了保证系统的稳定性,流量控制也应该要考虑到
  • 在远程调用的时候,需不需要以更细粒度的方式来进行选择(之前说的是选择哪台机器,但可以细粒度到机器下的接口或者方法)
  • ....等等

二、服务框架的技术实现思路

在书中给出了设计服务框架时需要考虑的问题的同时也给出了一些实现思路,我摘录一些我觉得比较有参考意义的说说。

2.1 像本地一样调用远程服务

比如服务消费方在执行orderService.buy("HHKB键盘")时,实质上调用的是远端的服务

这用到啥技术?明显就是动态代理(给女朋友讲解什么是代理模式)

在实现的时候有三个基础属性可以参考一下:

  • interfaceName— 确定调用的是哪一个接口
  • version— 如果接口进行升级了,可以使用version来进行区分和隔离
  • group— 对远程服务的机器进行分组,那么调用的时候就可以选择不同的分组来调用(调用者对统一服务的调用进行隔离)

2.2 其他

  1. 当远程调用服务的时候,不需要每次都要去注册中心查找可用的地址,而是把地址缓存在调用方。当服务有变化的时候,主动告诉调用者就行了。
  2. 流量控制一般会基于两个维度去考虑:一、自身的接口和方法。二、请求的来源
  3. 并不是所有的请求都要经过服务提供者。像走缓存这样频繁的操作(而且大多数都是会成功的),直接在调用方调用就ok了

直接在调用方走缓存

最后

总的来说,书的第四章主要是在讲解在设计服务框架的时候应该要考虑到哪些方面,可以以什么方案来解决,看得还是非常过瘾的(这只是我的个人笔记,书上还有很多的内容)。强烈建议配合我之前写过的一篇SpringCloud入门文章:外行人都能看懂的SpringCloud,错过了血亏!食用。

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

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

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

转载于:https://www.cnblogs.com/Java3y/p/11117205.html

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

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

相关文章

.NET技术+25台服务器怎样支撑世界第54大网站

摘要:同时使用Linux和Windows平台产品,大量使用静态的方法和类,Stack Overflow是个重度性能控。同时,取代横向扩展,他们坚持着纵向扩展思路,因为“硬件永远比程序员便宜”。 StackOverflow是一个IT技术问答…

钓鱼网站盯梢微博 360“围剿中奖骗子”

一段时间以来,随着“织围脖”的兴起,微博晋升为全民级互联网应用,而一些曾以短信、聊天工具为主要传播载体的钓 鱼网站也开始悄悄出现在微博上,其伪装方法仍然是老套的——“您中奖了”。对此,360安全卫士官方微博发起…

网站域名续费 服务器续费,域名续费与服务器续费

域名续费与服务器续费 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。帮助用户完成云服务器备份存储库的创建,快速购买…

hexo博客pc端不能访问手机移动端可以访问_Hexo+Kaze+Gitee Pages 搭建静态博客网站...

前言建网站本身是一个很大的工程,涉及前端页面的搭建,网站数据的存储,还要购置服务器资源,甚至是后期的维护,过程相当繁琐。不过如果仅仅是想搭建个人的网站,写写博客,想要美观,又不…

创意无极限:创意产品闪购网站Fab融资1.05亿美元

据国外媒体报道,美创意产品闪购网站Fab今天宣布,公司成功获得1.05亿投资。这个消息最先是由《华尔街日报》爆出的,之后Fab CEO Jason Goldberg在一篇博文中证实了这一消息。 此轮融资之前就有风声传出,而此次融资成功也确实让Fab如…

网易云音乐刷听歌量网站_【java+selenium】网易云音乐刷累计听歌数

背景应该是在去年的时候,刷知乎看到一个问题,大概是说怎么刷网易云音乐个人累计听歌数,然后有一个高赞回答,贴了一段js代码,直接在浏览器console执行就可以了。当时试了下,直接一下子刷了有好几万。悲剧的是…

釜底抽薪闭数千非法网站 新网用行动担起社会责任

非法网站危害社会,必须严惩不贷。近日,作为域名注册领域的领先企业,新网表率同行,近段时间内关闭了数千家非法网站,对网络违法行为打出了一记重拳。 新网重拳出击 数千非法网站无处遁形(图片来源于网络) 众所周知&…

apache shiro 怎么升级_http协议的网站装ssl升级成https

怀着无比激动的心情写此文,因为作为一个前端刚刚踩完此坑成功跨过81难重生!对就是它:https://minihome.top 大家试一下吧。A.我有什么?我要做什么?有:一个域名minihome.top一个云服务器 ECS(且能访问miniho…

qq空间网页版电脑_(带手机版数据同步)QQ空间日志说说类网站织梦模板 QQ心情日志网站源码下载...

模板名称:(带手机版数据同步)QQ空间日志说说类网站织梦模板 QQ心情日志网站源码下载本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围极广,不仅仅局限于一类型的企业,资讯类的,QQ空间 日志心情类的的网站都可…

今日头条关键词排名怎么搜索_广州今日头条seo优化排名软件

广州今日头条seo优化排名软件 S1h0l1cjk广州今日头条seo优化排名软件 搜索引擎不关心链接的数量,他们只质量。礼品包装很重要,但对人来说也是如此吗需要介绍内容。上,许多人都害怕风险。在着陆页面有零风险和承诺。.是谈谈用户担心的一些问题…

用python爬取网站数据xlwt、bs4_python爬虫系列--批量爬取码云开源网站数据

python所需要的库 requests —这个库用于访问网站,并获取网页数据 bs4 ---- 用户html的标签解析拿出我们所需要的数据 threading — 使用多线程,可以让我们的爬虫执行效率变高 xlwt — excel表格的操作,用户保存我们所爬下的数据 time — 关于…

左边导航栏右边对应图片_谷歌seo查找图片工具—Mailomix

在之前的文章中Jack老师有提到过如何优化文章内容,其中有提到图文并茂的写作方式对于提高网页体验感是非常重要的.但是随之而来的又一个令人头疼的问题就是,很难找到匹配的图片.要么就是图片差强人意距离文章想表达的意思差了那么一点,要么就…

php网站模板上传教程视频教程,网站模板怎么用

网站模板下载下来之后,很多人不知道怎么使用,下面就由MetInfo来详细分析一下网站模板怎么用才正确。首先,大多数网站模板下载下来之后都是压缩包的形式,我们需要解压查看文件夹里面到底是些什么文件如果文件夹里面全是些静态网页文…

newduba首页怎么去掉_织梦程序网站怎么防止被黑

织梦程序网站怎么防止被黑黑帽seo织梦应该是所有傻瓜建站程序中用户最多的一个,千万用户的网站安全问题都依靠在这款开源程序的开发公司,不巧的是织梦开发团队对于程序的更新速度可以说是龟速,在一个又一个漏洞被挖掘公布出来也无动于衷&…

android侧边标签切换_五、前端开发—搭建静态网站侧边栏

五、前端开发—搭建静态网站侧边栏高能预警,这次写的组件会非常的多,一大堆代码正在袭来。。。。。构图解析这次我们做一个网页中页面侧边栏,其中会放一些导航信息。在写代码之前,我们先分析一下,我们想要达成的效果&a…

win10iis服务器如何配置虚拟目录,win10系统iis6部署网站时配置虚拟目录的解决方法...

有关win10系统iis6部署网站时配置虚拟目录的操作方法想必大家有所耳闻。但是能够对win10系统iis6部署网站时配置虚拟目录进行实际操作的人却不多。其实解决win10系统iis6部署网站时配置虚拟目录的问题也不是难事,小编这里提示两点:1、打开iis6&#xff0…

ab测试html,什么是A/B测试,AB测试对SEO的影响!

在SEO工作中,我们经常在预算有限的情况下,面临一些阶段性的任务,几乎没有人可以保证,他所制定的优化策略是完美的,且可以顺利达到预期。这个时候,我们经常性的需要借助一个工具:A/B测试&#xf…

php网站上怎么实现全景,如何仅仅使用CSS3来实现全景图的效果

本篇文章将给大家带来一个css3黑科技:如何仅仅使用css来实现全景图的效果?最终效果演示:demo页面布局基础样式首先定义一些基本的样式和动画.panorama {width: 300px;height: 300px;background-image: url(http://7vilbi.com1.z0.glb.clouddn.com/blog/…

OneAPM联合阿里云技术沙龙举办,让网站/APP比更快还更快

11月28日,在东升凯莱酒店,蓝海讯通与中关村东升科技园加速器、阿里云携手为大家献上一场精彩纷呈的主题为INIT DAY|“比更快还更快”的最前沿技术沙龙。 蓝海讯通OneAPM COO程显锋、阿里云云架构专家张贺翔、海涛旅游CTO李欢、拉勾网高级架构师周亮分别结…

基于微软Azure 测颜龄网站原是这样工作的

这几天,让全球的名人、非名人都因为年龄,经历着神奇的事情。这是微软公司最新开发的一个网站干的,它专门通过照片给人测年龄。 网友们乐于见到自己测颜龄“显嫩”的结果,并不在意这个系统的准确度问题,一位30多岁的网友…