当前位置: 首页 > article >正文

Java单体服务和集群分布式SpringCloud微服务的理解

单体应用存在的问题

1.随着业务的发展开发变得越来越复杂。

2.修改或者新增,需要对整个系统进行测试、重新部署。

3.一个模块出现问题,很可能导致整个系统崩溃。

4.多个开发团队同时对数据进行管理,容易产生安全漏洞。

5.各个模块使用同一种技术进行开发,各个模块很难根据实际情况选择更合适的技术框架,局限性很大。

6.模块内容过于复杂,如果有员工离职,需要很长时间才能完成工作交接。

分布式、集群

分布式:讲一个复杂的问题拆分成若干个简单的小问题,将一个大型的项目架构还分成若干个微服务来协同完成。(软件设计层面)。将1个庞大的工作拆分成若干个小步骤,分别由不同的让你完成这些小步骤,最终将所有的结果进行整合实现大的需求。

集群:一台服务器无法负荷高并发的数据访问量,那么就设置10台服务器一起分担压力,10台不够就设置100台或者1000台(物理层面)。很多人干同一个事情,来分摊压力。

微服务的优点

各个服务的开发、测试、部署都相对独立,比如用户服务就可以拆分作为一个单独的服务,而它的开发也不用依赖于其他服务,如果用户量很大,我们可以很容易的对其进行负载。

当一个新需求出现时,特别是在一个庞大的项目系统中,你要去考虑各方面问题,兼容性、影响度等等,而使用微服务则可以直接跳过这些废时又烧脑的环节。

使用微服务将项目进行拆分之后,各服务之间就消除了诸多限制,只需要保证对外提供的接口正常可用,至于使用什么语言、什么框架通通不用关心。

微服务的不足

上面我们提到微服务的拆分是基于业务的,不是我们随心所欲,想怎么拆就怎么拆,由谁来拆,怎么拆?给团队协作沟通带来了很多挑战。

当服务调用方需要使用某服务的接口时,首先需要找到该服务的提供方,通常在一个大公司中,这种场景是跨部门的,沟通成本可想而知,同时,如果服务的提供方需要对某个接口进行修改,也得和各个服务调用方进行沟通。

犹豫各个服务相互独立,他们的数据也是独立的。这就会带来一个问题,当调用多个服务接口来进行操作时,如何保证各个服务的数据一致性,这既是问题,也是难点。

为什么是SpringCloud

SpringCloud 完全基于SpringBoot,服务调用方法是基于RESTAPI,整合了各种成熟的产品和架构,同时基于SpringBoot也是的整体的开发、配置、部署都非常方便。

Spring系的产品集功能齐全、简单好用、性能优越、文档规范等等于一身,因此SpringCloud还是为服务架构中一个十分优越的实现方案。

 

服务治理的核心三部分组成:服务的提供者、服务的消费者、注册中心。

在分布式系统架构中,每个微服务在启动时,将自己的信息存储在注册中心,叫做微服务注册。

服务者从注册中心获取服务者提供者的网络信息,通过该信息调用服务,叫做服务发现。

SpringCloud 中服务治理使用的是Eureka来实现,Eureka是Netfix开源基于Rest的服务治理解决方案,SpringCloud集成了Eureka,提供服务注册和服务发现的功能,可以和基于SpringBoot搭建的微服务应用轻松完成整合,开箱即用,SpringCloud Eureka。

Spring Cloud Eureka

Eureka Server,注册中心

Eureka Client,所有要进行注册的微服务通过Eureka Client连接到Eureka Server,完成注册。


http://www.kler.cn/a/322729.html

相关文章:

  • 英语中的副词和状语
  • Oracle 19c PDB克隆后出现Warning: PDB altered with errors受限模式处理
  • paddle表格识别数据制作
  • MySQL数据库:SQL语言入门 【2】(学习笔记)
  • 【Linux:epoll】
  • GitHub新手入门 - 从创建仓库到协作管理
  • 17、网络安全合规审查五大内容
  • vue按钮接收键盘回车事件
  • python:基于django的html订单提交页面
  • 小程序振动
  • 从零开始Ubuntu24.04上Docker构建自动化部署(三)Docker安装Nginx
  • centos8 升级openssh-9.8p1
  • 《C++开源贡献:提升职业竞争力的新途径》
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(四)-搜索
  • Spark Job 对象 详解
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • 【SpringCloud】环境和工程搭建
  • 数据分析学习之学习路线
  • AI 将会促生哪些新的职业?
  • AT89C51 利用SBIT寻址,并且在内存中实现伪动态密码的混淆
  • gRPC协议简介
  • C++的动态数组
  • 统信服务器操作系统【targetcli部署】
  • HarmonyOS应用开发(组件库)--组件模块化开发、工具包、设计模式(持续更新)
  • 【hadoop安装】
  • 微服务的优点及在云原生时代的合理落地方式