Spring微服务架构探索

2022-09-11

任何框架都需要满足三个基本要求:首先, 框架能够及时响应客户的需求。其次, 最大限度地满足用户的各种需求。最后一个在开发过程中不可忽视的要求是, 考虑开发成本。当今的应用需要不断地修改、扩展和更新, 随着移动互联网技术的快速发展, 企业需要迁移他们的应用到移动兼容的应用, 以满足不断变化的业务需求, 所有这些都促成了微服务的出现。

一、Web应用程序

(一) Web应用程序介绍

Web应用程序是可以由浏览器访问的应用程序。就是说, 浏览器就能帮助用户实现访问功能, 用户不需要再安装其他的软件。在学习Sring课程之前, 由我们学生开发的小型项目差不多都是传统WEB的应用, 可以将Java应用程序打包成WAR并将其部署到Tomcat上。

(二) 优点

·跨平台。

·流程、框架比较规范具体。

·提供了一致的用户界面, 一般以网页的形式的存在。

·开放性强。在B/S的模式下, 处于内部之外的用户实现访问可以通过公共浏览器。比如:开发一个网站并将其部署到互联网上, 以便全世界的人们都可以分享它。

·结构易于扩展。从一台服务器, 几个用户的工作组级别到一个拥有数千用户的大型系统。

(三) 缺点

·耦合度较高。一旦一个地方的代码需要修改或者出错, 可能整体都需要改动, 代码维护困难, 极其不方便。

·一般比较适合于小项目, 不太适合企业级开发。

·初次页面加载耗时多。

·部署不灵活:构建所花费的时间很长, 任何地方的一点小的修改都可能需要重建整个项目。

·扩展性不够。无法满足高并发情况下的业务需求。

二、微服务

(一) 微服务介绍

微服务这个概念最早出现是在2012年, 是为了解决传统web开发过程中的种种弊端而提出以一种方法, 但是真正的流行起来还是在2015年, 越来越多的人开始关注起微服务, 并开始各种讨论, 微服务架构这一新名词也是出现在各种书籍、文章上, 让人们无法忽视微服务架构带来的影响。而什么是微服务架构, 百度百科上写道:微服务架构是一种用于在云中部署应用程序和服务的新技术。大概也就是说一个企业的大型项目拆分成由一个或多个微服务组成, 通过将应用和服务分解成更小的、松散耦合的组件, 它们可以更加容易升级和扩展。

(二) 微服务优点

比于传统Web应用程序, 微服务架构, 它自身的优点是在于它可以使软件架构变得相对灵活, 微服务架构的灵活性可以使项目的开发过程更易于管理, 从而大幅度提升项目开发团队的开发效率。微服务独立和超分割的设计理念可以使开发人员更加关注组件的内部结构, 从而提高软件代码的质量。与此同时, 服务的重用使开发人员从过去的代码, 对象和模块重用中解放出来。经过低耦拆分的微服务在开发、测试等各个软件阶段都带来了很强的效率, 业务的变更变得相对低成本和低风险, 软件项目的规模越大, 微服务架构的优势就越明显。在这些微服务中, 它的每一个服务都是相对分离、独立的, 微服务的每一个服务都是完全可以拥有自己的数据库, 不用跟其他部分共用一个数据库。例如, 一些微服务可能使用关系数据库, 而另一些则可能使用No SQL数据库。

(三) 微服务缺点

当我们发现出现漏洞时, 我们理所当然会问这是由哪里引起的问题, 那么这时, 应该由哪个微服务负责呢?微服务的相互依赖性使得这个问题很难回答。微服务还添加了需要监控的新界面, 因此这可能会造成停机或导致漏洞。微服务体系结构的设计并不意味着所有的操作都被服务, 组件被构建以及微服务体系结构横向扩展概念促进了无共享, 无状态应用程序概念的发展。换一种说法就是, 它们不存储或者修改底层文件系统。例如, 某些数据库层的底层操作不推荐用于服务, 这就是为什么人们一起使用微服务和Linux容器的原因:它们都不保留状态。因此, 在设计项目框架时, 设计师需要根据业务的具体情况进行合理的划分。

三、微信中的微服务

这里从两个方面来说明微信的微服务。 (1) 服务布局。微信的服务布局基于公园的多重自治和相互准备, 城市之间的数据是相对独立的。除了全球同步的少数帐户外, 大多数企业还希望创建电子邮件式服务, 每个服务都有自己的环境, 使用类似电子邮件的通信。城市间的后备则使用公网的udp通道。在城市的三园区架构里, 每个区是一套独立的系统, 可互相为对方提供备份。许多公园形成了整体服务能力。在校园内, 建立了一组相互容错的多台机器。这种服务布局不仅是微服务架构, 而且还考虑了容灾。 (2) 过载保护。过载保护微服务架构旨在确保核心服务可用。有三件事情可以确保核心服务的可用性:考虑问题应该是服务的轻重分离, 也就是说, 一项服务不能既有重操作又有轻操作。队列控制, 了解请求在队列中等待的平均时间, 从而决定是否开始拒绝。作为命令的组合, 调用链的数量和微服务的级别可能会增加, 并且可能有多个后端服务。假设后端有两个服务 (A服务和B服务) , 则前端呼叫需要依赖A和B服务的组合结果。然后, 单个A或单个B的轻微过载可能导致前端服务不可用, 这是一个严重的问题。在这种情况下, 你需要一个反馈机制, 使用这样的一种重要程度传递, 就可以直接拒绝来自同一用户的20%的请求。有效解决单一业务轻微超载的问题。

四、结束语

处在互联网飞速发展的时代, 软件开发产品往往有着投资成本低, 客户群体不断增大, 并且随着需求的不断改变而改变的特点, 以前的框架体系已经远远不能满足当代社会的需求, 且不断面临着各种挑战, 需要新的框架体系的兴起来解决面临的问题。本文基于对Spring微服务架构探索要求, 意在用浅显易懂的语言来表述对微服务框架的了解。

摘要:本文是基于对Spring微服务架构探索要求, 写的关于微服务架构的理解, 尤其是它与传统WEB应用程序的差异。主要是通过分析对比web应用程序与微服务架构的优缺点以及微信在微服务方面的体现来深化对于微服务的理解。

关键词:微服务,web框架,软件架构

参考文献

[1] 邱燕娜.向微服务架构转型[N].中国计算机报, 2016-03-07 (010) .

[2] Lucas Carlson.为什么要使用微服务[N].计算机世界, 2017-07-31 (008) .

[3] https://blog.csdn.net/freeboy106/article/details/79003290.

上一篇:管理会计与财务会计的融合探讨下一篇:转移重心分区治理探索营6岩性油藏开发思路