Spring Cloud Bus Kafka + Config 刷新集群配置 - Spring Cloud

用Spring cloud config搭建了配置中心后,当修改配置后,可以通过直接发送post请求到[/actuator/refresh]进行刷新配置,无需重启服务新配置即可生效。 而当我们的服务部署了集群后,就需要对每个节点挨个发送请求进行刷新,影响维护效率,消息总线 Spring Cloud Bus 可以帮助解决这个问题。 前置条件: a. 启动Spring cloud eureka server: http://localhost:8888; b. 启动Spring cloud config server; c. 启动kafka,端口:9092。 1、首先创建springboot工程,pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache...
阅读全文

Spring Cloud Bus Kafka 发送和接受消息 - Spring Cloud

在微服务架构的系统中,我们通常会使用轻量级的消息代理来构建一个共用的消息主题让系统中所有微服务实例都连接上来,由于该主题中产生的消息会被所有实例监听和消费,所以我们称它为消息总线。在总线上的各个实例都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息, 例如配置信息的变更或者其他 一 些管理操作等。 由于消息总线在微服务架构系统中被广泛使用,所以它同配置中心一样,几乎是微服务架构中的必备组件。 Spring Cloud 作为微服务架构综合性的解决方案,对此自然也有自己的实现,这就是“Spring Cloud Bus”。 通过使用Spring Cloud Bus,可以非常容易地搭建起消息总线,同时实现了一些消息总线中的常用功能,比如,配合Spring Cloud Config 实现微服务应用配置信息的动态更新等。 目前Spring Cloud Bus提供了对RabbitMQ和Kafka的支持,下面以Kafka为例,介绍一下如何发送和接收消息(基于spring boot 2.0.4.RELEASE)。 1、首先创建springboot工程,并引入依赖: <dependency>...
阅读全文

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...
阅读全文