1.什么是微服务

1.1. 微服务介绍

  • 官网: https://www.martinfowler.com/articles/microservices.html
  • 官方定义:微服务就是由一系列围绕自己业务开发的微小服务构成,他们独立部署运行在自己的进程里,基于分布式的管理
  • 通俗定义:微服务是一种架构,这种架构是将单个的整体应用程序分割成更小的项目关联的独立的服务。一个服务通常实现一组独立的特性或功能,包含自己的业务逻辑和适配器。各个微服务之间的关联通过暴露api来实现。这些独立的微服务不需要部署在同一个虚拟机,同一个系统和同一个应用服务器中。

1.2. 为什么是微服务

1.2.1.单体应用

# 1.优点
-   单一架构模式在项目初期很小的时候开发方便,测试方便,部署方便,运行良好。
# 2.缺点
- 应用随着时间的推进,加入的功能越来越多,最终会变得巨大,一个项目中很有可能数百万行的代码,互相之间繁琐的jar包。
- 久而久之,开发效率低,代码维护困难
- 还有一个如果想整体应用采用新的技术,新的框架或者语言,那是不可能的。
- 任意模块的漏洞或者错误都会影响这个应用,降低系统的可靠性

1.2.2.微服务架构应用

# 1.优点
- 将服务拆分成多个单一职责的小的服务,进行单独部署,服务之间通过网络进行通信
- 每个服务应该有自己单独的管理团队,高度自治
- 服务各自有自己单独的职责,服务之间松耦合,避免因一个模块的问题导致服务崩溃
# 2.缺点
- 开发人员要处理分布式系统的复杂性
- 多服务运维难度,随着服务的增加,运维的压力也在增大
- 服务治理 和 服务监控 关键

1.2.3.架构的演变

# 1.架构的演变过程
- [单一应用架构] `===>` [垂直应用架构] `===>` [分布式服务架构] `===>` [流动计算架构]||[微服务架构] `===>` [未知]
  • 友情提醒: 好的架构并不是设计出来的,一定是进化来的!!!

1.2.4.微服务的解决方案

# 1.Dubbo (阿里系)
- 初出茅庐:2011年末,阿里巴巴在GitHub上开源了基于Java的分布式服务治理框架Dubbo,之后它成为了国内该类开源项目的佼佼者,许多开发者对其表示青睐。同时,先后有不少公司在实践中基于Dubbo进行分布式系统架构,目前在GitHub上,它的fork、star数均已破万。Dubbo致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,使得应用可通过高性能RPC实现服务的输出、输入功能和Spring框架无缝集成。Dubbo包含远程通讯、集群容错和自动发现三个核心部分。- 停止维护:从2012年10月23日Dubbo 2.5.3发布后,在Dubbo开源将满一周年之际,阿里基本停止了对Dubbo的主要升级。只在之后的2013年和2014年更新过2次对Dubbo 2.4的维护版本,然后停止了所有维护工作。Dubbo对Srping的支持也停留在了Spring 2.5.6版本上。- 死而复生:多年漫长的等待,随着微服务的火热兴起,在国内外开发者对阿里不再升级维护Dubbo的吐槽声中,阿里终于开始重新对Dubbo的升级和维护工作。在2017年9月7日,阿里发布了Dubbo的2.5.4版本,距离上一个版本2.5.3发布已经接近快5年时间了。在随后的几个月中,阿里Dubbo开发团队以差不多每月一版本的速度开始快速升级迭代,修补了Dubbo老版本多年来存在的诸多bug,并对Spring等组件的支持进行了全面升级。- 2018年1月8日,Dubbo创始人之一梁飞在Dubbo交流群里透露了Dubbo 3.0正在动工的消息。Dubbo 3.0内核与Dubbo 2.0完全不同,但兼容Dubbo 2.0。Dubbo 3.0将以Streaming为内核,不再是Dubbo 时代的RPC,但是RPC会在Dubbo 3.0中变成远程Streaming对接的一种可选形态。从Dubbo新版本的路线规划上可以看出,新版本的Dubbo在原有服务治理的功能基础上,将全面拥抱微服务解决方案。- 结论:当前由于RPC协议、注册中心元数据不匹配等问题,在面临微服务基础框架选型时Dubbo与Spring Cloud是只能二选一,这也是为什么大家总是拿Dubbo和Spring Cloud做对比的原因之一。Dubbo之后会积极寻求适配到Spring Cloud生态,比如作为Spring Cloud的二进制通信方案来发挥Dubbo的性能优势,或者Dubbo通过模块化以及对http的支持适配到Spring Cloud。

# Spring Cloud:
- Spring Cloud NetFlix  基于美国Netflix公司开源的组件进行封装,提供了微服务一栈式的解决方案。- Spring Cloud alibaba在Spring cloud netflix基础上封装了阿里巴巴的微服务解决方案。- Spring Cloud Spring目前spring官方趋势正在逐渐吸收Netflix组件的精华,并在此基础进行二次封装优化,打造spring专有的解决方案

2.什么是SpringCloud

2.1. springcloud介绍

  • 官方网址: https://cloud.spring.io/spring-cloud-static/Hoxton.SR5/reference/html/
  • Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. -------[摘自官网]
