zoukankan      html  css  js  c++  java
  • SpringCloud微服务概述

    一、为什么使用微服务?

    传统的 Java Web 都是采用单体架构的方式来进行开发、部署、运维,随着业务的发展,开发变得越来越复杂;修改、新增某个功能,需要对整个系统进行测试,重新部署;一个模块出现问题,很可能导致整个系统崩溃;多团队同时对数据进行管理,容易产生安全漏洞;各模块使用同一种技术框架,很难根据具体业务需求选择更合适的框架,局限性太大;模块内容过于复杂,如果员工离职,可能需要很长时间才能完成任务交接…为了解决这些问题,微服务应运而生,将一个单体应用拆分成若干个小型的服务,在系统架构层面进行解耦合,协同完成系统功能的一种架构模式。

    二、微服务的优缺点

    1、优点

    • 系统中的不同功能模块拆分成多个不同服务,这些服务能够独立部署和扩展;
    • 由于每个服务都运行在自己的进程内,因此更新时不会影响其他服务的运行;
    • 由于独立部署,可以更准确的为每个服务评估性能容量。

    2、缺点

    • 学习难度和运维难度增加;
    • 拆分服务后,业务逻辑上的依赖不会消除,单体应用中的代码依赖变为服务间的通信依赖,一旦因为某些原因导致接口出错,就有可能产生级联反应,造成整个系统崩溃;
    • 单体服务拆分后,分布式环境复杂,综合考虑的因素增加,比如某个需求调用多个微服务,如何保证数据一致性、网络延迟、异步消息等。

    三、为什么选SpringCloud?

    SpringCloud是一个解决微服务架构实施的综合性解决框架,整合了诸多被广泛实践和证明过的框架作为实施的基础部件,又在该体系基础上创建了一些非常优秀的组件。

    对于 Java 开发者而言,Spring 全家桶系列产品的优势在于功能齐全、简单好用、性能优越、文档规范,有着极高的社区活跃度,实际开发中就各方面综合因素来看,Spring Cloud 是微服务架构中非常优秀的实现方案。

    四、什么是SpringCloud?

    SpringCloud 是一个基于SpringBoot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
    Spring Cloud 包含了多个子项目,如下图所示:
    Spring Cloud架构

  • 相关阅读:
    MySQL修改表中字段的字符集
    JMM内存模型相关笔记整理
    可重入锁与不可重入锁
    ForkJoin、并行流计算、串行流计算对比
    CyclicBarrier的用法
    git笔记整理-learnGitBranching
    Git 学习相关笔记
    《0day2》学习笔记-part5(书目第十二章(上))
    《0day2》学习笔记-part4(书目第八、九、十、十一章)
    《0day2》学习笔记-part3(书目第六、七章)
  • 原文地址:https://www.cnblogs.com/luckyliulin/p/13635915.html
Copyright © 2011-2022 走看看