本文来说下如何搭建Spring Cloud 服务

文章目录

  • 什么是SpringCloud
  • 微服务是什么
  • 微服务的优缺点
  • 微服务的技术栈有哪些
  • 为什么选择SpringCloud
  • 本文小结

什么是SpringCloud

SpringCloud官网:https://spring.io/projects/spring-cloud

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

通常而言,微服务架构是一种架构模式或者说一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务之间互相协调、互相配合,为用户提供最终的价值。

服务之间采用轻量级的通信机制(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来开发这些服务,也可以使用不同的数据存储


微服务是什么

微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底去掉耦合,每一个微服务提供单个业务功能,一个服务只做一件事

从技术角度讲就是一种小而独立的处理过程,类似与进程的概念,能够自行单独启动或销毁,可以拥有自己独立的数据库。从理论角度,这里有篇微服务架构的提出者马丁福特的论文:https://martinfowler.com/articles/microservices.html,也可以直接谷歌搜索。

论文中提到了微服务和传统架构的区别,传统架构(单机系统),一个项目一个工程:比如商品、订单、交易、库存等等,统一部署,一个进程。如下图所示(图片出自于原文):


微服务架构(分布式系统),各个模块/服务,各自独立出来,“让专业的人干专业的事”,独立部署。分布式系统中,不同的服务可以使用各自独立的数据库。如下图所示(图片出自于原文):


微服务的优缺点

微服务优点:

1.每个服务足够内聚,足够小,代码容易理解。这样能聚焦一个只当的业务功能或业务需求。

2.开发简单、开发效率提高,一个服务可能就是专业的只干一件事,微服务能够被小团队单独开发,这个小团队可以是2到5人的开发人员组成。

3.微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

4.微服务能使用不同的语言开发。

5.易于和第三方集成,微服务运行容易且灵活的方式集成自动部署,通过持续集成工具,如Jenkins,Hudson,bamboo。

6.微服务易于被一个开发人员理解、修改和维护,这样小团队能够更关注自己的工作成果,无需通过合作才能体现价值。

7.微服务允许你利用融合最新技术。微服务只是业务逻辑的代码,不会和HTML/CSS或其他界面组件混合,即前后端分离。

8.每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一数据库。

微服务的缺点:

开发人员要处理分布式系统的复杂性


微服务的技术栈有哪些


为什么选择SpringCloud

当前微服务架构,Dubbo和SpringCloud比较火,另外还有Thrift、gRPC等等,下面把这些做一个比较,即可看出SpringCloud的强大之处。由于图片比较长,我分了两张图。



在微服务架构的实施和落地过程中,通常我们会进行技术选型,很多人会拿阿里开源的Dubbo和Spring Cloud进行对比,实际上对比的是REST和RPC,其实Dubbo和Spring Cloud并不在同一领域,没有可比性。

Spring Cloud是一个完整的微服务解决方案,正如上面的表格中展现的,它提供分布式情况下的各种解决方案合集。而Dubbo是一款高性能的Java RPC框架。Spring Cloud生态和Dubbo生态随着技术的发展,会逐渐的融合互补。

Dubbo沉睡了5年,Spring Cloud像猎豹一样追上来了,可以看出,Spring Cloud现在非常火爆,也是Spring官方大力推荐的技术,很有竞争力,以后的分布式架构使用Spring Cloud也很广泛,后面我会写一些使用Spring Cloud的相关技术文章。


本文小结

本文介绍了spring cloud相关的一些概念与内容,后续会对spring cloud相关的组件和原理进行详细的介绍。

关于Spring Cloud微服务框架的一些概念相关推荐

  1. spring cloud微服务框架

    Spring Cloud 环境 IDEA 或 Eclipse(STS插件) Lombok Maven 如果下载依赖有问题,更换阿里仓库和中央仓库 <settings xmlns="ht ...

  2. spring cloud微服务框架 第七天

    第七天,spring boot自动部署方案, 现在主流的自动部署方案大都是基于Docker的了,但传统的自动部署方案比较适合中小型公司,下面的方案就是比较传统的自动部署方案. 1.为什么需要自动部署 ...

  3. spring cloud微服务框架第八天

    第八天,应用的监控功能,对于分布式系统非常重要.如果把分布式系统比作整个社会系统.那么各个服务对应社会中具体服务机构,比如银行.学校.超市等,那么监控就类似于警察局和医院,所以其重要性显而易见.这里说 ...

  4. Spring Cloud微服务系列文,服务调用框架Feign

    之前博文的案例中,我们是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可以通过注解等方式来绑定参数,或者以声明的方式来指定请求返回类型是JSON.    这种 ...

  5. (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...

  6. Dubbo和Spring Cloud微服务架构对比

    一.为什么要使用微服务? 微服务提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合. 今天我们来了解下业内主要的微服务框架:Dubbo 和 Spring Cloud 微服务主要的优势 降 ...

  7. Spring Cloud微服务版本灰度发布新神器

    项目地址:https://github.com/Nepxion/Discovery 强烈建议stra.fork该项目,该项目可以作为学习改造Spring Cloud组件的案例项目. Nepxion D ...

  8. spring cloud微服务分布式云架构 - Spring Cloud集成项目简介

    Spring Cloud集成项目有很多,下面我们列举一下和Spring Cloud相关的优秀项目,我们的企业架构中用到了很多的优秀项目,说白了,也是站在巨人的肩膀上去整合的.在学习Spring Clo ...

  9. 福利继续:赠书《Spring Cloud微服务-全栈技术与案例解析》

    <Spring Cloud微服务-全栈技术与案例解析> 在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据.传统的架构已经慢慢不能支撑互联网业务的发展,这时候微服 ...

最新文章

  1. 五. H.264的码流封装格式
  2. centos7加固手册
  3. 1._请写出5种以上的android中界面常用布局方式,跳槽季“充电宝”Android面试题(一)...
  4. 倍频程分析函数matlab,瞬时声压时域数据怎么用matlab进行1/3倍频程声压级分析
  5. 由于找不到appvisvsubsystems32.dll_老实人就别找女朋友了 跟个老实人结婚有多累_新闻资讯...
  6. 计算最大值和最小值(分治法)
  7. 用 TStringList 模拟 将字符串转换为变量的功能 - 回复 flq_00000 和 外来天客 的问题...
  8. 【肌电信号】基于matlab GUI脉搏信号处理系统【含Matlab源码 1062期】
  9. 从JS库的使用者转变成JS的开发者——第一篇 javascript对象
  10. 单片机12864c语言,51单片机+带字库液晶12864+DS1302数字时钟C源程序
  11. 最新JAVA调用新浪微博API之发微博、发图片
  12. 新丰机器人_韶关新丰:智能巡检开启配电网运维新模式
  13. NMS 非极大值抑制原理及实现
  14. android 蓝牙连接苹果手机号码,苹果与android蓝牙连接怎么实现
  15. Golang线程池gpool
  16. mac 扩展显示器全屏滑动不一起滑动
  17. 快讯 I Nexperia 超低电容 ESD 保护二极管保护汽车数据接口
  18. 像科学家一样思考python_河像什么的比喻句
  19. 信息系统项目管理师必背核心考点(六十八)数字证书、数字签名
  20. 三节课P1课程思维导图

热门文章

  1. 南阳14(会场安排问题)
  2. Nginx模块开发—Nginx代码规范
  3. Java:应用Observer接口实现Observer模式
  4. IOC容器特性注入第六篇:利用MVC注入点,把容器启动
  5. 防范网络*** 应用层防护是重点
  6. Visual C++ 2008入门经典 第四章数组 字符串(练习题)
  7. 运营是一个产品价值传递的过程,互联网营销
  8. 五款提高工作效率的在线工具【神器】
  9. c#之多线程之为所欲为
  10. iOS AFN监听网络状态