简介 Zuul是Spring Cloud提供的api网关和过滤组件,它提供如下功能: 认证 过滤 压力测试 Canary测试 动态路由 服务迁移 负载均衡 安全 静态请求处理 动态流量管理 在本教程中,我们将用zuul,把web端的请求/product转发到对应的产品服务上,并且定义一个pre过滤器来验证是否经过了zuul的转发。 基础环境 JDK 1.8 Maven 3.3.9 IntelliJ 2018.1 Git 项目源码 Gitee码云 创建Zuul服务 在IntelliJ中创建一个maven项目: cn.…

2020年10月29日 0条评论 70点热度 阅读全文

作为Spring Boot和微服务架构的新手,尝试使用Spring Boot Cloud Starter构建一个简单的应用程序。 我使用spring-cloud-config-server来外部化配置文件(.properties) 我在这里有了Spring Cloud配置,该配置从git存储库和另一个微服务(product-microservice)引入.properties文件,试图从spring-cloud-config-server微服务到达其配置。 一切正常,除了server.port属性会抛出ClassC…

2020年10月28日 0条评论 49点热度 阅读全文

具体需求: 使用spring cloud gateway作为网关,打印每个请求的执行时长 具体实现: 自定义GlobalFilter,当请求进入时记录开始时间,当请求结束时,减去开始时间即为具体的执行时长 package com.winture.gateway.filter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.cloud.gat…

2020年10月26日 0条评论 64点热度 阅读全文

我已经为Cloud Gateway实现了自定义过滤器工厂。但是,我无法弄清楚编写单元测试用例的方式。在研究默认的Filter Factories测试用例时,我发现大多数工厂测试类都扩展了BaseWebClientTests和测试包中的其他类。 我的问题是我应该将那些中间测试类复制粘贴到我的本地测试包中吗?这里的社区建议是什么? 解决方案如下: 这是我的结果,供您参考 class CustomGatewayFilterFactoryTest { @Autowired private CustomGatewayFilt…

2020年10月24日 0条评论 63点热度 阅读全文

客户端负载均衡器:Ribbon Ribbon是一个客户端负载均衡器,可以让你对HTTP和TCP客户端的行为进行大量控制,Feign已经使用了Ribbon,因此,如果你使用@FeignClient,此部分也适用。 Ribbon中的一个核心概念是命名客户端,每个负载均衡器都是一组组件的一部分,这些组件一起工作以按需联系远程服务器,并且该集合具有你作为应用程序开发人员提供的名称(例如,通过使用@FeignClient注解)。根据需要,Spring Cloud通过使用RibbonClientConfiguration为每个…

2020年10月21日 0条评论 58点热度 阅读全文

我发现了excellent example如何读取/更新GCP存储桶中的现有文件: @RestController public class WebController { @Value("gs://${gcs-resource-test-bucket}/my-file.txt") private Resource gcsFile; @RequestMapping(value = "/", method = RequestMethod.GET) public String readGcsFile() throws …

2020年10月20日 0条评论 63点热度 阅读全文

写在前面 要出发周边游(以下简称要出发)是国内知名的主打「周边游」的在线旅行网站,为了降低公司内部各个业务模块的耦合度,提高开发、交付及运维效率,我们在 2017 年就基于 Spring Cloud 完成了公司内部业务微服务化的改造,并在 2019 年实现了 Spring Cloud 至 UK8S 平台的迁移。  本文从要出发的业务架构、Prometheus JVM 监控、基于 HPA 的峰值弹性伸缩、基于 Elastic 的APM链路跟踪及 Istio 服务治理等方面介绍了我们基于UK8S的 Sprin…

2020年10月14日 0条评论 55点热度 阅读全文

基本使用 Spring security需要的基本依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId…

2020年10月13日 0条评论 90点热度 阅读全文

之前写过一篇关于配置中心对配置内容加密解密的介绍:《Spring Cloud构建微服务架构:分布式配置中心(加密解密)》。在这篇文章中,存在一个问题:当被加密内容包含一些诸如=、+这些特殊字符的时候,使用上篇文章中提到的类似这样的命令curl localhost:7001/encrypt -d去加密和解密的时候,会发现特殊字符丢失的情况。 比如下面这样的情况: $ curl localhost:7001/encrypt -d eF34+5edo= a34c76c4ddab706fbcae0848639a8e0ed9…

2020年10月11日 0条评论 69点热度 阅读全文

SpringCloud(第 027 篇)集成异构微服务系统到 SpringCloud 生态圈中(比如集成 nodejs 微服务) - 一、大致介绍 1、在一些稍微复杂点系统中,往往都不是单一代码写的服务,而恰恰相反集成了各种语言写的系统,并且我们还要很好的解耦合集成到自己的系统中; 2、出于上述现状,SpringCloud 生态圈中给我们提供了很好的插件式服务,利用 sidecar 我们也可以轻松方便的集成异构系统到我们自己的系统来; 3、而本章节目的就是为了解决轻松简便的集成异构系统到自己的微服务系统中来的; 二…

2020年10月7日 0条评论 51点热度 阅读全文