首页 > 编程语言 >Java单体服务和集群分布式SpringCloud微服务的理解

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

时间:2024-09-26 15:49:15浏览次数:9  
标签:基于 调用 服务 SpringCloud Eureka 注册 Java

单体应用存在的问题

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,完成注册。

标签:基于,调用,服务,SpringCloud,Eureka,注册,Java
From: https://blog.csdn.net/weixin_43980468/article/details/142553181

相关文章

  • ARM 服务器上安装 OpenEuler (欧拉)
    系统介绍在2019年7月19日,华为宣布要在年底正式开源openEuler操作系统;在半年后的12月31日,华为正式开源了openEuler操作系统,邀请社区开发者共同来贡献。一年后,截止到2020年12月25日,openEuler已经拥有了3万社区用户,2万多个合入的拉取请求(PullRequest),2......
  • 从 SQL 和 Java 的对比理解集合化,SQL 到底比 Java 优势在哪?
    同样的数据计算任务,用SQL写和用Java写,后者常常会长出数倍。代码长不仅仅是写起来很繁琐,也不利于理解整体业务逻辑结构,算法过程都湮没在细节中。为什么Java会比SQL长这么多?我们来回答这个问题,并引出程序语言的集合化概念。首先是针对集合的运算能力,这个很容易理解。......
  • 「滚雪球学SpringCloud」教程导航帖(已完结)
    写在前面我是bug菌,CSDN|掘金|InfoQ|51CTO|华为云|阿里云|腾讯云等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计30w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的......
  • 微服务监控实战(三):指标数据的采集及应用
    如果你觉得这篇文章对你有帮助,请不要吝惜你的“关注”、“点赞”、“评价”、“收藏”,你的支持永远是我前进的动力~~~上一篇我们介绍了云原生架构下日志数据的采集和应用,本文介绍指标数据的采集及应用指标(Metrics)云原生下的指标监控系统云原生下的Prometheus和Grafana基......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    PHP校园点餐小程序摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园点餐小程序被用户普遍使用,为方便用户能够可以随时进行校园点餐小程序的数据信息管理,特开发了基......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
     springboot高校实验室管理系统摘要随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采springboot技术和mysql数据库来完成对系统的设计。整个开发过......
  • 微服务监控实战(一):监控概览
    如果你觉得这篇文章对你有帮助,请不要吝惜你的“关注”、“点赞”、“评价”,我们可以进一步讨论实现方案和细节。你的支持永远是我前进的动力~~~灵魂拷问服务之间的依赖关系?服务的资源使用情况?每天的业务高峰期是哪个时间段?每天发生多少次异常?有多少次是在收到业务反馈之......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
     SpringBoot自然灾害应急救灾物资共享管理系统摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势。物资共享当然也不例外。自然灾害应急救灾物资共享管理系统是以实际运用为开发背景,运用软件工程原理和开发......
  • (Centos7/麒麟V10)服务器 Redis安装指南
    1.下载或上传安装包安装包官方下载地址:https://download.redis.io/releases/2.准备GCC编译环境查看gcc编译器版本:gcc-v若不存在则执行:yuminstall-ygcc或参考服务器gcc离线安装指南3.解压安装包并移至目标目录本文以redis-7.0.8.tar.gz安装包,部署路径/home/redis为......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    高校学生社团管理系统摘要随着计算机科学技术的日渐成熟,人们已经深刻地认识到了计算机在各个领域中发挥的功能的强大,计算机已经进入到了人类社会发展的各个领域,并且发挥着十分重要的作用。目前学校学生社团的管理是一项系统而复杂的工作,它需要一个团队互相配合、分工协作。......