Spring Cloud Alibaba

Spring Cloud Alibaba 实战(十一)

馋奶兔 提交于 2019-12-15 21:54:35
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 欢迎关注全是干货的技术公众号:JavaEdge > 本文主要内容: > - 如何实现用户认证与授权? > - 实现的三种方案,全部是通过画图的方式讲解.以及三种方案的对比 > - 最后根据方案改造Gateway和扩展Feign 0 相关源码 1 有状态 vs 无状态 1.1 有状态 也可使用粘性会话,即:对相同IP的请求,NGINX总 会转发到相同的Tomcat实例,这样就就无需图中的Session Store了。不过这种方式有很多缺点:比如用户断网重连,刷新页面,由于IP变了,NGINX会转发到其他Tomcat实例,而其他实例没有Session,于是就认为用户未登录。这让用户莫名其妙。 > 粘性会话不是本章重点,如果感兴趣可以百度一下(用得越来越少了) 1.2 无状态 这里讲的是解密Token直接拿到用户信息;事实上要看项目的具体实现;有时候Token里不一定带有用户信息;而是利用Token某个地方查询,才能获得用户信息。 1.3 对比小结 2 微服务认证方案 2.1 “处处安全” 推荐阅读 ◆ OAuth2实现单点登录SSO ◆ OAuth 2.0系列文章 代表实现 Spring Cloud Security : https://cloud . spring.io/spring-cloud-security

Spring Cloud Alibaba 实战(十)

倖福魔咒の 提交于 2019-12-13 01:16:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> > 本文主要内容是:为什么要使用网关,整合Gateway,Gateway核心学习:Route,Predicate,Filter,最后使用Gateway聚合微服务请求 先总结至此的架构 1 网关的价值 不使用网关行嘛? 各个请求直接打在各个微服务 小规模看起来还行,如果微服务很多呢?上百个呢?带来哪些问题呢 认证复杂,要对每个服务中每个接口做认证处理! 客户端难以重构,随着架构迭代,很可能要重新划分微服务,由于拆分是动态进行的,客户端如果直接就与微服务通信的话,重构就很实现咯,很可能重新拆分微服务后域名都变了,客户端就需要做大量的改动 其他微服务使用了浏览器不友好的协议,比如Thrift协议,直接访问的话没法的呀! 要解决以上这些问题,业界普遍做法就是构建一个网关,外部请求经过网关转发再打到相应的微服务,有以下好处 简化了登录认证,而不需在每个服务都认证一遍 对外暴露的永远是一个域名,不管内部的微服务如何拆分,域名都不会变,客户端重构的成本大大降低 2 Spring Cloud Gateway简介 ◆ 是Spring Cloud的网关(第二代) , 未来会取代Zuul(第一代) ◆ 基于Netty、 Reactor以及WebFlux构建 2.1 优点 ◆ 性能强劲 是第一代网关Zuul 1.x的1.6倍!性能PK

SpringCloudAlibaba+Dubbo+Nacos实现RPC调用流程

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-09 15:52:02
前言:Cloud项目基于Greewith.SR2、AlibabaCloud基于2.1.0.RELEASE、Nacos环境基于Docker镜像搭建;主要讲述RPC跨服务调用流程 一、新建三个项目子模块:生产者、消费者、对外API(生产者和消费者同时引入API、生产者实现API、消费者调用生产者服务) 二、引入项目依赖创建SpringBoot应用,生产者和消费者注册到Nacos(服务注册正常) 三、API创建接口 1、实现方式有生产者处理 2、生产者引入当前API-pom文件依赖,编写实现方法 四、消费者调用生产者服务 五、调用流程,调用前保证服务注册成功,消费者部分业务需要使用到生产者的业务,实现跨服务调用,异常处理部分需要自定义来处理 来源: oschina 链接: https://my.oschina.net/wubiaowpBlogShare/blog/3139231

Nacos搭建流程

廉价感情. 提交于 2019-12-07 08:13:28
要使用nacos,我们首先得下载它的服务端,下载地址 https://github.com/alibaba/nacos/releases 根据你的Spring Cloud Alibaba版本来下载需要使用的版本 我这里是tar.gz的,下载完成后,解压,进入bin目录 执行sh startup.sh -m standalone 通过docker安装nacos服务端 docker pull nacos/nacos-server:1.1.3 docker run -d --name nacos -p 8848:8848 --env MODE=standalone nacos/nacos-server:1.1.3 然后通过浏览器访问 http://127.0.0.1:8848/nacos/ 此时界面如图所示 输入账号nacos,密码nacos后,进入管理界面 搭建一个Spring Cloud Alibaba项目,在父项目中,Springboot版本2.1.7,SpringCloud版本Greenwich.SR2,SpringCloudAlibaba版本2.1.1.RELEASE <spring-cloud.version> Greenwich.SR2 </spring-cloud.version> <spring-cloud-alibaba.version> 2.1.1.RELEASE

Nacos搭建流程

非 Y 不嫁゛ 提交于 2019-12-06 16:52:07
要使用nacos,我们首先得下载它的服务端,下载地址 https://github.com/alibaba/nacos/releases 根据你的Spring Cloud Alibaba版本来下载需要使用的版本 我这里是tar.gz的,下载完成后,解压,进入bin目录 执行sh startup.sh -m standalone 然后通过浏览器访问 http://127.0.0.1:8848/nacos/ 此时界面如图所示 输入账号nacos,密码nacos后,进入管理界面 搭建一个Spring Cloud Alibaba项目,在父项目中,Springboot版本2.1.7,SpringCloud版本Greenwich.SR2,SpringCloudAlibaba版本2.1.1.RELEASE <spring-cloud.version> Greenwich.SR2 </spring-cloud.version> <spring-cloud-alibaba.version> 2.1.1.RELEASE </spring-cloud-alibaba.version> <dependencyManagement> <dependencies> <dependency> <groupId> org.springframework.cloud </groupId> <artifactId>

