找回密码
 会员注册
查看: 6|回复: 0

pringcloud实战(基于pringcloud)

[复制链接]

5

主题

0

回帖

16

积分

新手上路

积分
16
发表于 7 天前 | 显示全部楼层 |阅读模式
Spring Cloud概述 从本篇开始,我们将正式踏上探索Spring Cloud秘密的旅程。学完本文后,读者将学会搭建一个完整的分布式架构,从而向架构师的目标靠近。 简介 Spring Cloud基于Spring Boot,是微服务架构思想的一个具体实现,它为开发人员提供了一些快速构建分布式系统中常见模式的工具,如配置管理、服务发现、熔断器、智能路由、微代理、控制总线等。Spring Cloud 的底层基于Spring Boot框架,它不重复造轮子,而是将一些第三方实现的微服务应用模块集成。 Spring Cloud是一系列有序框架的集合,下面列举了一些我们在实际项目中可能会用到的子项目。Spring Cloud Config:通过SVN、Git等仓库使配置集中化存储,配置资源可以直接映射到Spring Environment 中。Spring Cloud Netflix:与 Netflix开发的各种组件集成,包括服务注册与发现、熔断器、服务网关、Rest客户端及负载均衡器等。Spring Cloud Bus:将服务、服务实例与分布式消息链接在一起的事件总线;用于在集群中传播状态变化;和 Spring Cloud Config配合,可以实现配置的动态刷新。Spring Cloud Consul:进行Spring Cloud中的服务注册与发现配置管理。Spring Cloud Security:为Zuul代理中的负载平衡OAuth2REST客户端和身份验证中继提供支持。Spring Cloud Sleuth:用于Spring Cloud应用程序的分布式跟踪,兼容Zipkin、HTrace和基于日志(例如ELK)的跟踪。Spring Cloud Data Flow:一种能够用于现代运行时并可以组合微服务应用程序的云本地编排服务。易于使用的DSL、拖放式GUI和REST-API共同简化了基于微服务的数据管道的整体编排。Spring Cloud Stream:轻量级事件驱动的微服务框架,能够快速构建可连接到外部系统的应用程序,用于在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息。Spring Cloud Task:一种短暂的微服务框架,用于快速构建执行有限数据处理的应用程序,它用于向Spring Boot应用程序中添加功能性和非功能性的简单声明。Spring Cloud Gateway:一款基于Project Reactor的智能可编程路由器。由于Zuul 2.0版本的开发经常跳票,所以Spring官方开发了路由网关以支持Spring Boot 2.0及新版Spring Cloud。Spring Cloud OpenFeign:基于Netflix Feign,是一个声明式的HTTP客户端,可以轻松实现服务间接口调用。Spring Cloud Function:通过函数促进业务逻辑的实现,它支持无服务器提供商之间的统一编程模型以及独立运行(本地或PaaS )。这些项目不会全部集中在一个应用上,将它们列举出来的目的是方便读者在构建基于SpringCloud的微服架构时,可根据实际应用情况选择一些适合的组件集成到应用中。 优缺点 在技术更新如此频繁的时代中,存活下来的框架必然有它的优点。那么,Spring Cloud 有什么优点呢?下面我们就来探讨一下。集大成者:包含了微服务架构的方方面面。约定优于配置:基于注解,没有配置文件。轻量级组件:整合的组件大多比较轻量,且都是各自领域的佼佼者。开发简便:对组件进行了大量封装,从而简化了开发。开发灵活:组件都是解耦的,开发人员可以灵活按需选择组件。事物都有双面性,Spring Cloud也不例外,它主要有以下缺点。项目结构复杂:每一个组件或者每一个服务都需要创建一个项目。部署门槛高:需要配合Docker等容器技术进行集群部署。而要想深入了解Docker,学习成本比较高。Spring Cloud 的优势是显而易见的,因此对于想研究微服务架构的读者来说,学习Spring Cloud是一个不错的选择。 现状 目前,国内使用Spring Cloud作为主要技术栈的公司并不多见,这并不是因为Spring Cloud不好,主要原因有以下几点。Spring Cloud中文文档较少,出现问题找不到太多的解决方案。国内创业型公司的技术老大很多曾就职于阿里巴巴,他们多采用Dubbo来构建微服务架构。大型公司基本都有自己的分布式解决方案,而中小型公司的架构很多用不上微服务,所以没有采用Spring Cloud 的必要性。但是微服务架构是一个趋势,而Spring Cloud是微服务解决方案中的佼佼者,这也是我编写本书的意义所在。 开始Spring Cloud 实战 学习任何一门语言或者一种框架,都是由Hello World 开始的,本书也不例外。在正式进入实战之前,我们先来搭建一个最简单的Spring Cloud框架,以便大家能够领略其强大之处。 技术储备 在开始 Spring Cloud学习之前,读者应该拥有以下技术储备。 Java基础:如果你的Java基础还不够扎实,建议先学习相关内容,再来阅读本文。 Spring MVC: Spring Cloud基于Spring Boot,而 Spring Boot又基于Spring MVC,因此读者需要具备Spring MVC框架的基础。 准备工作 本文采用IntelliJIDEA开发Spring Cloud项目,若读者尚未安装该工具,可以从其官网https://www.jetbrains.com/idea/下载最新版。图4-1是我所用的IDEA的详细版本信息。 本文所用的Spring Boot版本为2.0.3.RELEASE,Spring Cloud版本为Finchley.RELEASE,因此JDK的版本至少在1.8以上。此外,书中也包含了大量lambda表达式,读者也需要了解lambda表达式,否则有些代码可能无法读懂。 从Hello World开始你的实战之旅 下面开始搭建一个最简单的Spring Cloud框架,主要包括服务的注册与发现、客户端以及服务网关。Spring Cloud 属于微服务架构,会包含多个工程,因此,我们应该先创建一个父工程,并设置为pom,每个子工程都创建在父工程之下。 打开IntelliJ IDEA,创建一个Maven工程,将其命名为springclouddemo,然后修改pom.xml的内容:pom  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-8 05:07 , Processed in 0.444710 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表