# 1.翻译
- springcloud为开发人员提供了在分布式系统中快速构建一些通用模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线)。分布式系统的协调导致了锅炉板模式,使用springcloud开发人员可以快速地建立实现这些模式的服务和应用程序。# 2.通俗理解
- springcloud是一个含概多个子项目的开发工具集,集合了众多的开源框架,他利用了Spring Boot开发的便利性实现了很多功能,如服务注册,服务注册发现,负载均衡等.SpringCloud在整合过程中主要是针对Netflix(耐非)开源组件的封装.SpringCloud的出现真正的简化了分布式架构的开发。NetFlix 是美国的一个在线视频网站,微服务业的翘楚,他是公认的大规模生产级微服务的杰出实践者,NetFlix的开源组件已经在他大规模分布式微服务环境中经过多年的生产实战验证,因此Spring Cloud中很多组件都是基于NetFlix
spring netflix 维护  闭源

2.2. 核心架构及其组件

# 1.核心组件说明
- eurekaserver、consul、nacos      服务注册中心组件
- rabbion & openfeign             服务负载均衡 和 服务调用组件
- hystrix & hystrix dashboard     服务断路器  和  服务监控组件
- zuul、gateway                   服务网关组件
- config                          统一配置中心组件
......

01,什么是微服务和springcloud介绍相关推荐

  1. 最新微服务框架SpringCloud Alibaba介绍,搭建

    微服务和SpringCloud Alibaba详细介绍(一),手把手搭建微服务框架 PS:本博客是本人参照B站博主:JAVA阿伟如是说 的视频讲解手敲整理的笔记 跟着一起手动搭建的框架 供大家一起学习 ...

  2. 微服务开发框架 SpringCloud

    今天给大家介绍一下微服务开发框架 SpringCloud. 概述 微服务架构是当前软件开发领域的技术热点.它在各种博客.社交媒体和会议演讲上的出镜率非常之高.大家以前可能或多或少听说过些许.然而微服务 ...

  3. 容器化技术与微服务结合---SpringCloud框架与阿里云serverless k8s的结合(六)

    目录 系列 写在前面 Serverless K8S 概念 创建集群 微服务搭建 项目地址 环境区分以及dockerFile注意 阿里云日志接入 创建阿里云日志project 配置 测试 Kuberne ...

  4. Java之 Spring Cloud 微服务的 SpringCloud Config 配置中心(第四个阶段)【二】【SpringBoot项目实现商品服务器端调用】

    SpringCloud学习目录点击跳转对应的文章 Java之 Spring Cloud 微服务搭建(第一个阶段)[一][SpringBoot项目实现商品服务器端是调用] Java之 Spring Cl ...

  5. 走进Spring Cloud之一 微服务和SpringCloud

    走进Spring Cloud之一 微服务和SpringCloud Monolithic架构(单体架构) 微服务架构 为什么采用微服务呢? 服务注册.发现.负载均衡和健康检查 集中式 LB 方案 进程内 ...

  6. springcloud 微服务鉴权_我对微服务、SpringCloud、k8s、Istio的一些杂想

    一.微服务与SOA "微服务"是一个名词,没有这个名词之前也有"微服务",一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微 ...

  7. MongoDB的RestAPI微服务组件--Mongo-Rest介绍

    MongoDB的RestAPI微服务组件--Mongo-Rest介绍 开源项目:https://gitee.com/yunwisdoms/mongodb-rest 安装 使用npm安装: npm in ...

  8. Java架构师面试问些什么?微服务之springcloud面试题(共22题,含详细解答)

    [Java架构师面试网]收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号:Java架构师面试网,关注回复"资料"即可领取精美整理的面试资料 ...

  9. 微服务架构总结性介绍 (深度好文)

    微服务架构总结性介绍 (深度好文) 资料来源:有架构给我的一些资料,以及自己百度和论坛.社区找来的一些资料,权当做一个总结式的简介... 目录如下: 一.微服务架构介绍 二.出现和发展 三.传统开发模 ...

最新文章

  1. Win32汇编获取和设置文本框的内容
  2. java struts2 demo,Struts2第一个Demo求指导
  3. 51nod1676-无向图同构【乱搞】
  4. h5评论直接显示代码_全套H5教程免费学,让你0基础自学制作H5页面
  5. 《PHP程序员面试笔试宝典》——如何巧妙地回答面试官的问题?
  6. 下单延迟10s撤单性能测试
  7. always on sql 收缩日志_sql server日志文件过大无法收缩的问题
  8. 7.07 生成累积乘积
  9. iOS App所需图标尺寸
  10. java中null字符串与字符串长度为0的区别
  11. 微信打不开MP4文件 (记录编码问题)
  12. mysql导入oracle dmp文件_Oracle:记一次导入dmp文件
  13. 数字内容产业的产业链结构
  14. Verilog语言语句介绍
  15. 微信小程序获取手机号,前端解密手机号,微信sessionKey过期,微信手机号授权
  16. 主流智能汽车电子架构
  17. jsp页面hidden的诡异
  18. SSM实现邮箱验证功能
  19. stm32f103电子钟心得体会_STM32时钟小结
  20. mysql主从同步检测

热门文章

  1. UML状态图 2021.07.18
  2. android获取wifi信号强度,Native.js 获取当前wifi信号强度
  3. 网络技术(六)深入了解IP地址和子网划分
  4. mac 安装安卓虚拟机
  5. 最新PPT模板清单分享-年终总结|新年计划|商务报告|优秀文案
  6. 【北京】亚洲微软研究院-微软游记
  7. GeoServer rest接口的python实现
  8. html+css仿制小米商城首页
  9. swift:用UIWebView读取本地html文件
  10. Spring Boot——邮件功能