springcloud 微服务鉴权_Java微服务框架spring cloud

0827b4bfd48029c29ee7ccb7db48b08f.png

Spring Cloud是什么

Spring Boot 让我们从繁琐的配置文件中解脱了出来,而 Spring Cloud,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud组成

微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud需要管理好这些微服务需要很多框架支持。

下图是 Spring Cloud 所包含的框架图:

9fc8cce0f4bcf1b138aa030eaf774dec.png

常用组件详细介绍

 服务治理

服务注册与发现是 Spring Cloud 中最核心的组件之一,整个系统中所有的服务都可以注册到注册中心,然后由注册中心进行统一调度,方便后续的水平扩展以及故障转移等。目前 Spring Cloud 主要通过整合 Netflix 的相关产品来实现这方面的功能(Spring Cloud Netflix),包括用于服务注册和发现的 Eureka,调用断路器 Hystrix,调用端负载均衡 Ribbon,Rest 客户端 Feign,智能服务路由 Zuul,用于监控数据收集和展示的 Spectator、Servo、Atlas,用于配置读取的 Archaius 和提供 Controller 层 Reactive 封装的 RxJava。除此之外,针对于服务的注册和发现,除了 Eureka,Spring Cloud 也整合了 Consul 和 Zookeeper 作为备选,但是因为这两个方案在 CAP 理论上都遵循 CP 而不是 AP,所以官方并没有推荐使用。

分布式链路监控

Spring Cloud Sleuth 提供了全自动、可配置的数据埋点,以收集微服务调用链路上的性能数据,并发送给 Zipkin 进行存储、统计和展示。

消息组件

既然是微服务架构,那服务间的调用肯定是无法避免的。Spring Cloud Stream 对于分布式消息的各种需求进行了抽象,包括发布订阅、分组消费、消息分片等功能,实现了微服务之间的异步通信。Spring Cloud Stream 也集成了第三方的 RabbitMQ 和 Apache Kafka 作为消息队列的实现。而 Spring Cloud Bus 基于 Spring Cloud Stream,主要提供了服务间的事件通信(比如刷新配置)。

配置中心

随着服务的不断增多,同时每个服务也会有多个环境(开发环境、测试环境、生产环境等),每个环境的配置文件又会有所不同,但是其中又有许多配置是可以共用的,如果每个服务自己去管理这些配置,会给维护带来很大的麻烦,这时候,我们就需要引入配置中心去统一管理这些配置。基于 Spring Cloud Netflix 和 Spring Cloud Bus,Spring 又提供了 Spring Cloud Config,实现了配置集中管理、动态刷新的配置中心概念。配置通过 Git 或者简单文件来存储,支持加解密。

完全控制

Spring Cloud Security 基于 OAuth2 这个开放网络的安全标准,提供了微服务环境下的单点登录、资源授权、令牌管理等功能。

命令行工具

Spring Cloud Cli 提供了以命令行和脚本的方式来管理微服务及 Spring Cloud 组件的方式。

集群工具

Spring Cloud Cluster 提供了集群选主、分布式锁(暂未实现)、一次性令牌(暂未实现)等分布式集群需要的技术组件。

Spring Cloud 各个组件如何来配套使用

11cb78ccfef7173c07fe408c91e954ad.png

如上图:Spring Cloud 各个组件相互配合,合作支持了一套完整的微服务架构。

注:

1.Eureka 负责服务的注册与发现,很好将各服务连接起来

2.Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护

3.Hystrix dashboard,Turbine 负责监控 Hystrix 的熔断情况,并给予图形化的展示

4.Spring Cloud Config 提供了统一的配置中心服务

5.当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息

6.所有对外的请求和服务,都通过 Zuul 来进行转发,起到 API 网关的作用

7.最后使用 Sleuth+Zipkin 将所有的请求数据记录下来,方便进行后续分析

SpringCloud和Dubbo

SpringCloud和Dubbo都是现在主流的微服务架构

