首页 > 编程知识 正文

投顾模式是什么意思(阿里云属于什么服务模式)

时间:2023-05-05 11:17:48 阅读:79719 作者:2279

@Author : Runsen

这几年微服务很受欢迎,大家都在建设微服务。 就好像不说微服务相关的技术一样,并不是那么主流。

在谈论

微服务

springcloud之前,我们需要知道什么是微服务。

简单地说,微服务是指将单个APP划分为小服务组的方法,划分完成后,各服务将通过独立的进程运行,服务之间使用轻量级的通信机制进行通信。 Spring Cloud使用基于HTTP的可恢复应用程序。

首先,认识APP架构的变迁,以下是APP架构的变迁历史

单体架构

初期,企业对外提供的服务比较单一,客户流量也比较不足。 因此,将所有模块、代码打包到一个项目中,集中部署在一台机器上。

就像在学校里做的项目一样,处理前端、数据库,导入服务器,制作web APP APP,这就是以前的单体体系结构。

其实是给你用的。 基本上部署在云服务上。 没什么实际用途,企业的顾客越来越多,流量越来越大,哪怕只有一台服务器对外提供服务,哪里能支撑,不知道分不分就被砍,这也不足为奇。

如果遇到合并和大流量,基本上就会Over。

SOA架构

APP超过了。 企业损失很大,你也可以出去。 垃圾最多的云服务器1G的运行内存和50G的空间虽然是垃圾,但几个服务器一起上升了。 一个挂了,还有几个挂了。 然后,我们马上重新启动挂起的东西。 那样的话,不是就可以忍受了吗? 这就是SOA体系结构,全面是面向服务的体系结构。 简称SOA,翻译为面向服务的结构,下图为SOA的结构图

在注册中心注册所有服务提供商。 客户机向注册中心订阅服务注册中心,将有效的服务信息推送到客户机,得到所有可调用服务的信息后,根据需要按照负载均衡算法进行调用,获取数据。

在百度百科上把SOA说高一点吧。

面向服务的体系结构(service orientation architecture,SOA )是一种组件模型,它将APP应用的各种功能单元(称为服务)分割开来,并通过合同将其与适当定义的接口连接在一起。 接口是中立定义的,必须独立于实现服务的硬件平台、操作系统和编程语言。 这样,在各种系统中构建的服务就可以以统一的通用方式进行交互。 (百度百科)

例如,阿里巴巴的Dubbo数据源是一个非常好的服务管理SOA框架。

微服务

微服务可以理解为SOA的传承,但一个本质区别是微服务是真正的分散、中心化,微服务的分割比SOA更彻底。

微服务体系结构系统是分布式系统,每个微服务基本上是可以独立分发的APP应用服务,因此可以作为独立的组件升级、灰度、复用,从而实现大规模每个服务都可以在专用组织中单独完成,依赖方可以通过确定输入/输出端口来完全开发,还简化了整个团队的组织体系结构,因此通信成本低、效率高。

例如,假设某个项目出现了问题。 哪里出了问题,整个项目从头到尾看,就算你高兴,老板也会拒绝的。 你知道企业拥有的私人源代码。 万一突然需要涨工资。 此时,将一个项目分成几个小项目。 一个小项目负责一个功能的实现,把它整合起来,不是一个大项目。

每项服务都是围绕特定业务构建的。 例如电子商务系统、订单服务、支付服务、物流服务、会员服务等。 这些分区的APP应用程序都是独立的APP应用程序,可以独立部署到生产环境中。 采用微服务后,我们的项目不再拘泥于一种语言。 可以混合使用,如Java、Go、Python、PHP等。 这在传统的APP应用程序开发中是无法想象的。 微服务允许您根据业务上下文选择和构建适当的语言和构建工具。

例如,今天的顶级APP。 推荐算法可能是Python,处理并发可能是go,注册功能可能是Java。 所以数百万用户的项目,绝对是花了数亿美元的资金完成的。 如果发生故障,我会让那个负责这个模块

的人去处理。

SpringCloud

那SpringCloud和微服务有什么关系?Spring Cloud 可以理解为微服务这种思想在 Java 领域的一个具体落地。Spring Cloud 在发展之初,就 借鉴了微服务的思想,同时结合 Spring Boot,Spring Cloud 提供了组件的一键式启动和部署的能力, 极大的简化了微服务架构的落地。

这也是Java为什么是老大的原因。

学任何东西都先访问官方文档,我们先访问SpringCloud官方文档:https://spring.io/projects/spring-cloud/

Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态)。分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。

SpringCloud版本

不同于其他的框架,Spring Cloud 版本名称是通过 A(Angel)、B(Brixton)、C(Camden)、 D(Dalston)、E(Edgware)、F(Finchley)。这样来明明的,这些名字使用了伦敦地铁站的名 字,目前最新版是 H (Hoxton)版。

官方图为证

Spring Cloud 中,除了大的版本之外,还有一些小版本,小版本命名方式如下: M ,M 版是 milestone 的缩写,所以我们会看到一些版本叫 M1、M2 RC,RC 是 Release Candidate,表示该项目处于候选状态,这是正式发版之前的一个状态,所以 我们会看到 RC1、RC2 SR,SR 是 Service Release ,表示项目正式发布的稳定版,其实相当于 GA(Generally Available) 版。所以,我们会看到 SR1、SR2 SNAPSHOT,这个表示快照版

Spring Cloud体系

下面总结下重点的(来源:江南一点雨 松哥)

Spring Cloud Netflix,这个组件,在 Spring Cloud 成立之初,立下了汗马功劳。但是, 2018 年 的断更,也是 Netflix 掉链子了。Spring Cloud Config,分布式配置中心,利用 Git/Svn 来集中管理项目的配置文件Spring Cloud Bus,消息总线,可以构建消息驱动的微服务,也可以用来做一些状态管理等Spring Cloud Consul,服务注册发现Spring Cloud Stream,基于 Redis、RabbitMQ、Kafka 实现的消息微服务Spring Cloud OpenFeign,提供 OpenFeign 集成到 Spring Boot 应用中的方式,主要解决微服务 之间的调用问题 - Spring Cloud Gateway,Spring Cloud 官方推出的网关服务Spring Cloud Cloudfoundry,利用 Cloudfoundry 集成我们的应用程序Spring Cloud Security,在 Zuul 代理中,为 OAuth2 客户端认证提供支持 Spring Cloud AWS ,快速集成亚马逊云服务Spring Cloud Contract,一个消费者驱动的、面向 Java 的契约框架Spring Cloud Zookeeper,基于 Apache Zookeeper 的服务注册和发现Spring Cloud Data Flow,在一个结构化的平台上,组成数据微服务Spring Cloud Kubernetes,Spring Cloud 提供的针对 Kubernetes 的支持 Spring Cloud Function Spring Cloud Task,短生命周期的微服务

Spring Cloud和 Spring Boot 版本关系

初学spring cloud的朋友可能不知道,其实SpringBoot与SpringCloud需要版本对应,否则可能会造成很多意料之外的错误。所以,你需要把SpringBoot看一看学一学。

spring-cloud-dependencies 版本列表可查看: https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies spring-boot-starter-parent 版本列表可查看: https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent

下面总结Spring Cloud和 Spring Boot 版本关系(来源:江南一点雨 松哥)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。