
SpringCloud
文章平均质量分 92
JackieZhengChina
70'码农,CSDN博客专家,信息系统项目管理师,工商管理硕士,CZB政采评审专家,中国采购与招标专家库专家,自驾爱好者,近20年教育类产品研发及管理经历,曾任教育科技公司联合创始人兼产品VP、科技公司产研VP。
职业标签:产品、项目、技术、运营、管理、战略。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
开发效率提升3倍!动态脚本引擎QLExpress,实现各种复杂的业务规则
你可以在脚本里定义函数,实现复杂逻辑。比如写个计算运费的函数:" +" +" }" +"};" +// 计算2.5kg的运费System.out.println("运费:" + result);// 输出18。转载 2025-07-17 11:53:56 · 68 阅读 · 0 评论 -
搭建SpringBoot脚手架
事情是这样的:我们生产环境用的kafka-server是0.11版本的,但我们的客户端用的是3.0.4版本,我的springboot用的是2.7.x版本,从上边表中看到springboot的版本和kafka-client的版本是适配的,但kafka-client的版本和server的版本是不适配的。我们项目常常依赖中间件,比如mysql,kafka,redis等,如果要单元测试,我们通常的做法是在dev环境部署一套项目中依赖的中间件,非常麻烦,而且数据还不容易隔离,所以内存版的中间件就是来解决这个问题的。原创 2024-08-12 08:44:12 · 1292 阅读 · 0 评论 -
Feign第一次调用为什么会很慢
通过预初始化、缓存DNS解析结果、优化连接池配置、调整超时设置、使用异步调用、开启Feign日志和GZIP压缩等策略,我们可以有效地提高Feign首次调用的性能,从而提升整个微服务架构的响应速度和稳定性。其实这个问题听起来似乎没什么特别的,但是要是深究起来还是挺复杂的,因为我们可以想一下feign做一次rpc调用要经历哪些事情,首先就是feign是跟eureka这种微服务注册中心是有关系的,毕竟你要调用一个服务,那肯定得知道目标服务都部署在哪些机器上,也就是有哪些服务实例,对不对,否则怎么调用啊?原创 2024-08-10 10:19:14 · 963 阅读 · 0 评论 -
支撑每秒 600 万订单无压力,SpringBoot + Disruptor 太猛了!
Disruptor 是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于 Disruptor 开发的系统单线程能支撑每秒 600 万订单,2010 年在 QCon 演讲后,获得了业界关注。Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟。原创 2024-06-18 09:01:24 · 406 阅读 · 0 评论 -
SpringCloud微服务架构(eureka、nacos、ribbon、feign、gateway等组件的详细介绍和使用)
单体架构特点:简单方便,高度耦合,扩展性差,合适小型项目。如:学生管理系统。分布式架构特点:松耦合,扩展性好,但架构复杂,难道大,适合大型互联网项目。如:京东、淘宝微服务:一种良好的分布式架构方案。优点:拆分粒度更小、服务更独立、耦合更低缺点:架构非常复杂,运维、监控、部署难道更高微服务需要根据业务模块拆分,做到单一职责,不要重复开发相同业务。微服务可以将业务暴露为接口,供其他微服务使用。不同微服务都应该有自己独立的数据库。原创 2024-06-11 20:18:11 · 3270 阅读 · 0 评论 -
微服务框架
单体架构特点?简单方便,高度耦合,扩展性差,适合小型项目。例如: 学生管理系统分布式架构特点?松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案优点: 拆分粒度更小、服务更独立、耦合度更低缺点:架构非常复杂,运维、监控、部署难度提高方式一是配置文件,feign.client.config.xxx.loggerLevel如果xxx是default则代表全局如果xxx是服务名称,例如userservice则代表某服务。原创 2024-06-11 20:10:30 · 1680 阅读 · 0 评论 -
SpringCloud入门教程
①Feign:声明式 REST 客户端–Feign 通过使用 JAX-RS(就是一种使用注解来实现 RESTful 的技术)或 SpringMVC 注解的装饰方式,生成接口的动态实现。旨在自动封装服务调用客户端,减少代码开发量微服务中调用接口常见方式:Ⅰ.通过http方式进行直接调用:即通过http+port的方式调用,可以使用okhttp、httpclient等进行接口的调用与解析,需要关注接口数据流、接口的数据转换等。原创 2024-06-11 08:09:19 · 977 阅读 · 0 评论 -
SpringBoot参数校验@Valid 和 @Validated注解使用详解
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。JSR-303实现与 Hibernate ORM 没有任何关系。JSR 303 用于对 Java Bean 中的字段的值进行验证。Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。转载 2024-05-28 17:26:51 · 1080 阅读 · 0 评论 -
[转]深入浅出讲解Spring IOC和DI的区别
很多人都会把ioc和di说成同一个东西,其实IOC和DI虽然在概念上可以笼统地视为同一事物,但其本质上存在区别。控制反转)从容器的角度描述,而DI(Dependency Injection,依赖注入)则从应用程序的角度描述。换言之,IOC是依赖倒置原则的设计思想,而DI则是该原则的具体实现方式。因此,我们希望能够更加严谨地区分这两个概念,以更好地理解和应用它们。转载 2024-04-10 10:44:56 · 71 阅读 · 0 评论 -
Spring 常见面试题
Spring是一款开源的轻量级Java开发框架,旨在提高开发人员的开发效率以及系统的可维护性。我们一般说Spring框架指的都是SpringFramework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发,比如说Spring支持IoC(InverseofControl控制反转)和AOP(Aspect-OrientedProgramming语言的流行通常需要一个杀手级的应用,Spring就是Java生态的一个杀手级的应用框架。和。......转载 2022-07-29 10:45:47 · 1561 阅读 · 0 评论 -
Caffine Cache 及在SpringBoot中的使用
这一篇我们将要谈到一个新的本地缓存框架它也是站在巨人的肩膀上-GuavaCache,借着他的思想优化了算法发展而来。本篇博文主要介绍CaffineCache的使用方式,以及CaffineCache在SpringBoot中的使用。转载 2022-07-19 09:17:37 · 571 阅读 · 0 评论 -
什么是Maven快照(SNAPSHOT)
构建的时候会先在本地仓库中查找是否已经有了这个依赖库,若是没有的话才会去远程仓库中去拉取。假设项目中现在依赖"abc-1.0",在第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,之后再次构建都不会去访问远程仓库了。如果远程仓库中代码进行了修改,但版本号依旧叫"abc-1.0",那么此依赖没法获得最新更新。只有版本号更新后(如"abc-1.1")才能拉取到最新代码。每次构建时,会优先去远程仓库中查看是否有最新的"abc-1.0-SNAPSHOT.jar",若是有则下载下来使用。即便本地仓库中已经有了"转载 2022-06-05 15:07:19 · 2493 阅读 · 0 评论 -
SpringCloud必会知识点大全
微服务的特点: 常见的远程调用方式有以下几种:2.1.认识RPCRPC调用流程图:2.2.认识HTTP2.3.如何选择?3.1.简介Spring Cloud是Spring旗下的项目之一,官网地址:点我进入Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中。Spring Cloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。其主要涉及的组件包括:Netflix以上只是其中一部分,架构图: 3.2.转载 2022-06-05 09:15:34 · 1459 阅读 · 1 评论 -
微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。CAP理论是分布式架构中重要理论关于P的理解,我觉得是在整个系统中某个部分,挂掉了,或者宕机了,并不影响整个系统的运作或者说使用,而可用性转载 2022-06-03 21:05:42 · 304 阅读 · 0 评论 -
源码深度剖析Eureka与Ribbon服务发现原理
本文基于 spring cloud dalston,同时文章较长,请选择舒服姿势进行阅读。Eureka 与 Ribbon 都是 Netflix 提供的微服务组件,分别用于服务注册与发现、负载均衡。同时,这两者均属于 spring cloud netflix 体系,和 spring cloud 无缝集成,也正由于此被大家所熟知。Eureka 本身是服务注册发现组件,实现了完整的 Service Registry 和 Service Discovery。Ribbon 则是一款负载均衡组件,那它和服务发现又有什么转载 2022-06-03 19:33:43 · 384 阅读 · 0 评论 -
zuul集成ribbon完成服务通信和负载均衡
目录Zuul2服务通信超时相关默认超时配置自定义超时配置负载均衡描述:zuul2通过Ribbon完成客户端负载均衡以及与服务器群集进行通信。zuul2的通信是集成Ribbon实现的,在Origin中集成Ribbon基本配置(例如IClientConfig)以完成功能接入,在loadbanace层将ribbion与netty结合用来抉择下层客户端服务器。zuul2集成ribbon core结构图:zuul2集成 ribbon loadbalanacer结构图: 可以在ribbon源码中找到相应配置信息:转载 2022-06-03 19:30:07 · 519 阅读 · 0 评论 -
[转]高并发架构设计之--「服务降级」、「服务限流」与「服务熔断」
目录服务降级1 、简介2 、使用场景3 、核心设计3.1 分布式开关3.2 自动降级分类3.3 配置中心3.4 处理策略 3.5 降级分类3.6 服务降级要考虑的问题4 、高级特性4.1 分级降级4.2 降级权值5 、总结与展望服务限流一、为什么要做服务限流设计?二、服务限流应该怎么做?三、服务限流的注意事项服务熔断服务熔断和服务降级比较熔断器雪崩效应熔断器(CircuitBreaker)HystrixHystrix特性1.断路器机制2.Fallback3.资源隔离Hystrix能做什么?Hystrix设计转载 2022-06-03 16:23:06 · 1238 阅读 · 0 评论 -
Hystrix 原理
Hystrix是Netflix开源库,这是一个针对分布式系统的延迟和容错库。Hystrix 供分布式系统使用,提供延迟和容错功能,隔离远程系统、访问和第三方程序库的访问点,防止级联失败,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。Netflix称,在分布式环境中,不可避免会造成一些服务的失败。Hystrix 库旨在控制分布式服务中提供更大容限和服务失败之间的相互关系。Hystrix 通过隔离访问远程系统、服务和第三方库的点,阻止级联故障,从而使复杂的分布式系统更具弹性。Hystrix是一个用于处转载 2022-06-03 14:35:21 · 318 阅读 · 0 评论 -
[转]Eureka工作原理
上节内容为大家介绍了,注册中心 Eureka 产品的使用,以及如何利用 Eureka 搭建单台和集群的注册中心。这节课我们来继续学习 Eureka,了解它的相关概念、工作流程机制等。Eureka 作为 Spring Cloud 体系中最核心、默认的注册中心组件,研究它的运行机制,有助于我们在工作中更好地使用它。回到上节的服务注册调用示意图,服务提供者和服务的消费者,本质上也是 Eureka Client 角色。整体上可以分为两个主体:Eureka Server 和 Eureka Client。Eureka转载 2022-06-03 09:40:26 · 304 阅读 · 0 评论 -
SpringCloud与Dubbo的比较
Dubbo一、dubbo简介Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。现已发展成为Apache的顶级孵化开源项目,详见官网:http://dubbo.apache.org/en-us/二、dubbo组织架构图官网的dubbo组织架构.转载 2022-05-30 08:31:38 · 603 阅读 · 0 评论