SpringCloud
文章平均质量分 84
java架构
Volunteer Technology
对java技术以及python比较熟悉,在精进的道路上,毕业至今!
展开
-
Spring设计模式总结-终章
spring相关设计模式,终章,模板模式,适配器模式等等,归纳总结不到位,望指出原创 2022-09-25 01:28:33 · 514 阅读 · 0 评论 -
Spring设计模式总结
spring涉及的设计模式汇总总结,第一版本,工厂,单例,适配器等等原创 2022-09-24 23:59:16 · 562 阅读 · 0 评论 -
各位,来,手把手带你,手写starter
一、简介SpringBoot 最强大的功能就是把我们常用的场景抽取成了一个个starter(场景启动器),我们通过引入springboot 为我提供的这些场景启动器,我们再进行少量的配置就能使用相应的功能。即使是这样,springboot也不能囊括我们所有的使用场景,往往我们需要自定义starter,来简化我们对springboot的使用。二、如何自定义starter1.实例如何编写自动配置 ?我们参照@WebMvcAutoConfiguration为例,我们看看们需要准备哪些东西,下面是W原创 2021-08-27 15:23:50 · 196 阅读 · 0 评论 -
Eureka全局配置
目录Eureka Instance实例信息配置Eureka Client客户端特性配置Eureka Server注册中心端配置Eureka Server注册中心仪表盘配置Eureka Instance实例信息配置Eureka Instance的配置信息全部保存在org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean配置类里,实际上它是com.netflix.appinfo.EurekaInstanceConf原创 2021-06-30 11:43:17 · 194 阅读 · 2 评论 -
SpringCloud配置之:Turbine聚合监控
Turbine聚合监控一、搭建监控模块1. 创建监控模块创建hystrix-monitor模块,使用Turbine聚合监控多个Hystrix dashboard功能,2. 引入Turbine聚合监控起步依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001...原创 2021-06-30 11:37:26 · 181 阅读 · 0 评论 -
SpringCloud之GateWay中断言以及过滤在yml的配置演示
#### 1、AddRequestHeader GatewayFilter Factory为原始请求添加Header,配置示例:```ymlspring: cloud: gateway: routes: - id: add_request_header_route uri: https://example.org filters: - AddRequestHeader=X-Request-Foo, Bar``...原创 2021-06-20 00:33:26 · 1371 阅读 · 0 评论 -
SpringCloud之GateWay过滤器重点讲解
网关描述: 网关旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。在微服务架构中,不同的微服务可以有不同的网络地址,各个微服务之间通过互相调用完成用户请求,客户端可能通过调用N个微服务的接口完成一个用户请求。存在的问题: 客户端多次请求不同的微服务,增加客户端的复杂性 认证复杂,每个服务都要进行认证 http请求不同服务次数增加,性能不高网关就是系统的入口,封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这...原创 2021-06-19 23:59:29 · 1974 阅读 · 0 评论 -
SpringSecurity基于微服务的案例-公共Base实现
一.架构相关基础功能基类1.1全局异常处理import com.atguigu.utils.utils.R;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.b原创 2021-06-17 15:27:55 · 165 阅读 · 1 评论 -
解决粘包/半包问题
什么是TCP粘包半包?改造程序,客户端发送100遍消息假设客户端分别发送了两个数据包D1和D2给服务端,由于服务端一次读取到的字节数是不确定的,故可能存在以下4种情况。(1)服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包;(2)服务端一次接收到了两个数据包,D1和D2粘合在一起,被称为TCP粘包;(3)服务端分两次读取到了两个数据包,第一次读取到了完整的D1包和D2包的部分内容,第二次读取到了D2包的剩余内容,这被称为TCP拆包;(4)服务端分两次读取到.原创 2020-12-23 22:17:34 · 483 阅读 · 0 评论 -
选择合适的内置通信传输模式
NIOio.netty.channel.socket.nio使用java.nio.channels包作为基础——基于选择器的方式Epollio.netty.channel.epoll由JNI驱动的epoll()和非阻塞IO。这个传输支持只有在Linux上可用的多种特性,如SO_REUSEPORT,比NIO传输更快,而且是完全非阻塞的。将NioEventLoopGroup替换为EpollEventLoopGroup,并且将NioServerSocketChannel.class...原创 2020-12-23 22:15:28 · 149 阅读 · 0 评论 -
SpringCloud之单体Springboot内嵌Tomcat核心原理分析
内嵌的Tomcat流程解析一.@Import({ ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.classBeanPostProcessorsRegistrar是一个静态内部类,继承以及实现关系如下图:简而言之,ImportBeanDefinitionRegistrar昰进行导入预定义bean注册的...原创 2020-04-24 15:36:25 · 579 阅读 · 0 评论 -
SpringCloud之GateWay的源码基本类的分析
GateWay的源码分析之自动配置类## 看自动配置类的源码跟这个方法解析:自动配置类的其他信息无非就是注入bean以及注入其他属性等。HttpHandlerAutoConfiguration图片表明,是为这个webHttpHandler设置获取bean的方式,通过applicationContext。WebFluxAutoConfigurationReactiveWebServerF...原创 2020-04-23 10:46:57 · 355 阅读 · 0 评论 -
SpringCloud之Zuul的源码分析
原理解析: //开启断路器(hystrix)@EnableCircuitBreaker@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Import(ZuulProxyMarkerConfiguration.class)public @interface EnableZuulProxy {}org.spr...原创 2020-04-20 12:01:45 · 243 阅读 · 0 评论 -
SpringCloud之Hystrix的工作原理
工作原理1.构建命令@HystrixCommand2.执行命令@com.netflix.hystrix.HystrixCommand#execute3.检查缓存如果启用了 Hystrix Cache,任务执行前将先判断是否有相同命令执行的缓存。如果有则直接返回缓存的结果;如果没有缓存的结果,但启动了缓存,将缓存本次执行结果以供后续使用。4.检查断路器是否打开断路器(circuit-...原创 2020-04-20 11:23:57 · 483 阅读 · 0 评论 -
SpringCloud之EurekaClient的源码分析
@EnableEurekaClient注解说起顾名思义,就是开启这个EurekaClient进行服务的一个开启EurekaClient为了简化开发人员的工作量,将很多与EurekaServer交互的工作隐藏起来,自主完成。具体完成的工作如下应用启动阶段读取与 Eureka Server交互的配置信息,封装成 EurekaClientConfig读取自身服务实例配置信息,封装成Eurek...原创 2020-04-19 21:40:57 · 217 阅读 · 0 评论 -
SpringCloudEurekaServer的源码分析
EurekaServer的总览如下:EurekaServer 是服务的注册中心,负责Eureka Client的相关信息注册,主要职责 服务注册 接受心跳服务 服务剔除 服务下线 集群同步EurekaServerAutoConfiguration 是通过配置文件注册。@Bean public PeerAwareInstanceRegistry peerAwareI...原创 2020-04-19 22:57:02 · 204 阅读 · 0 评论 -
SpringCloud之Ribbon源码分析
@RibbonClient注解@RibbonClient注解可以实现Ribbon客户端,ribbon需要设置客户端的名称,以及相关的路由配置类@Configuration@Import(RibbonClientConfigurationRegistrar.class)@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)...原创 2020-04-19 23:35:42 · 337 阅读 · 0 评论 -
SpringCloud之FeignClient的源码分析
@EnableFeignClients在@EnableFeignClients标签中,import了一个FeignClientsRegistrar类@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(FeignClientsRegistrar.class)public @inter...原创 2020-04-20 10:42:24 · 518 阅读 · 0 评论 -
SpringCloud的Hystrix原理分析
Hystrix用到的老朋友AOPHystrix 的AOP@Bean//注入一个AOP的切面public HystrixCommandAspect hystrixCommandAspect() { return new HystrixCommandAspect();}HystrixCommandAspect 用于处理被注解 @HystrixCommand 标记的方法。通过名...原创 2020-04-20 10:58:49 · 265 阅读 · 0 评论