容器
氵何章怀晓 。
阿尔卡拉大学企业管理硕士
北亚利桑那大学计算机信息技术硕士
展开
-
SpringClouHystrix运行流程及源码
断路器作用:熔断、隔离和降级熔断:本质是对原子Boolean的判断和properties中的一堆阈值判断隔离:通过线程池和信号量实现目标为服务调用之间的互不干扰,map降级:目标服务器嘎嘣儿了或网络IO超时了,从定义的fallback静态缓存中获取返回数据,就是出错了,别整那么难看,保证后端服务不要大面积受到影响而瘫痪源码按照三部分来分析:配置、执行、关闭第一部分源码:断路器的自动装配自动装配是springboot中的基础知识,我之前的文章中有想学习的执行流程@Configuration(p原创 2022-05-21 16:31:10 · 218 阅读 · 0 评论 -
SpringCloudFeign的注册流程和源码
微服务的访问可使用restTemplate,也可以使用feign远程调用,feign默认使用ribbon实现负载均衡声明式的伪Http客户端,整合了feign和Hystrix,big和eureka结合,可实现负载均衡和断路器等功能自动装配FeignAutoConfiguration的时候,会创建Targeter 配置Bean,默认使用 HystrixTargeter实现断路器@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@原创 2022-05-20 14:19:10 · 429 阅读 · 0 评论 -
SpringCloudRibbon运行原理和源码
ribbon的源码比较简单,打个debug走一遍基本就明白了.ribbon是客户端负载均衡器,即自己在最终调用前,自己通过一些规则来确定调用某一个实例。ribbon维护了服务器实例信息列表,并定期刷新本地ServerList,而后通过某些逻辑Role来实现负载均衡调用...原创 2022-05-19 19:29:56 · 117 阅读 · 0 评论 -
SpringCloudEureka服务下线和剔除流程及源码
服务下线```java/** * @Description: 服务下线 * @Author: PABLO * @Date: 2022/5/18 15:27 * @Params: [appName, id, isReplication] * @Return: boolean **/ protected boolean internalCancel(String appName, String id, boolean isReplica原创 2022-05-18 16:27:54 · 502 阅读 · 0 评论 -
SpringCloudEureka服务续约流程及源码
源码@PUTpublic Response renewLease( @HeaderParam(PeerEurekaNode.HEADER_REPLICATION) String isReplication, @QueryParam("overriddenstatus") String overriddenStatus, @QueryParam("status") String status, @QueryParam("lastDir...原创 2022-05-18 15:20:32 · 100 阅读 · 0 评论 -
SpringCloudEureka服务注册流程图及源码
@EnableEurekaServer是个开关实现原理:eureka的实现原理是基于Jersey框架过滤器拦截,节点间的通信采用HTTP,服务器接受请求后,拦截request,获取对应的执行操作调用不同的处理逻辑。核心源码 @POST @Consumes({"application/json", "application/xml"}) public Response addInstance(InstanceInfo info,原创 2022-05-18 15:16:47 · 272 阅读 · 0 评论 -
Springboot内置Tomcat运行流程图及源码
调用流程refresh,这里其实是spring的核心代码这里这是模板方法,看子类实现AutoConfiguration有一个ServletWebServerFactoryAutoConfiguration会被加载进来(细节在我的SpringBoot自动装配中有)所以才会获得tomcat对应的工厂。进入getWebServer(),有多种实现细节的创建 private void createWebServer() { //首次进来空的 .原创 2022-05-16 23:55:40 · 563 阅读 · 0 评论 -
Springboot自动装配流程图及源码
流程总结两大部分:prepareContext + refreshContext1.prepareContext1.1 load方法,将启动类封装为beanDefinition注册到bedefinitionMap2.refreshContext2.1 invokeBeanFactoryPostProcessor2.1.1 parse方法,递归扫描启动类上注解,确定basePackage,加载构件注解修饰的类2.1.2 扫描解析@Import 将需要自动装配的class信息加载,最终注册到bea.原创 2022-05-16 14:40:59 · 966 阅读 · 0 评论 -
SpringBoot启动流程及源码
SpringBoot的启动流程可以分为几大部分:1.创建SpringApplication,加载监听器2.启动监听器3.创建创建环境4.创建容器5.将环境放入容器中6.refresh容器7.启动所有监听器第一部分:创建SpringApplication构建好SpringApplication执行run()这里是启动的伪代码 public ConfigurableApplicationContext run(String... args) { //记录开.原创 2022-05-15 13:30:31 · 348 阅读 · 0 评论 -
Spring循环依赖流程图及源码
缓存没有现成的,所以createBean此时会再走一遍getBean接下来看我画的流程图就可以了原创 2022-05-13 00:55:53 · 119 阅读 · 0 评论 -
手写4不润v2源码
类图(手写版类图是原版迷你版)手写版Spring启动流程图手写版调用流程图项目结构图代码: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM原创 2022-05-10 15:22:31 · 298 阅读 · 0 评论 -
手写简易版Springv1源码
v1版本目录结构类图注解@Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface PABLO_Autowired { String value() default "";}@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface原创 2022-05-07 22:28:19 · 243 阅读 · 0 评论 -
手写简易版spring-mvc源码
1.0手写版,后续会继续更新web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com原创 2022-05-04 19:26:54 · 578 阅读 · 0 评论 -
k8s搭建集群
k8s由两种类型资源组成 分别是 master 和 nodesk8s的集群部署方式有三种:1.kubeadm2.minikube3.二进制包前两种为自动部署,简化操作。说一说手动部署的 二进制包k8s集群部署步骤:1.关闭防火墙firewall-cmd --statesystenctl stop firewalld.service2.禁止frewall开机启动s...原创 2019-09-26 22:48:22 · 281 阅读 · 0 评论 -
k8s核心组件
k8s的设计理念类似于linux的分层架构。1.master 核心控制 是老大它主要负责调度,决定服务在哪里运行,master运行linux系统,可以是物理机或虚拟机,master是k8s Cluster的大脑,运行着的守护进程服务包括:kube-apiserver,kube-scheduler,kube-controller-manager,etcd,Pod网络。2.node 做事儿...原创 2019-09-26 22:27:40 · 1620 阅读 · 0 评论 -
k8s
k8s即kubernetes,是谷歌14年发布的开源项目,用于自动化容器的应用程序的部署,扩展和管理。通常结合docker容器工作,并且整合多个运行着的docker的容器主机群。有了k8s管理容器,部署容器化的应用简单而高效,他的核心特点是能够自主的管理容器来保证云平台中容器按照用户的期望运行。 官网https://kubernetes.io/k8s是开放的开发平台,完备的分布式系统支撑平台,...原创 2019-09-26 22:10:19 · 116 阅读 · 0 评论