Spring Cloud Security Oauth2 Client - Spring Cloud

利用Spring Cloud Security Oauth2如何对接第三方的认证和授权服务?以集成Github SSO为例: 1、注册github帐号并申请一个Oauth应用。 打开地址:https://github.com/settings/developers,点击按钮“Register a new application”,按要求填写信息即可。申请成功后会有“Client ID”和“Client Secret”。 注意:申请时填写的“Authorization callback URL”(http://localhost:8080/login)需要与security.oauth2.sso.loginPath(默认为: /login)对应。 2、添加spring-cloud-starter-oauth2依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-oauth2</artifactId...
阅读全文

Spring Cloud Security 权限控制 - Spring Cloud

Spring Security 为基于Java EE的企业软件应用提供了全面的安全服务,而Spring cloud security可以极大的简化我们的配置,一个最简单的工程只需要在Spring boot工程中依赖spring-cloud-starter-security即可。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactId> </dependency> 1、默认用户名为user,密码在启动日志中查找如下内容: Using default security password: 05be6203-6bfc-4f80-8b26-187af9c8e21d 2、如果要自定义用户名和密码,只需修改配置文件application.yml security: user: name: admin password: 12345...
阅读全文

Spring Cloud Hystrix Dashboard - Spring Cloud

“Spring Cloud Hystrix 断路器” Hystrix可以收集每个断路器(以HystrixCommand注解的)的运行状态, 由 Hystrix Dashboard 以界面化的方式进行展示。 1、需要的依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframewo...
阅读全文

Spring Cloud Feign对Hystrix断路器的配置 - Spring Cloud

前面分别讲过了 “Spring Cloud Feign 声明式REST客户端” 和 “Spring Cloud Hystrix 断路器”,其实在Feign中已经集成了对Hystrix的配置。 基于之前的Feign工程,做如下改造: application.yml添加配置: feign: hystrix: enabled: true 修改Feign client import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @FeignClient(value = "${provider.hostname}", fallback = HelloClient.HelloClie...
阅读全文

Spring Cloud Hystrix 断路器 - Spring Cloud

Hystrix是一个断路器(circuit breaker)。在微服务体系中,通常会有多层的链式的服务调用,如果在调用链中某个环节故障,会导致该请求阻塞,进而导致调用链级联故障,最终影响整个微服务体系的使用,即“雪崩效应”。为了解决这个问题,Netflix推出了Hystrix,当请求某个服务发生故障的频率达到一个阈值时(Hystrix默认是5秒钟内20次故障),会自动断路并返回自定义的静态数据。 如何使用Spring Cloud Hystrix? 在pom.xml加入spring-cloud-starter-hystrix依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> 修改启动类,加上注解@EnableCircuitBreaker。 import com.netflix.hystrix.con...
阅读全文

Spring Cloud Zuul:服务网关之路由服务 - Spring Cloud

路由是微服务架构中不可或缺的一部分。Zuul是由Netflix开源的,提供了基于JVM的路由服务和服务端侧负载均衡服务。(官方文档:https://cloud.spring.io/spring-cloud-static/Edgware.RELEASE/single/spring-cloud.html#_router_and_filter_zuul) 1. 如何使用Spring Cloud Zuul? 1.1 pom.xml加入spring-cloud-starter-zuul依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId></dependency> 1.2 application.yml加入zuul配置 假设现在已有一个用户服务:http://localhost:8081/user/list。 zuul: routes: user: ...
阅读全文

Spring Cloud Feign 声明式REST客户端 - Spring Cloud

Feign是一个声明式Web服务客户端,使得调用Rest服务更简单。使用Feign只需要写一个接口加上一些注解就可以。下面主要介绍如何和Eureka一起使用。 1、假设我们已经启动了Eureka server(http://localhost:8671) 和 服务提供者(提供了Rest服务:http://localhost:8888/hello/{name}),并且服务提供者已经在Eureka server上注册。 2、新建spring boot工程,加入Feign和Eureka客户端依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <...
阅读全文

Spring Cloud Ribbon 客户端侧负载均衡器 - Spring Cloud

Ribbon是一个客户端侧负载均衡器(Client Side Load Balancer)。每个Ribbon客户端都会从服务注册中心(Eureka)获取服务清单并缓存在客户端,同时通过心跳机制去维护服务清单,然后执行负载均衡策略去调用不同服务器上的服务,谓之客户端侧负载均衡,因为这个负载均衡是发生在客户端侧的,而服务端侧负载均衡,例如Nginx,负载均衡是发生在服务端的,客户端发起请求,Nginx负责维护服务清单,并执行负载均衡策略。 Ribbon用Eureka作为注册中心,ribbon需要作为Eureka client注册在Eureka server上。 添加Ribbon和Eureka客户端依赖。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId></dependency><dependency> <groupId>o...
阅读全文

Spring Cloud Eureka Server 高可用集群配置 - Spring Cloud

Eureka server是没有后端存储的,注册表中的服务实例通过发送心跳包来保持更新(因此可以在内存中完成)。 1、独立模式的配置(application.yml) server: port: 8761 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 2、集群部署模式(application.yml) 如果要做集群部署,只需要定义不同的配置文件,通过运行不同配置文件的实例,让各个server之间互相注册。 --- server: port: 8761 spring: profiles: peer1 eureka: instance: hostname: localhost client: ...
阅读全文

Spring Cloud Config/Eureka 构建分布式配置中心 - Spring Cloud

前文提到了“Spring cloud config”和“Eureka”的使用。此时只需要针对config server和config client做一些改造,通过Eureka来实现集群服务。 1、改造Config Server,将其注册在Eureka server上。pom.xml加入依赖eureka client依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId></dependency> 修改application.yml,设置应用名并指定注册中心。 eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ spring: application: name: config-server 在Spring boot启动类添...
阅读全文