热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微服务与SpringCloud

微服,务,与,sp

微服务是继SOA之后流行起来的一种系统架构模式。因它紧随SOA之后,所以有必要对他们先作个比较。

SOA vs 微服务

关于二者的比较表格,我在谷歌上搜索的一篇文章分析的挺好,现引用如下。

面向服务架构 微服务架构
出现于1990's年代 出现于2000's年代
最大化应用服务的重用性 关注解耦
系统变化需要修改整体 系统变化是创建新服务
DevOps和持续发布开始变得流行但不是主流 重点关注DevOps和持续发布
聚焦于业务系统重用 “边界上下文”越发重要
使用ESB通信 使用简单消息系统通信
支持多种消息协议 使用轻量级协议诸如:HTTP, REST等
对部署在其上的所有服务使用通用平台 通常使用云平台而非应用服务器
Docker不太流行 容器与微服务工作的非常协调
SOA服务共享数据存储 每个微服务可以拥有独立的存储服务
通用的治理和标准 松散治理,关注团队协作与自由选择

SOA vs MicroService

微服务

微服务这么流行,肯定有其优势所在。不过也不能不看到它的劣势噢。

优势

  • 每个模块都是独立的,所以你可以选择不同的开发语言以获得语言级别的好处
  • 每个模块都可以有自己的数据库,NoSQL或者关系型
  • 开发人员构建和维护微服务所以他们对模块非常熟悉。跨功能的成员一些协作完成服务

劣势

  • 服务调用其它服务,所以对于大型项目来说,难以跟踪调用过程以及监控服务
  • 服务之间通过RESTful API调用所以性能可能没有整体的进程内通信的系统高
  • 难以调试,尤其是一个服务调用了一系列其它服务
SpringCloud

如何扬长避短,更好更方便地利用微服务呢。

SpringCloud提供以下特性来强化微服务的优势、弥补劣势

  • 分布式/版本化的配置
  • 服务注册和发现
  • 路由
  • 服务到服务的调用
  • 负载均衡
  • 熔断(Circuit Breaker)
  • 全局锁
  • leader选举及集群状态
  • 分布式消息
SpringCloud主要项目

Spring Cloud Config

统一配置中心。

Spring Cloud Netflix

服务发现

Spring Cloud Bus

一个事件总线,利用分布式消息系统将服务和服务实例连到一起。可用于在集群内传播状态变化(如配置变化事件)

Spring Cloud for Cloud Foundry

集成你的应用到Pivotal Cloud Foundry,提供并且让实现SSO和OAuth2来保护资源变得更加容易。

Spring Cloud Open Service Broker

提供一个用于构建实现了Open Service Broker API的服务的Broker的起始点

Open Service Broker API连接开发者到一个全球的服务生态环境,该项目给开发者、ISVs、SaaS厂商提供一个单一的、简单的和完美的方式去发布服务到原生云平台上(诸如Cloud Foundry, OpenShift, Kubernetes)

Open Service Broker 项目

Open Service Broker API定义

Spring Cloud Cluster

提供基于Zookeeper、Redis、Hazelcast、Consul的领头选举、通用状态机模式的抽象及实现。

Spring Cloud Consul

基于Hashicorp Consul的服务发现及配置管理。

Spring Cloud Security

提供对基于负载均衡的OAuth2 rest client和authentication header的支持,依赖了Zuul proxy。

Spring Cloud Sleuth

应用于Spring Cloud的分布式追踪功能,与Zipkin, HTrace and log-based (e.g. ELK) tracing 相兼容。

Spring Cloud Data Flow

一个cloud-native的服务编排,易用的DSL、drag-and-drop GUI,REST-APIs 一起全面简化了基于服务编排的数据管道。

Spring Cloud Stream

一个轻量级的事件驱动微服务框架,便于快速构建连接到外部系统的应用。简单的声明模型可以使用Apache Kafka或RabbitMQ在Spring Boot应用间收发消息。

Spring Cloud Stream App Starters

一系列基于Spring Boot的Spring集成应用程序,提供与外部应用的集成。

Spring Cloud Task

一个短期的微服务框架,快速构建执行有限数量的数据处理的应用。简单的声明就可以增加功能性或非功能性特性到Spring Boot中。

Spring Cloud Task App Starters

一系列单机版的可执行应用程序,可以拥有按需用例:比如数据库迁移、机器学习、定时操作。这些应用可以运行于各种独立平台,比如:Cloud Foundry、Apache Yarn、 ApacheMesos、Kubernetes、Docker甚至你的笔记本上。

Spring Cloud Zookeeper

基于Apache Zookeeper的服务发现及配置管理。

Spring Cloud Connectors

使得运行于各种平台上的PaaS应用能够方便地连接到后端服务,比如数据库、消息Broker。(这个项目原先叫作Spring Cloud)

Spring Cloud Starters

Spring Boot风格的启动项目,简化服务消费方Spring Cloud的依赖管理。

Spring Cloud CLI

Spring Boot CLI插件,用来快速使用Groovy语言创建Spring Cloud组件应用

Spring Cloud Contract

是一揽子有关帮助用户成功地实现“消费端驱动契约”方式解决方案

Spring Cloud Gateway

是一款基于智能的、可编程的路由的Project Reactor

Spring Cloud OpenFeign

为Spring Boot应用提供通过自动化配置和绑定到Spring Environment和其它编程模型风格的集成。

原文发表于http://www.yesdata.net/2018/03/15/microservice-and-spring-cloud/

·


推荐阅读
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • 本文作为SpringCloud Alibaba系列教程的第一部分,主要介绍如何搭建SpringCloud Alibaba的开发环境,帮助初学者快速入门。SpringCloud Alibaba是由阿里巴巴团队开源的一套微服务工具集,旨在简化分布式系统的构建过程。 ... [详细]
  • SpringCloud电商平台开发指南:实战案例解析
    本文详细介绍了基于SpringCloud构建的电商平台项目,涵盖了从技术选型到项目部署的全流程,旨在帮助开发者快速掌握电商平台的开发技巧。 ... [详细]
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 利用GitHub热门资源,成功斩获阿里、京东、腾讯三巨头Offer
    Spring框架作为Java生态系统中的重要组成部分,因其强大的功能和灵活的扩展性,被广泛应用于各种规模的企业级应用开发中。本文将通过一份在GitHub上获得极高评价的Spring全家桶文档,探讨如何掌握Spring框架及其相关技术,助力职业发展。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 混合云架构在本地与云服务间寻求平衡的有效性探讨
    随着云计算技术的发展,混合多云架构因其灵活性和高效性而备受关注。本文将深入探讨混合多云(简称混合云)如何通过结合本地基础设施与云端资源,为企业提供一个更为平衡且高效的IT解决方案。 ... [详细]
  • 获得头条Offer后,我感激的七个技术公众号
    是否感觉订阅的公众号过多,浏览时缺乏目标性,未能获取实质性的知识?本文将介绍如何精简公众号列表,提升信息吸收效率,并推荐几个高质量的技术公众号。 ... [详细]
  • Spring Cloud Config: 高效统一的配置管理解决方案
    Spring Cloud Config 是一个用于集中管理和分发应用程序配置的工具,支持多环境下的配置管理(如开发、测试和生产环境),并且能够根据需求动态调整配置参数(例如,在大型促销活动期间增加数据库的最大连接数)。 ... [详细]
  • 本文探讨了为何采用RESTful架构及其优势,特别是在现代Web应用开发中的重要性。通过前后端分离和统一接口设计,RESTful API能够提高开发效率,支持多种客户端,并简化维护。 ... [详细]
author-avatar
cf15ron
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有