码迷,mamicode.com
首页 > 编程语言 > 详细

SpringCloud(一)

时间:2020-01-01 18:29:44      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:能力   jenkins   方法   服务架构   config   ati   灵活   通过   aging   

SpringCloud(一)

微服务

  优点:

  • 单一职责原则
  • 每个服务足够内聚,足够小(足够小的理解不是真正意义的小),代码容易理解,这样能聚焦一个指定的业务功能或业务需求
  • 开发简单,开发效率提交,一个服务可能就是专一的只干一件事
  • 微服务能够被小团单独开发,这个小团队是2-5人的开发人员组成
  • 微服务是松耦合的,是有功能意义的服务,无论是开发阶段或部署阶段都是独立的
  • 微服务能使用不同的开发语言开发
  • 易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins,Hudson,Bamboo
  • 微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值
  • 微服务允许你利用融合最新你技术
  • 微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面融合
  • 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库

  缺点:

  • 开发人员要处理分布式系统的复杂性
  • 多服务运维难度,随着服务的增加,运维的压力也在增大
  • 系统部署依赖
  • 服务间通信成本
  • 数据一致性
  • 系统集成测试
  • 性能监控
  • ....

 

SpringCloud,基于SpringBoot提供了一套微服务解决方案,包括服务注册和发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFilx的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。

SpringCloud利用SpringBoot的开发便利性,巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理,服务发现,熔断器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等,他们都可以用SpringBoot的开发风格做到一键启动和部署。

 

SpringBoot并没有重复造轮子,它只是将目前各家公司开发的比较成熟,经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最中给开发者留出了一套简单易懂,易部署和易维护的分布式系统发开工具包

 

SpringCloud是分布式微服务架构下的一站式解决方案,是哥哥微服务架构落地技术的集合体,俗称微服务全家桶。

 

SpringBoot和SpringCloud的关系

 

  • SpringBoot专注于快速方便的开发单个个体微服务
  • SpringCloud是关注全局的微服务协调整理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供:配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等集成服务。
  • SpringBoot可以离开SpringCloud独立使用,开发项目,但是SpringCloud离不开SpringCloud,属于依赖关系
  • SpringBoot专注于快速,方便的开发单个个体微服务,SpringCloud关注全局的服务治理框架

 

SpringCloud和Dobbo对比

  Dubbo Spring
服务注册中心 Zookeeper SpringCloud Netfix Eureka
服务调用方式 PRC REST API 
服务监控 Dubbo-monitor Spring Boot Admin
断路器 不完善 Spring Cloud Netfix Hystrix
服务网关 无 Spring Cloud Netfix Zuul
分布式配置 无 Spring Cloud Config
服务跟踪 无 Spring Cloud Sleuth
消息总线 无 Spring Cloud Bus
数据流 无 Spring Cloud Stream
批量任务 无 Spring Cloud Task

最大区别:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方法。

严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这再强调快速演化的微服务环境下,显得更加合适。

解决问题域不同:Dubbo的定位是一款RPC框架,Spring Cloud的目标是微服务架构下的一站式解决方案

 

Spring Cloud功能

  • Distributed/versioned configuration (分布式/版本控制配置)
  • Service registration and discovery (服务注册与发现)
  • Routing(路由)
  • Service-to-service calls(服务到服务的调用)
  • Load balancing(负载均衡配置)
  • Circuit Breakers(断路器)
  • Distributed messaging(分布式消息管理)
  • ....

SpringCloud(一)

标签:能力   jenkins   方法   服务架构   config   ati   灵活   通过   aging   

原文地址:https://www.cnblogs.com/DejaVu-F/p/12129222.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!