当前位置:网站首页>传统项目转型
传统项目转型
2022-07-30 03:25:00 【Leon_Jinhai_Sun】
要说近几年最火热的话题,那还得是微服务,那么什么是微服务呢?
我们可以先从技术的演变开始看起,在我们学习JavaWeb之后,一般的网站开发模式为Servlet+JSP,但是实际上我们在学习了SSM之后,会发现这种模式已经远远落后了,第一,一个公司不可能去招那么多同时会前端+后端的开发人员,就算招到,也并不一定能保证两个方面都比较擅长,相比前后端分开学习的开发人员,显然后者的学习成本更低,专注度更高。因此前后端分离成为了一种新的趋势。通过使用SpringBoot,我们几乎可以很快速地开发一个高性能的单体应用,只需要启动一个服务端,我们整个项目就开始运行了,各项功能融于一体,开发起来也更加轻松。
但是随着我们项目的不断扩大,单体应用似乎显得有点乏力了。
随着越来越多的功能不断地加入到一个SpringBoot项目中,随着接口不断增加,整个系统就要在同一时间内响应更多类型的请求,显然,这种扩展方式是不可能无限使用下去的,总有一天,这个SpringBoot项目会庞大到运行缓慢。并且所有的功能如果都集成在单端上,那么所有的请求都会全部汇集到一台服务器上,对此服务器造成巨大压力。
可以试想一下,如果我们的电脑已经升级到i9-12900K,但是依然在运行项目的时候缓慢,无法同一时间响应成千上万的请求,那么这个问题就已经不是单纯升级机器配置可以解决的了。
传统单体架构应用随着项目规模的扩大,实际上会暴露越来越多的问题,尤其是一台服务器无法承受庞大的单体应用部署,并且单体应用的维护也会越来越困难,我们得寻找一种新的开发架构来解决这些问题了。
In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
Martin Fowler在2014年提出了“微服务”架构,它是一种全新的架构风格。
- 微服务把一个庞大的单体应用拆分为一个个的小型服务,比如我们原来的图书管理项目中,有登录、注册、添加、删除、搜索等功能,那么我们可以将这些功能单独做成一个个小型的SpringBoot项目,独立运行。
- 每个小型的微服务,都可以独立部署和升级,这样,就算整个系统崩溃,那么也只会影响一个服务的运行。
- 微服务之间使用HTTP进行数据交互,不再是单体应用内部交互了,虽然这样会显得更麻烦,但是带来的好处也是很直接的,甚至能突破语言限制,使用不同的编程语言进行微服务开发,只需要使用HTTP进行数据交互即可。
- 我们可以同时购买多台主机来分别部署这些微服务,这样,单机的压力就被分散到多台机器,并且每台机器的配置不一定需要太高,这样就能节省大量的成本,同时安全性也得到很大的保证。
- 甚至同一个微服务可以同时存在多个,这样当其中一个服务器出现问题时,其他服务器也在运行同样的微服务,这样就可以保证一个微服务的高可用。
当然,这里只是简单的演示一下微服务架构,实际开发中肯定是比这个复杂得多的。
可见,采用微服务架构,更加能够应对当今时代下的种种考验,传统项目的开发模式,需要进行架构上的升级。
边栏推荐
- Dataset之MNIST:MNIST(手写数字图片识别+ubyte.gz文件)数据集简介、下载、使用方法(包括数据增强)之详细攻略
- SQL Server中如何在date类型中提取年、月、日数据
- 开放地址法哈希实现——线性探测法
- Solve The problem of Google browser cross-domain has had been blocked by CORS policy: The request The client is not a secure context and The resou
- redis的学习_基础部分
- 群论-Burnside引理与Polya定理 三千字
- 【高性能计算】openMP
- 计划处理链的很多种情况
- Nacos实现高可用
- CDH/CDP 是什么?
猜你喜欢
代码可读性,前置检查、注释及总结
联邦学习综述(一)——联邦学习的背景、定义及价值
Nacos实现高可用
HCIP实验(05)OSPF综合实验
Overview of Federated Learning (1) - Background, Definition and Value of Federated Learning
CMake的安装和测试
Overview of Federated Learning (2) - Classification, Framework and Future Research Directions of Federated Learning
华宝新能通过注册:拟募资近7亿 营收增加利润反而下降
[C Supplement] Conversion of Integer to String
【无标题】
随机推荐
Open address method hash implementation - secondary detection method
复星医药募资44.84亿:高毅资产认购20亿 成第三大股东
开放地址法哈希实现——线性探测法
群论-Burnside引理与Polya定理 三千字
自定义 View 实现汉字笔顺动画
Three years of experience will only be a little bit (functional testing), and you may not even be able to find a job after resigning.
NLP Natural Language Processing (2)
还在用命令行看日志?快用Kibana吧,可视化日志分析YYDS
Nacos实现高可用
JUC(六):synchronized
selenium应用之拉勾简历邀约数据抓取与分析
开放地址法哈希实现——二次探测法
Answer these 3 interview questions correctly, and the salary will go up by 20K
3.nodejs--modularization
C# 一周入门之《C#-类和对象》Day Six
北京bgp机房和普通机房的区别
Overview of Federated Learning (2) - Classification, Framework and Future Research Directions of Federated Learning
HCIP OSPF
联邦学习综述(二)——联邦学习的分类、框架及未来研究方向
复合类型--引用,指针