您当前的位置:首页 > 发表论文>论文发表

毕业论文微服务

2023-02-23 21:50 来源:学术参考网 作者:未知

毕业论文微服务

分布式微服务治理的核心在于: 微服务和分布式

Remote Procedure Call,翻译过来应该是“远程程序调用”,目前业内通用的翻译是“远程过程调用”,但是“过程”这个词很容易造成误解,翻译成“程序”更好理解RPC的意义。

一般所谓的XX协议就是个文档,类似于我们的需求文档,只说了要做什么,但是具体怎么做是由各大开源大佬做的。 一般情况下都会实现核心功能,不同的开源在细节上实现都会不一样,这个需要注意!

RPC 这个概念术语在上世纪 80 年代由 Bruce Jay Nelson 提出的,在 Nelson 的论文 "Implementing Remote Procedure Calls" 中,他提到了几个 RPC的特点 :

除此之外,这位大佬还给出了实现RPC框架的 详细架构图 :

结合上图,Nelson 的论文中指出实现 RPC 的程序包括 5 个部分:

所以这架构图的意思是:当 user 想发起一个远程调用时,它实际是通过本地调用 User-stub。并通过本地的RPCRuntime传输 。远端 RPCRuntime 实例收到请求后交给 Server-stub 进行解码后发起本地端调用,调用结果再返回给 User 端。

看完协议内容,跟着就得实现这个协议啦,这时候你是不是发现了问题的严重性: 自!己!一!点!思!路!都!没!有!

所以我们需要再理解一下RPC协议,根据Nelson的论文知道我们要做的两件事:

上述两点其实是实现RPC协议的两大要素: 序列化协议和传输协议 。

因为RPC本质上是进程间通信,而“本地调用和远程调用的对比”实际上就是“进程内通信和进程间通信的对比”。通过两者的对比,我们才能理解到 序列化协议和传输协议 的作用,如下图:

最基本的RPC框架就是 单点式 的,因为A服务直接调用B服务,不经过第三方,这种是最简单的。但是必须是A和B同时部署一套,A1只能调用B1,A2只能调用B2。

所以需要一台A服务对多台B服务,利用第三方服务(注册中心)找到其他B服务,而不是写死B服务的地址。这种RPC才是 分布式 RPC,也是业内主流。

单点RPC框架只需要:

但是我们要做分布式的啊,所以需要:

实际上在生产环境中,我们需要实时监控服务的调用情况,所以需要一个微服务管理中心,甚至是一个自动化运维的管理中心,所以需要:

在文章的第二节我们看到大佬论文中对RPC的总结,其中一个很重要的一点:“通用”。

所以我们需要:

对的,能实现上述五点的,才是一个合格的RPC框架,但还不是优秀,因为我们还要考虑下性能。

先打个底,目前流行的RPC框架大多都是多管闲事,不单单只是RPC框架,你可以看看Dubbo和SpringCloud中除了RPC还有什么骚功能。

可以看看别人的各种RPC框架总结: 在网上找到了个图,但是没有提到SpringCloud,暂且看看先,因为有些不认为是对的:

我们可以看到各个RPC框架使用的序列化协议,注册中心,管理中心,是否跨语言,但是传输协议没有提到。

参考这篇博客: 综合来说,在性能上rpcx是首选,但是考虑到框架的生态,其实还是推荐Dubbo或者SpringCloud的,因为除了性能,成本也是很重要的,无论是学习成本还是研发成本。

在微服务架构下,如何实现接口调用链路的跟踪?

在传统的单应用架构下,接口的日志监控还是非常简单的,但是随着分布式、微服务架构的兴起,我们会面对更为复杂的服务交互关系;

也就是说,以往的系统,更多的是A系统调用B系统,而现在可能面对这A->B->C->D,而在这种情况下,如果没有链路跟踪的方案,那么查找和定位问题就会非常困难。

理论基础
Google公司研发了Dapper分布式跟踪系统,并发表了论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》;

目前行业内大部分的分布式跟踪方案都是基于这篇论文来实现的;这篇论文中提到了几个比较重要的概念:

A:parentId=null、spanId=1;

B:parentId=1、spanId=2;

C:parentId=2、spanId=3;

D:parentId=2、spanId=4;

实现方案

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

集成zipkin或者spring cloud sleuth都可以的

自己的硕士论文哪里会有?

硕士毕业论文查询可以在第二年通过校园网登陆中国期刊网,到优秀硕博士论文版块去查找自己的文章,有无自己就会知道。

硕士论文是攻读硕士学位研究生所撰写的论文。它应能反映出作者广泛而深入地掌握专业基础知识,具有独立进行科研的能力,对所研究的题目有新的独立见解,论文具有一定的深度和较好的科学价值,对本专业学术水平的提高有积极作用。

优秀的硕士论文能够反映出作者对所学习专业的理论知识掌握的程度和水平,能够帮助作者构建起良好的完整的知识体系,还能够反映作者独立的科研能力和学术理论的应用水平,对研究的课题的思考和独立见解。

研究生期间要写的论文有两种:

一种是在期刊上发表的论文,一种是毕业论文。在期刊发表论文要看你选择什么层级的期刊,核心期刊发表难度大,一般期刊难度相对较小,毕业论文是必须要写的,否则没有学位证。

有的学校要求考生在读研期间必须在期刊发表1-2篇文章,否则没有毕业证。其实写论文难度大不大要看个人,也看你采取什么方法。

毕业论文可以用爬虫数据需要附代码吗

是的,毕业论文可以使用爬虫数据,但是这取决于你的论文题目和研究方向。如果你的论文需要使用爬虫数据,那么你需要附上相应的代码,以便评审者可以检查你的研究方法和结果的可靠性。此外,你还需要清楚地解释你的代码,以便评审者可以理解你的研究过程。

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页