【精品问答】关于入门微服务,那些你必懂的知识-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

【精品问答】关于入门微服务,那些你必懂的知识

huc_逆天 2020-02-25 11:07:36 2980

近几年随着微服务这个概念大火,大家对这个名词早已耳熟能详。大家都在建设微服务,仿佛不谈一点微服务相关的技术,就不是技术人了。微服务简而言之就是一个新型的软件框架,是把一个大型的的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可以扩展单个组件而不是整个的应用程序堆栈,从而满足服务登记协议。

下面我逐个码字整理的微服务入门必会的17个小知识,知识在精不在多,掌握住最核心的内容那么做起来也会事半功倍哦~大家如果有补充或者关于微服务其他的问题,欢迎在底部留言和我一起探讨哦~

  1. 描述下应用架构的发展历程
  2. 单体架构的优点、缺点
  3. 什么是传统的分布式架构
  4. SOA架构的优点、缺点
  5. 什么是微服务技术
  6. 目前流行的微服务解决方案
  7. 什么是中间件
  8. 什么是Spring Cloud
  9. SpringCloud项目模块
  10. SpringCloud与服务治理中间件
  11. Springcloud与配置中心中间件
  12. Springcloud与网关中间件
  13. Springcloud与全链路监控中间件
  14. Springcloud与分布式事务
  15. Springcloud与领域驱动
  16. SpringCloud与gRPC协议
  17. SpringCloud与Dubbo生态融合

欢迎大家和我一起讨论《关于入门微服务,那些你必懂的知识》,初次手动码字若有不足之处,可在底部留言区回复哦~你的留言是我前进的动力~

image.png

同时欢迎大家加入问答官大家庭,闲来无事探讨技术二三事,解决技术难题我最行,悠哉游哉技术论文小分享,群内电子技术期刊多多多~钉钉扫码加入

image.png

监控 Dubbo 中间件 Java 应用服务中间件 微服务 Spring
分享到
取消 提交回答
全部回答(2)
  • 游客5sblnickduwac
    2020-03-18 10:38:40

    感谢 已收藏

    1 0
  • huc_逆天
    2020-02-25 11:08:12

    1、 描述下应用架构的发展历程

    目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构

    2、单体架构的优点、缺点

    优点:
    I 易于开发,开发人员可在短时间内开发完成单体应用
    II 易于测试
    III 易于部署
    缺点:
    I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性
    II 降低系统的性能
    III 系统启动、重启缓慢
    IV 扩展性差

    3、 什么是传统的分布式架构

    简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用
    好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低

    4、 SOA架构的优点、缺点

    面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署
    缺点,调用、交互采用远程通信,接口开发增加工作量

    5、 什么是微服务技术

    微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级

    6、 目前流行的微服务解决方案

    目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件
    另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他

    7、 什么是中间件

    中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等

    8、 什么是Spring Cloud

    也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用

    9、 SpringCloud项目模块

    注册中心 Eureka
    第一代网关 Zuul
    多语言 Sidecar
    负载均衡 Ribbon
    熔断器 Hystrix
    第二代网关 gateway
    集群监控 Turbine
    声明式HTTP客户端 Feign
    注册中心 consul
    链路追踪 sleuth
    配置中心 config
    服务总线 Bus

    10、 SpringCloud与服务治理中间件

    服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关

    11、 Springcloud与配置中心中间件

    单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。

    SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口

    12、 Springcloud与网关中间件

    API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能
    I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换
    Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配
    Iii 流量管控
    Iv 安全防护、权限校验
    SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等

    13、 Springcloud与全链路监控中间件

    分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth

    14、 Springcloud与分布式事务

    微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案

    15、 Springcloud与领域驱动

    微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用

    16、 SpringCloud与gRPC协议

    通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现

    17、 SpringCloud与Dubbo生态融合

    SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目

    2 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题