
Spring Cloud
文章平均质量分 77
Spring Cloud:构建微服务应用
秋分的秋刀鱼
奋斗不息,编码不止!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
服务启动失败 Caused by: java.lang.NoClassDefFoundError: com/google/common/collect/Lists
按照报错信息,发现是改报错原因是缺少包,但是我项目中使用的。,这个包是有的,但是看了一下,这个包,将缺少的包放到。原创 2023-06-28 22:54:10 · 2234 阅读 · 0 评论 -
HttpServletRequest、HttpServletResponse获取方式
HttpServletRequest和HttpServletResponse是Java Servlet API中的两个核心接口,用于处理HTTP请求和响应。在Servlet中,可以通过实现这两个接口来接收客户端发送的请求和发送响应给客户端。HttpServletRequest和HttpServletResponse对象可以通过Servlet API中的相应方法获取,例如通过Servlet的service方法或doGet、doPost等方法获取。原创 2023-06-19 18:00:00 · 3951 阅读 · 0 评论 -
lombok注解
【代码】lombok注解。原创 2023-06-15 08:30:00 · 302 阅读 · 0 评论 -
Spring常见的三种注入方式
Spring常见的三种注入方式包括构造器注入、Setter注入和Field注入。这些方式让开发者能够灵活地管理对象间的依赖关系,提高代码的可维护性和可读性。原创 2023-06-14 11:39:19 · 1800 阅读 · 0 评论 -
Spring Cloud Alibaba 2021.0.1.0之Nacos升级
spring-cloud-starter-alibaba-nacos-config 模块移除了 spring-cloud-starter-bootstrap 依赖,如果你想以旧版的方式使用,你需要手动加上该依赖,现在推荐使用 spring.config.import 方式引入配置。你可以手动通设置 spring.cloud.nacos.config.import-check.enabled=false 关闭它,但是不建议这么做,这个功能可以帮助你检查是否引入多余依赖。原创 2023-06-13 14:57:50 · 2493 阅读 · 0 评论 -
springboot项目启动指定对应环境的方法
Java多环境启动原创 2023-06-09 18:45:00 · 2489 阅读 · 0 评论 -
SpringBoot项目统一返回格式
微服务中,由于各业务团队之间的对接,各个团队之间需要统一返回格式,这样解析时不容易出现错误。因此,有必要统一返回格式。原创 2023-06-07 11:40:38 · 676 阅读 · 0 评论 -
Spring Cloud Alibaba 熔断(Sentinel)
1.1 概述在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过 RPC 相互调用,在 Spring Cloud 中可以用RestTemplate + LoadBalanceClient和 Feign 来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet 容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服原创 2022-04-23 23:00:00 · 2354 阅读 · 3 评论 -
Spring Cloud Alibaba 创建服务消费者(Feign)
1.1 概述Feign 是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用 Feign,只需要创建一个接口并注解。它具有可插拔的注解特性,可使用Feign注解和 JAX-RS 注解。Feign支持可插拔的编码器和解码器。Feign 默认集成了 Ribbon,Nacos 也很好的兼容了 Feign,默认实现了负载均衡的效果。Feign 采用的是基于接口的注解Feign 整合了 ribbon1.2 POM文件创建一个工程名为 hello-spring-cloud-alibaba原创 2022-04-23 22:00:00 · 810 阅读 · 1 评论 -
Spring Cloud Alibaba 创建服务消费者
1.1 概述服务消费者的创建与服务提供者大同小异,这里采用最原始的一种方式,即显示的使用 LoadBalanceClient 和 RestTemplate结合的方式来访问。1.2 POM文件创建一个工程名为 hello-spring-cloud-alibaba-nacos-consumer 的服务消费者项目,pom.xml 配置如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.原创 2022-04-23 20:30:00 · 419 阅读 · 1 评论 -
Spring Cloud Alibaba 创建服务提供者
1.1 概述通过一个简单的示例来感受一下如何将服务注册到 Nacos,其实和 Eureka 没有太大差别。1.2 POM文件创建一个工程名为hello-spring-cloud-alibaba-nacos-provider的服务提供者项目,pom.xml 配置如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://ww原创 2022-04-23 15:00:00 · 499 阅读 · 2 评论 -
Spring Cloud Alibaba 服务注册与发现(nacos)
1.1 简述由于SpringCloud之前采用的Eureka已经进入暂停维护阶段,所以我们采用阿里巴巴提供的Nacos组件,毕竟论流量中国是世界之最,十年的双十一经验,阿里的服务支持还是很靠谱的。Nacos 官网1.2 NacosNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务原创 2022-04-22 22:15:00 · 782 阅读 · 1 评论 -
Spring Cloud Alibaba 创建依赖管理项目
1.1 简述当前 Spring Cloud Alibaba 的 2.1.0.RELEASE 版本基于 Spring Cloud Greenwich 开发,Spring Cloud Alibaba 项目都是基于 Spring Cloud,而 Spring Cloud 项目又是基于Spring Boot进行开发,并且都是使用 Maven 做项目管理工具。在实际开发中,我们一般都会创建一个依赖管理项目作为Maven的 Parent 项目使用,这样做可以极大的方便我们对Jar包版本的统一管理。1.2 创建依赖管原创 2022-04-22 21:30:00 · 1446 阅读 · 1 评论 -
Spring Cloud Alibaba 简介
1.1 微服务介绍1.1.1 系统架构演变随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程:单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构, 当然还有悄然兴起的Service Mesh(服务网格化)。接下来我们就来了解一下每种系统架构的优缺点。1.1.1.1 单体应用架构 互联网早期,一般的网站应用流量较小,只需一个应用,将所有功能代码都部署在一起就可以,这原创 2022-04-22 16:18:04 · 44726 阅读 · 2 评论 -
【第九章】Spring Cloud Bus 消息总线
相比大家都记得消息队列的发布订阅模型,让所有为服务来订阅这个事件,当这个事件发生改变了,就可以通知所有微服务去更新它们的内存中的配置信息。这时Bus消息总线就能解决,你只需要在springcloud Config Server端发出refresh,就可以触发所有微服务更新了。原创 2022-03-28 11:15:59 · 555 阅读 · 0 评论 -
【第八章】Config分布式配置管理
1.1 简述官方文档对Spring Cloud Config的描述如下: Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持,使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同。 因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配原创 2022-03-28 10:43:40 · 1572 阅读 · 1 评论 -
【第七章】Zuul网关服务
1.1 概述在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现、服务消费、负载均衡、断路器、智能路由、配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统。一个简单的微服务系统如下图:注意:A服务和B服务是可以相互调用的,作图的时候忘记了在Spring Cloud微服务系统中,一种常见的负载均衡实现方式是,客户端的请求首先经过负载均衡(zuul、Ngnix),再到达服务网关(zuul集群),然后再到具体的服。服务统一注册到高可用的服务注册中心集群,服务的所有的配置文件由配原创 2022-03-26 17:33:51 · 563 阅读 · 1 评论 -
【第六章】Hystrix 请求缓存、请求合并、线程隔离
1.1 请求缓存当系统用户不断增长时,每个微服务需要承受的并发压力也越来越大,在分布式环境中,通常压力来自对依赖服务的调用,因为依赖服务的资源需要通过通信来实现,这样的依赖方式比起进程内的调用方式会引起一部分的性能损失。在高并发的场景下,Hystrix 提供了请求缓存的功能,我们可以方便的开启和使用请求缓存来优化系统,达到减轻高并发时的请求线程消耗、降低请求响应时间的效果。Hystrix的缓存,这个功能是有点鸡肋的,因为这个缓存是基于request的,为什么这么说呢?因为每次请求来之前都必须Hystr原创 2022-03-25 12:50:23 · 1308 阅读 · 1 评论 -
【第五章】Hystrix请求熔断与服务降级
1.1 概述在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用·(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的原创 2022-03-25 11:30:08 · 1374 阅读 · 1 评论 -
【第四章】详解Feign的实现原理
1.1 Feign概述这篇文章主要讲述如何通过Feign去消费服务,以及Feign的实现原理的解析。Feign是Netflix开发的声明式、模板化的HTTP客户端,Feign可以帮助我们更快捷、优雅地调用HTTP API。Feign是⼀个HTTP请求的轻量级客户端框架。通过 接口 + 注解的方式发起HTTP请求调用,面向接口编程,而不是像Java中通过封装HTTP请求报文的方式直接调用。服务消费方拿到服务提供方的接⼝,然后像调⽤本地接⼝⽅法⼀样去调⽤,实际发出的是远程的请求。让我们更加便捷和优雅的去调原创 2022-03-24 17:48:08 · 11824 阅读 · 2 评论 -
【第三章】Ribbon客户端负载均衡
1.1 Ribbon概述在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring Cloud有两种服务调用方式,一种是Ribbon+restTemplate,另一种是Feign,本文介绍使用Spring Cloud Ribbon在客户端负载均衡的调用服务。Ribbon 是一个客户端负载均衡器,可以简单的理解成类似于 nginx的负载均衡模块的功能,Feign默认集成了Ribbon。主流的LB方案可分成两类:一种是集中式LB,即在服务的消费方和提原创 2022-03-24 15:57:48 · 1196 阅读 · 1 评论 -
【第二章】服务的注册与发现Eureka
1.1 Spring Cloud简介本次教程使用的版本为Spring Boot版本2.0.3.RELEASE,Spring Cloud版本为Finchley.RELEASE。现目前最新的稳定版本为Hoxton,后续会带来相关教程。Spring Cloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明Spring Cloud是基于Spring Boot的,所以需要开发原创 2022-03-24 12:00:24 · 533 阅读 · 2 评论 -
【第一篇】Spring Cloud简介
1.1 概述Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。实际上,Spring Cloud是一个全家桶式的技术栈,分布式微服务架构的一站式解决方案,其里面包含了很多组件。本文先从其最核心的几个组件入手,来剖析一下其底层的工作原理。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。1.2 业务场景介绍先来给大家说一个业务场景,假设咱原创 2022-03-24 10:34:12 · 526 阅读 · 4 评论