SpringCloudAlibaba微服务框架搭建

吃可爱长大的小学妹 提交于 2019-12-06 02:16:06
框架搭建说明 1 框架构架图 2 后台框架具体说明 后端框架:springboot2.1.8+springmvc+mybatisPlus3.2 开发语言:java 数据库:mysql5.7 缓存数据库:redis 权限框架:shiro 网关:Spring Gateway 注册中心: 阿里巴巴 nacos eureka(已经停止更新) 熔断器:Sentinel 消息队列:RocketMQ 全文日志分析:ElasticSearch+Logstash+Kibana 数据源管理:druid 所用工具:lombok 开发工具:IntelliJ IDEA 数据设计工具:Power Designer 项目版本控制工具:git 文档管理工具:svn 3.模块搭建具体说明 准备nacos 创建父模块 创建普通子模块 集成feign和sentinel和端口检测 集成网关 集成Elasticsearch 集成RocketMQ 来源: https://my.oschina.net/u/4108086/blog/3135311

Jenkins集群下的pipeline实战

无人久伴 提交于 2019-12-04 17:40:50
关于Jenkins集群 在 《快速搭建Jenkins集群》 一文中,我们借助docker快速搭建了Jenkins集群,今天就在这个集群环境中创建pipeline任务,体验Jenkins集群下的并行任务; 环境信息 整个集群环境一共有三台电脑,信息如下: | 主机名 | IP地址 | 作用 | |--|--|--| | master | 192.168.133.131 | Jenkins集群的master节点,提供web服务 | | agent1 | 192.168.133.132 | Jenkins集群的一号工作接节点,标签是<font color="blue">maven</font> | | agent2 | 192.168.133.133 | Jenkins集群的二号工作接节点,标签是<font color="blue">gradle</font> | 实战内容 本次实战要体验Jenkins集群同时执行两个任务,都是编译构建GitHub上的热门开源项目: 在agent1上编译和构建spring-cloud-alibaba,再通过scp命令将构建结果传输到master电脑的<font color="blue">/usr/local/build_result</font>目录下; 在agent2编译和构建spring-framework

Spring Cloud Alibaba迁移指南2:一行代码从Hystrix迁移到Sentinel

∥☆過路亽.° 提交于 2019-12-02 19:22:09
本文对Hystrix、Resilience4j、Sentinel进行对比,并探讨如何使用一行代码将Hystrix迁移到Sentinel。 作者:洛夜,校对:周立 在本博客首发,欢迎转载。 前段时间,Netflix宣布Hystrix进入维护模式,详见 Hystrix停止开发,我们该何去何从? ,而Spring Cloud亦宣布Spring Cloud Netflix进入维护状态,后续不再进行更新已成为事实。作为开发者的我们,如何使用极简的方式替换Hystrix成为首要解决的问题。 Hystrix 宣布停止维护 后,社区推荐了 Resilience4j ,而业界还有Alibaba Sentinel可供选择——3款产品各有优势,具体的功能差异参考下表(该表来自 Sentinel Wiki : Sentinel Hystrix resilience4j 隔离策略 信号量隔离(并发线程数限流) 线程池隔离/信号量隔离 信号量隔离 熔断降级策略 基于响应时间、异常比率、异常数 基于异常比率 基于异常比率、响应时间 实时统计实现 滑动窗口(LeapArray) 滑动窗口(基于 RxJava) Ring Bit Buffer 动态规则配置 支持多种数据源 支持多种数据源 有限支持 扩展性 多个扩展点 插件的形式 接口的形式 基于注解的支持 支持 支持 支持 限流 基于 QPS

Spring Cloud Alibaba使用Sentinel限流_四

﹥>﹥吖頭↗ 提交于 2019-12-02 19:21:56
阿里的Sentinel 是面向分布式服务架构的轻量级流量控制产品,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助您保护服务的稳定性。这里我们使用Spring Cloud Alibaba集成Sentinel。 在原来的项目中引入依赖,版本好使用的是>0.2.1.RELEASE,在dependencyManagement控制。 因为spring-cloud-alibaba还没有加入spring-cloud的版本控制,所以还是要自己引入的 然后实现起来就比较简单了,这里加入一个注解com.alibaba.csp.sentinel.annotation.SentinelResource 然后还需要添加一个配置 然后我们使用Sentinel控制台来配置限流规则 我们简单一点直接下载 Sentinel控制台 ,http://edas-public.oss-cn-hangzhou.aliyuncs.com/install_package/demo/sentinel-dashboard.jar 然后执行java -jar sentinel-dashboard.jar就可以啦 然后我们在本地的8080端口,打开 然后我配置一个限流 然后我们访问一下这个接口,因为配置的一秒内只会处理一个,所以第二个被拦截啦。 git:https://github.com

Spring Cloud Alibaba介绍

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 05:00:17
最近赶项目,现在才有时间写写博客~今天来聊聊Spring Cloud Alibaba,简称"SCA"。它是Spring Cloud规范的一套实现,为分布式应用程序开发提供一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用Spring Cloud开发应用程序。SCA中的组件,基本都是由阿里内部中间件转化而来,经历过多次双十一的考验,这也就意味着,SCA有着充足的场景,验证了它对于高并发的抗压能力。 SCA中文文档: https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md SCA源码: https://github.com/alibaba/spring-cloud-alibaba 当前SCA版本所支持的功能列表: 服务限流降级 :默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。 服务注册与发现 :适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。 分布式配置管理 :支持分布式系统中的外部化配置