SpringCloud是Apache旗下的Spring体系下的微服务解决方案Dubbo是阿里系的分布式服务治理框架

对比图如下:

4f6e2ee27c34f9769d879a9f5e5f91fa.png

最大区别:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式。从技术维度上,其实SpringCloud远远的超过Dubbo,Dubbo本身只是实现了服务治理,而SpringCloud现在以及有21个子项目以后还会更多。所以其实很多人都会说Dubbo和SpringCloud是不公平的,但是由于RPC以及注册中心元数据等原因,在技术选型的时候我们只能二者选其一,所以我们常常用他俩来对比。

Dubbo和Spring Cloud并不是完全的竞争关系,两者所解决的问题域不一样:Dubbo的定位始终是一款RPC框架,而Spring Cloud的目的是微服务架构下的一站式解决方案。

本文转载自开测

如果对文章有任何疑问或建议

可以留言告诉我们

911cbe0faf6bc475ac7254d8d0e9be49.png
往期精彩回顾

2019年度精选文章

360技术中台招聘啦!!

花椒前端基于 Docker 的 SSR 持续开发集成环境实践


9ea227a4297aee6df0054eb4a79384c1.pngd2d775485b40e4b0c00838d3c9061cdd.png

360技术公众号

技术干货|一手资讯|精彩活动

扫码关注我们

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABP入门系列(9)——权限管理

1.引言 完成了简单的增删改查和分页功能,是不是觉得少了点什么? 是的,少了权限管理。既然涉及到了权限,那我们就细化下任务清单的功能点: 登录的用户才能查看任务清单用户可以无限创建任务并分配给自己,但…

c#quartz触发_SpringBoot集成Quartz实现定时任务

1 需求在我的前后端分离的实验室管理项目中,有一个功能是学生状态统计。我的设计是按天统计每种状态的比例。为了便于计算,在每天0点,系统需要将学生的状态重置,并插入一条数据作为一天的开始状态。另外,考虑到学生的请…

ABP入门系列(10)——扩展AbpSession

一、AbpSession是Session吗? 1、首先来看看它们分别对应的类型是什么? 查看源码发现Session是定义在Controller中的类型为HttpSessionStateBase的属性。 public HttpSessionStateBase Session { get; set; } 再来看看AbpSession是何须类也&#xff0c…

太吾绘卷第一世攻略_耽美推文-BL-仿佛在攻略一只河豚

目录:《全能攻略游戏》by公子如兰《无限升级游戏》by暗夜公主《无限游戏》BY SISIMO《请听游戏的话》by木兮娘《游戏,在线直播》by雨田君《最强游戏制作人》by木兰竹《在逃生游戏里撩宿敌》by临钥《游戏加载中》by龙柒《狩猎游戏》by砯涯《当异性参加逃生…

ABP入门系列(11)——编写单元测试

1. 前言 In computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested …

etl构建数据仓库五步法_带你了解数据仓库的基本架构

数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用&a…

ABP入门系列(12)——如何升级Abp并调试源码

1. 升级Abp 本系列教程是基于Abp V1.0版本,现在Abp版本已经升级至V1.4.2,其中新增了New Feature,并对Abp做了相应的Enhancements,以及Bug fixs。现在我们就把它升级至最新版本,那如何升级呢? 下面就请按我…

聚类分析在用户行为中的实例_看完这篇,你还敢说不懂聚类分析?

点击上方蓝色字关注我们~大数据分析中的应用,最常用的经典算法之一就是聚类法,这是数据挖掘采用的起步技术,也是数据挖掘入门的一项关键技术。什么是聚类分析?聚类分析有什么用?聚类算法有哪些?聚类分析的应…

ABP入门系列(13)——Redis缓存用起来

1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用户,以供用户选择。我们每创建一个任务时都要去数据库取一次用户列表,然后绑定到用户下拉列表显示。如果就单单对一个demo来说,这样实…

ABP入门系列(14)——应用BootstrapTable表格插件

