摘要: 1、dubbo主要角色 Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 a.订阅注册中心,注册中心广播服务变更,第一次会主动全量pull所有信息,后面增量会被动监听注册中心的消息 b.本地会缓存注册信息,注册中心挂了之后会拉本地缓存,保证服务之间可用。 R 阅读全文
posted @ 2024-03-04 16:42 低调人生 阅读(7) 评论(0) 推荐(1) 编辑
摘要: 注册中心 1、Register:服务注册 当Eureka客户端向Eureka Server注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等 1.1、服务端注册 会拉取配置的注册中心地址,向附近注册服务注册 1.2、客户端注册 客户端第一次续约会失败,因为服务端没有注册,失 阅读全文
posted @ 2024-02-28 18:27 低调人生 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1. DefaultListableBeanFactory的作用: 默认实现了ListableBeanFactory和BeanDefinitionRegistry接口,基于bean definition对象,是一个成熟的bean factroy。 最典型的应用是:在访问bean前,先注册所有的def 阅读全文
posted @ 2024-02-27 18:34 低调人生 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 循环依赖过程A->B B->A 1、doGetBean->getSingleton(A)先从一级缓存单例缓存singletonObjects获取,这个时候为空, 再判断singletonObject == null && isSingletonCurrentlyInCreation(beanName 阅读全文
posted @ 2024-02-21 11:15 低调人生 阅读(2) 评论(0) 推荐(0) 编辑
摘要: hystrix熔断机制 1、隔离机制 线程隔离: Hystrix在用户请求和服务之间加入了线程池。 Hystrix为每个依赖调用分配一个小的线程池,如果线程池已满调用将被立即拒绝,默认不采用排队.加速失败判定时间。线程数是可以被设定的。 信号隔离: 信号隔离也可以用于限制并发访问,防止阻塞扩散, 与 阅读全文
posted @ 2021-11-18 15:00 低调人生 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 客户端注册到服务端是通过http请求的 涉及到多级缓存 register注册表 源码精髓:多级缓存设计思想 在拉取注册表的时候: 首先从ReadOnlyCacheMap里查缓存的注册表。 若没有,就找ReadWriteCacheMap里缓存的注册表。 如果还没有,就从内存中获取实际的注册表数据。 在 阅读全文
posted @ 2021-11-17 17:05 低调人生 阅读(583) 评论(0) 推荐(0) 编辑
摘要: synize锁升级 阅读全文
posted @ 2021-11-13 15:38 低调人生 阅读(33) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock主要利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似。 CAS:Compare and Swap,比较并交换。CAS有3个操作数:内存值V、预期值A、要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。该操作是一个原子操 阅读全文
posted @ 2021-11-12 17:59 低调人生 阅读(580) 评论(0) 推荐(0) 编辑
摘要: AOP: aop切面编程,其实就是spring增强器的一个扩展,就是通过beanPostProcessor的after后置方式实现的,其中在after中把需要的bean通过放射+动态代理完成bean的替换,替换成代理bean。然后通过注册拦截器完成代理方式的执行; 1、代理对象的创建过程(advic 阅读全文
posted @ 2021-09-30 17:00 低调人生 阅读(116) 评论(0) 推荐(0) 编辑
摘要: spring要了解的几个类 AbstractApplicationContext: 启动类,spring开始方法执行refresh()十几步方法 beanPostProcessor: bean的增强器,两个接口before,after,初始化之前执行beforeInitializationa,初始化 阅读全文
posted @ 2021-09-29 16:51 低调人生 阅读(120) 评论(0) 推荐(0) 编辑