springcloud-基础

一、什么是springclound

它是一系列框架的有序结合。它利用springboot开发方便,简化分布式系统基础的设施开发。比如带来的注册中心,配置中心,消息总线,网关,断路器,数据监控。都是利用springboot用来做部署和一键启动。

它是将很多家公司开发比较成熟且结合实际开发服务框架。通过springboot的风格进行再次封装,屏蔽掉复制的配置和实现原理,最终给开发一套易懂,易部署,易维护的分布式系统。

二、什么是微服务

微服务是一种架构模式,也可以说是一种风格;它提倡把一个单一的应用程序拆成若干个小的服务,每个服务都单独运行在单独的进程中。服务之间的发现,互相协调。而服务之间的通信通过网络通信(通信基于RESTFUF风格的http通信);每个服务都是围绕业务进行构建,另外,应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。

总而言之:微服务是围绕单一职责的服务应用程序。处理单一的业务模块,只干这块业务相关的事情。

三、微服务优劣势

优势:

  • 复杂度可控:微服务解决了复杂度,不利维护的应用程序;它可以把一个复杂度高的应用程序拆成一组服务,虽然应用程序总量没有变化,但是分解成一快服务。每个服务通过网络通信。
  • 独立按需扩展:这些服务开发都可以有专注的开发团队进行开发。不需要知道底层是如何实现、。每个服务的技术栈不会受限,只需要提供统一的服务对外的api。而且局部修改修复问题也方便,只需修改部分的服务,就能部署系统,不会影响其他模块服务。

劣势:

  • 运维维护成本加大,本来单独一个服务,拆成很多服务,所以运维的成本增高。
  • 本来单独一个服务,所有模块服务都在一个上,事务是在一个控制能。拆了多个应用程序;那肯定会设计到事务;这里就存在分布式事务问题了。
  • 数据的一致性问题。
  • 分布式系统本来带来的复杂度。
  • 网络容错问题。

四、SOA与微服务

什么是SOA?

SOA:面向服务架构。它是一种设计方法,一种架构模型,但并不是服务解决方案。服务之前相互依赖或者网络来完成通信。跟 SOA 相提并论的还有一个 ESB(企业服务总线),简单来说ESB就是一根管道,用来连接各个服务节点。为了集成不同系统,不同协议的服务,ESB 可以简单理解为:它做了消息的转化解释和路由工作,让不同的服务互联互通;

SOA 所解决的核心问题

1.系统集成:站在系统的角度,解决企业系统间的通信问 题,把原先散乱、无规划的系统间的网状结构,梳理成规整、可治理的系统间星形结构,这一步往往需要引入 一些产品,比如 ESB、以及技术规范、服务管理规范;这一步解决的核心问题是【有序】

2.系统的服务化:站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生。目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用;这一步解决的核心问题是【复用】

3.业务的服务化:站在企业的角度,把企业职能抽象成可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步提升企业的对外服务能力;前面两步都是从技术层面来解决系统调用、系统功能复用的问题。第三步,则是以业务驱动把一个 业务单元封装成一项服务。这一步解决的核心问题是 【高效】

微服务

微服务架构其实和SOA架构类似,微服务是在SOA上做的升华。微服务架构重点强调的一个是"业务需要彻底的组件化和服务化",原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这样的小应用和其他各个应用之间,相互去协作通信,来完成一个交互和集成,这就是微服务架构。

区别
  • SOA把应用程序服务的可用性最大化,而微服务专注于解耦。
  • SOA系统性的结果变更需要整体的修改,而微服务只需要新增一个服务。
  • SOA专注于业务功能的重用,在业务上微服务更注重于业务的边界。
  • 通信使用企业服务总线ESB,微服务使用RESTFUL http
  • SOA服务共享数据存储,微服务是可以独立的数据存储。

五、springboot与springcloud

springboot是专注于快捷、快速开发的单个个体微服务。

springcloud是关注于全部微服务的协调和治理框架,它将springboot开发的个体微服务管理起来,为各个服务之间,提供管理,服务发现,配置,断路器,网关,总线,通信等集成服务。

springboot离开了springcloud就是一个个体微服务。而springcloud就离不开springboot。

六、使用springboot开发的微服务,需要面临的问题

  • 分布式系统带来的复杂度;网络问题,延迟问题,带宽问题,安全问题
  • 服务发现: 服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。
  • 冗余: 分布式系统中的冗余问题。
  • 负载平衡: 负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。
  • 性能问题: 由于各种运营开销导致的性能问题。
  • 部署复杂性: Devops 技能的要求。

7、springcloud与dubbo

  • dubbo使用zk作为注册中心,也可以使用nacos;springcloud注册中心一般netfilx eurake ,zk,nacos也可以使用;注意:nacos集成cp,也能ap;
  • 网络通信:dubbo,使用rpc,而rpc底层是socket;springcloud使用RESTFUL http
  • springcloud分布式架构基础建设比较完善(注册中心,配置中心,消息总线,网关,断路器,数据监控),集成复杂度低。而dubbo集成复杂。
  • cap理论来分析,dubbo + zk = cp,而springcloud结合eurake,符合ap上

8、springcloud全家桶

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值