![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
springBoot/Cloud
Spring Boot/Cloud并未增加任何新的功能,它只不过是将Spring使用的复杂性进行了一系列的封装,让开发者能够更快地上手使用而已。复杂性是无法消除的,它就在那里。因此,若想更好地使用Spring Boot/Cloud,我们不仅需要知道如何用,还需要知道为什么这么用。
发了个版
认清真实的自己,积累更多的知识
展开
-
Config原理解析,项目搭建以及如何获取不同环境下的配置文件信息(一)
这里写目录标题原理搭建config项目新增github仓库spring-cloud-config-serverspring-cloud-config-client如何获取的不同环境下的配置文件了?gitHub和config-client客户端yml对应规则原理搭建config项目需要两个项目和github仓库新增github仓库spring-cloud-config-serverpom.xml<?xml version="1.0" encoding="UTF-8"?>原创 2020-08-30 14:18:41 · 418 阅读 · 0 评论 -
Zuul自定义过滤器,ZuulProxyAutoConfiguration 如何生效,以及zuul底层源码过滤器初始化流程
目录自定义ZuulFilter@EnableZuulProxyZuulProxyAutoConfigurationZuulProperties内置过滤器过滤器执行流程ZuulServletFilterProcessorrunFilters筛选器processZuulFilter总结自定义ZuulFilterpublic class MyZuulFliter extends ZuulFilter { /** * 过滤类型 * * @return 过滤类型字符串原创 2020-08-29 22:31:00 · 885 阅读 · 0 评论 -
Zuul端点详解与过滤器分析(二)
端点如何查看断点映射关系?当我们门为了能看到端点的映射信息可以在zuul中导入actuator <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>我们可以访问http:原创 2020-08-23 21:27:35 · 411 阅读 · 0 评论 -
Zuul概念原理以及项目的简单搭建(一)
由上图可知 当没有使用网管时每个模块都得去考虑权限控制,限流,网路访问一系列问题,影响性能此时我们可以将这些问题统一的集成到网关当中,由网关统一处理处理完毕在把请求转发对应模块我们在使用网关的时候需要做一个反向代理由于zuul并发量大,此时必须给zuul配置集群一同注册到eureka server上此时nginx就可以通过反向代理得到使用zuul网关由于某些微服务涉及到权限等鉴权问题我们可以将鉴权auth(非业务逻辑)打包到一起生成一个项目放到server上,此时zuul网关在..原创 2020-08-23 15:17:04 · 459 阅读 · 0 评论 -
hystrix原理以及基本构建,feign和ribbon如何使用熔断器
传统服务中当用户在请求c时 c请求b b请求a时 当多个用户(线程)同时请求c此时由于a迟迟不响应造成线程大面积堵塞 此时a就会发生雪崩(一台机器出现问题导致与其关联的机器也出现问题),同时影响cbHystrix 项目搭建基于ribbon项目进行搭建1.引入Hystrix maven依赖 <dependency> <groupId>org.springframework.cloud</groupId> .原创 2020-08-22 20:35:49 · 346 阅读 · 0 评论 -
Feign拦截器,底层Feign运行流程核心代码解读(三)
目录RequestInterceptorFeign流程解析FeignClientsRegistrarregisterFeignClientFeignClientFactoryBean.class (重要)ReflectiveFeign总结RequestInterceptordoc可以配置零个或多个requestinterceptor,以便将头添加到所有请求。对于拦截器的使用顺序,不作任何保证。一旦使用了拦截器,目标.apply调用(RequestTemplate)来创建通过客户端.execute(请求原创 2020-08-22 17:13:20 · 955 阅读 · 0 评论 -
feign重试器与自定义日志级别详解以及日常开发复杂使用场景(二)
重试器如何配置重试器?新建一个EurekaClientFeign 配置类 Feign为我们封装了重试器我们使用只需将其注入到IOC当中@Configurationpublic class FeignClientConfig { /** * 创建重试器 (重试周期(50毫秒),最大重试周期(2000毫秒),最多尝试次数 6次 ) * feign没有采用线性的重试机制而是采用的是一种指数级(乘法)的重试机制 每次重试时间 当前重试时间*= 1.5 * @retu原创 2020-08-22 14:40:41 · 396 阅读 · 0 评论 -
Feign项目搭建以及Feign简单使用(一)
创建一个Feign项目yml配置文件server: port: 8888spring: application: name: feign-clienteureka: ## 表示为Erureka客户端 client: ## 单台server为服务器不需要注册到服务器上 register-with-eureka: true ## 获取注册列表的信息 道理同上 基本两者参数是一样的 fetch-registry: t...原创 2020-08-16 20:49:07 · 821 阅读 · 0 评论 -
Ribbon底层RibbonLoadBalancerClient源码解析,如何实现负载均衡执行流程分析(二)
目录LoadBalancerAutoConfiguration自动配置类LoadBalancerInterceptor 负载均衡拦截器LoadBalancerClient客户端负载均衡器ServiceInstanceChooserRibbonLoadBalancerClient总结LoadBalancerAutoConfiguration自动配置类ribbon自动配置类自动配置类基本是通过springboot启动时扫描的META-INF/spring.factories 和@ConditionalOn原创 2020-08-16 14:37:42 · 678 阅读 · 0 评论 -
ribbon客户单负载均衡器原理解析,ribbon如何通过RestTemplate实现负载均衡(一)
ribbon与传统负载均衡器的区别传统的服务端负载均衡是通过如nginx他是将接收到请求通过在nginx上配置的信息将请求分配到指定 的服务器上达到负载均衡客户端负载均衡,需要客户端提前知道服务器的具体信息通过某种算法和规则rule,从而直接定位到需要的服务器。但是客户端必须实时知道服务端集群的实时存活情况和实际数量(包括新增和删除)此时就可以通过ribbon来实现引入Eureka时已经引入RibbonRule:负载均衡规则Ping:心跳检测ServerList:需要再ribbon.原创 2020-08-16 11:58:37 · 235 阅读 · 0 评论 -
Eureka底层Client向server服务端注册源码解析(三)
DiscoveryClient1.在Eureka服务器上注册实例2.使用Eureka服务器续订租约3.在关闭期间从Eureka服务器取消租约4.查询在Eureka服务器上注册的服务/实例列表 /** * Initializes all scheduled tasks. */ private void initScheduledTasks() { //是否获取服务端注册列表信息 if (clientConfig.shouldFetchReg原创 2020-08-10 17:01:55 · 182 阅读 · 0 评论 -
Eureka单台机器server集群搭建(二)
Eureka集群 (3台server)Eureka server搭建集群不同与传统集群,每个server是互等的1在向23注册时1就相当于客户端,需要向23注册信息的同时还要获取信息。所以 defaultZone注册时如1需注册23的server地址(不能注册自己的地址)注册完123会在系统趋于平稳进行复制 达到信息共享统一1.需要再hosts加入如下命令127.0.0.1 node1127.0.0.1 node2127.0.0.1 node32.需要修改server的配置文件(基于一)原创 2020-08-08 22:23:22 · 301 阅读 · 0 评论 -
Eureka概念以及初步搭建(一)
传统的服务架构不管是采用http还是nginx还是host都需要将服务端或者客服端的ip保存起来通过IP去关联,如果IP变化或者增加服务模块传统HTTP就会在写死的对应调用端去修改其和增加IP。nginx则不管是关联服务端或者是客户端都需要将新增和修改的IP进行更新。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200802200350328.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk.原创 2020-08-08 21:29:13 · 163 阅读 · 0 评论 -
SpringApplication.run(MyApplication.class, args)运行流程源码分析
SpringApplication.run(MyApplication.class, args);如何启动springBoot项目的run()一个静态的辅助方法,可以使用默认设置和用户提供的参数从指定源运行SpringApplicationConfigurableApplicationContext大多数应用程序上下文(如果不是全部的话)将实现SPI(服务提供者)接口。除了Applicat...原创 2020-01-02 15:21:00 · 7929 阅读 · 7 评论 -
spring-boot-loader jar包文件分析以及springBoot jar包启动流程
BOOT-INFMETA-INF中MANIFEST.MF 清单文件 (文件结尾回车换行)tart-Class: com.meishi.sales.SalesBootstrap springboot 提供的类加载器Main-Class: org.springframework.boot.loader.JarLauncher 程序启动入口类org来自spring-boot-load...原创 2020-01-02 15:20:28 · 2728 阅读 · 0 评论 -
@SpringBootApplication注解源码分析
@SpringBootApplication注解源码分析配置类自动配置组件扫描@SpringBootConfiguration可以自定义配置类将其加入到IOC容器中(一般在启动类里(@SpringBootApplication已有)使用 只是用一次)@Configuration 配置类详解 (spring提供的类)//如何使用@Configurationpublic clas...原创 2020-01-02 15:20:11 · 671 阅读 · 0 评论 -
SOA详解微服务与SOA的关系
单体应用单体应用优化SOA 面向服务的架构SOA描述面向服务的体系结构(SOA)是一个式的软件设计风格,是通过应用组件的方式向其他组件提供服务,基于网络的的一个通讯协议。SOA基本原理是独立的供应商,产品和技术。服务 一个独立单元的功能是可以被远程访问可以被独立的操作和更新的,如获取一个在线的账单甲服务具有4个特性根据给一个的许多定义的SOA:[2]它在逻辑...原创 2020-01-02 15:19:50 · 1502 阅读 · 0 评论 -
微服务译文理解
微服务是什么?微服务详解在过去几年中,“微服务架构”这一术语如雨后春笋般涌现出来,它描述了一种将软件应用程序设计为一组可独立部署的服务的特定方式。虽然这种架构风格没有明确的定义,但在组织、业务能力上有一些共同的特征:自动化部署,端点智能化,语言和数据的去中心化控制。“微服务” - 软件架构拥挤大街上的有一个新术语。虽然我们自然的倾向是轻蔑的一瞥将它一带而过,然而我们发现这一术语描述了一种越来...原创 2020-01-02 15:19:13 · 736 阅读 · 0 评论