1. 引言 之前的文章ABP入门系列(7)——分页实现讲解了如何进行分页展示,但其分页展示仅适用于前台web分页,在后台管理系统中并不适用。后台管理系统中的数据展示一般都是使用一些表格插件来完成的。这一节我们就使用BootstrapTab…

musictools怎么用不了_夏天少不了一只草编包,怎么搭配才不像“买菜用”?

要说有什么包包能跟夏天的气息一拍即合,那绝对非“草编包”莫属!由藤条、柳条等编制而成的田园风“小篮子”,已经成了夏日街头小姐姐们的包包首选。各大品牌都争相推出草编包系列,在原有的浪漫度假风之外,添加了更多时…

ABP入门系列(15)——创建微信公众号模块

1. 引言 现在的互联网已不在仅仅局限于网页应用,IOS、Android、平板、智能家居等平台正如火如荼的迅速发展,移动应用的需求也空前旺盛。所有的互联网公司都不想错过这一次移动浪潮,布局移动市场分一份移动红利。 的确,智能手机作…

spark 算子例子_Spark性能调优方法

公众号后台回复关键词:pyspark,获取本项目github地址。Spark程序可以快如闪电⚡️,也可以慢如蜗牛?。它的性能取决于用户使用它的方式。一般来说,如果有可能,用户应当尽可能多地使用SparkSQL以取得更好的性能。主要原…

ABP入门系列(16)——通过webapi与系统进行交互

1. 引言 上一节我们讲解了如何创建微信公众号模块,这一节我们就继续跟进,来讲一讲公众号模块如何与系统进行交互。 微信公众号模块作为一个独立的web模块部署,要想与现有的【任务清单】进行交互,我们要想明白以下几个问题&#x…

python嵩天第二版第五章_如何避免从入门到放弃——python小组学习复盘

2019年春节python学习行动复盘2019-02-09为了主攻python,没有参加心理学晨读。对心理学也不敢兴趣,怕耽误学习python的时间。那么没学习心理学的情况下,python学的怎么样?是否达到自己的预期?一、预期目标:…

ABP入门系列(17)——使用ABP集成的邮件系统发送邮件

1.Abp集成的邮件模块是如何实现的 ABP中对邮件的封装主要集成在Abp.Net.Mail和Abp.Net.Mail.Smtp命名空间下,相应源码在此。 分析可以看出主要由以下几个核心类组成: EmailSettingNames:静态常量类,主要定义了发送邮件需要的相关…

cdn转发防攻击_高防CDN和高防服务器的区别?

越来越多的网络攻击需要处理,而高防CDN和高防服务器是很好的选择,那么如何选择呢?我们就来分析一下关于这两者之间的选择。首先从价格上看的话,高防御CDN的价格相对高一些,防御上看,高防御CDN的防御效果也更…

ABP入门系列(18)—— 使用领域服务

1.引言 自上次更新有一个多月了,发现越往下写,越不知如何去写。特别是当遇到DDD中一些概念术语的时候,尤其迷惑。如果只是简单的去介绍如何去使用ABP,我只需参照官方文档,实现到任务清单Demo中去就可以了,…

mysql文件类型_MyCat教程:实现MySql主从复制

原文:http://iii75.cn/mwQhBW 作者:波波烤鸭历史相关文章Mycat入门教程单个mysql数据库在处理业务的时候肯定是有限的,这时我们扩展数据库的第一种方式就是对数据库做读写分离(主从复制),本文我们就先来介绍下怎么来实现mysql的主从复制操作。…

截屏当前界面_电脑屏幕怎么截取,常见的几种电脑截屏方法

随着科技的快速发展电脑已经逐渐渗入到我们的工作和生活中,我们需要使用电脑的地方也越来越多,电脑已经成为了一种新式的办公工具。今天小编不是向大家介绍电脑的应用,而是想要和大家分享一下关于电脑截图的几种方法。1、Print Screen SysRqP…