• SpringCloud学习1_基本概念


    1.微服务概述

    摘抄自网络

    单个轻量级服务一般为一个单独微服务,微服务讲究的是 专注某个功能的实现,比如登录系统只专注于用户登录方面功能的实现,讲究的是职责单一,开箱即用,可以独立运行。微服务架构系统是一个分布式的系统,按照业务进行划分服务单元模块,解决单个系统的不足,满足越来越复杂的业务需求

    马丁福勒(Martin Fowler):就目前而言,对于微服务业界并没有一个统一的、标准的定义。但通常而言,微服务架构是一种架构模式或者说是架构风格,它提倡将单一应用程序划分成一组小的服务。每个服务运行在其独立的自己的进程中服务之间相互配合、相互协调,为用户提供最终价值。服务之间采用轻量级通信。每个服务都围绕具体业务进行构建,并能够独立部署到生产环境等。另外应尽量避免统一的、集中的服务管理机制。

    自己的理解

    将以前的一站式服务,解耦成一个个服务,每个服务去做一件事情,然后我们就可以进行组合啊各种操作,就像上面写的一样,甚至各个服务的编程语言都可以不同,只要提供我们所需要的能力即可.

    基于这种架构思想,为了能成功的运行这一套体系,有了微服务的各种框架.

    服务于这个架构理念,解决其中的通信、容灾等问题的解决方案.

    2.微服务与微服务架构

    • 微服务

      形容的是服务的大小,这个应用能解决某个或者某一类的问题,就可以称之为一个微服务.

    • 微服务架构

      一种架构理念,就是最开始介绍的这一堆.

      服务之间互相协调配合,最后为用户提供整套的功能.

      每个微服务之间是独立的,有自己的服务器啊数据库啊等等,开发部署啊这些都可以独立完成.

    3.微服务架构的优缺点

    • 微服务的优点

    (1)微服务更容易聚焦在特定的业务上。

    (2)微服务可以由小团队独立开发

    (3)微服务是松耦合的,可以独立部署

    (4)可以使用不同的语言开发

    (5)单个应用的业务更容易被理解,修改,小团队更容易关注自己的工作成果,无须合作而体现价值。

    (6)更容易使用新技术

    (7)微服务只是业务逻辑的代码,不会与HTML/CSS或其他界面混合。

    • 微服务的缺点

    (1)前期架构需要更多的工作量。

    (2)与运维需要更多的交流

    (3)带来更多的技术难点

    (4)分布式的架构维护难度更高。

    (5)问题跟踪更难

    (6)随着服务的增加,管理的成本增加

    4.微服务涉及的部分技术

    image-20201011221902257

    5.微服务架构的4个核心问题:

    • 服务很多,客户端如何访问?
    • 这么多服务,服务之间如何通信?
    • 这么多服务,如何管理?
    • 服务挂了怎么办?

    6.基于这四个问题,有了一系列的解决方案.

    • SpringCloud与NetFlix

      一站式解决方案

      Api网关: zuul组件

      通信: Feign(基于Http)

      服务注册与发现: Eureka

      熔断机制: Hystrix

    • Dubbo与Zookeeper

      半自动,需要整合别人的.

      API网关: 没有,得找第三方组件,或者自己实现.

      通信: Dubbo(高性能的RPC框架)

      服务注册与发现: Zookeeper

      没有:借助第三方

    • SpringCloud Alibaba

      新的一站式解决方案,更简单,因为上面cloud的Netflix停更了.

    7.以后可能用到的新概念

    服务网格:Server Mesh、Istio

    8.所以核心还是这四个问题

    1.API

    2.通信问题:Http、RPC

    3.注册与发现

    4.熔断机制

    9.为啥会有这些问题?

    网络不可靠,信息可能会丢失.

    如果网络可靠,那只要最开始配置好了,设置好各个服务之间的通信关系,以后就不用管了,也不会考虑服务挂掉之类的问题.

    就是因为情况太多变了,一切都可能存在着变化,由此才产生了上面的4个核心问题.

    10.各种微服务框架的对比

    功能点/服务框架 Netflix/SpringCloud Motan gRPC Thrift Dubbo/DubboX
    功能定位 完整的微服务框架 RPC框架,但整合了ZK或Consul,实现集群环境的基本服务注册/发现 RPC框架 RPC框架 服务框架
    支持Rest 是,Ribbon支持多种可插拔的序列化选择
    支持RPC 是(Hession2)
    支持多语言 是(Rest形式)?
    负载均衡 是(服务端zuul+客户端Ribbon),zuul-服务,动态路由,云端负载均衡Eureka(针对中间层服务器) 是(客户端) 是(客户端)
    配置服务 Netfix Archaius,Spring Cloud Config Server集中配置 是(zookeeper提供)
    服务调用链监控 是(zuul),zuul提供边缘服务,API网关
    高可用/容错 是(服务端Hystrix+客户端Ribbon) 是(客户端) 是(客户端)
    典型应用案例 Netflix Sina Google Facebook
    社区活跃程度 一般 一般 2017年后重新开始维护,之前中断了5年
    学习难度 中等
    文档丰富程度 一般 一般 一般
    其他 Spring Cloud Bus为我们的应用程序带来了更多管理端点 支持降级 Netflix内部在开发集成gRPC IDL定义 实践的公司比较多
  • 相关阅读:
    SpringMVC+Spring3+hibernate4 开发环境搭建以及一个开发实例教程
    SpringMVC 理论与实用技术(二)文件上传
    导入导出封装工具类(二) jXLS Excel报表生成工具类
    导入导出封装的工具类 (一) 利用POI封装
    eclipse 鲜为人知的调试技巧,你用过多少
    前端框架(二)DIV多选复选框框的封装和MySql数据库存取
    WPF/Silverlight Layout 系统概述——Arrange(转)
    WPF/Silverlight Layout 系统概述——Measure(转)
    Border绘制虚线框(转)
    ImageSource使用心得(转)
  • 原文地址:https://www.cnblogs.com/yang37/p/13996111.html
Copyright © 2020-2023  润新知