自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 三、ByteBuf组件

ByteBuf

2022-08-17 08:52:07 853 1

原创 二、ChannelPipeline 组件介绍

ChannelPipeline

2022-08-03 17:46:14 241

原创 三、Redis数据库存储结构及过期策略

redis

2022-07-18 21:29:18 265

原创 一、Netty基础组件介绍

netty组件介绍

2022-07-18 20:48:33 289

原创 二、redis对象类型及编码

redis对象

2022-07-13 13:11:06 416

原创 一、redis底层数据结构

redis底层数据结构--SDS、字典、跳跃表

2022-07-05 14:32:52 192

原创 十四、gateway网关执行流程源码分析

GatewayAutoConfiguration自动配置类,注册相关组件和netty配置。netty处理请求到DiapatcherHandler。@Configuration(proxyBeanMethods = false)@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMissing = true)@EnableConfigurationProperties@AutoConfigureBefore({ H

2022-04-25 16:15:55 776

原创 十三、Seata分布式事务源码解析

一、自动配置类SeataAutoConfigurationSeataAutoConfiguration 自动配置类,注册GlobalTransactionScanner组件。@Bean@DependsOn({BEAN_NAME_SPRING_APPLICATION_CONTEXT_PROVIDER, BEAN_NAME_FAILURE_HANDLER})@ConditionalOnMissingBean(GlobalTransactionScanner.class)public GlobalTra

2022-04-24 18:22:43 837 1

原创 十二、sentinel持久化到Nacos-push模式

一、实现  实现Sentinel持久化到nacos,切断sentinel_dashboard到客户端的通信,直接和nacos通信;客户端和nacos通信,nacos负责将变化的规则通知到客户端内存。流程图:二、客户端集成1、导入依赖 <!--sentinel持久化 --> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasour

2022-04-20 18:01:06 1121

原创 十一、sentinel持久化到文件-pull模式

一、组件开发思路:  sentinel官方给我们提供了很多组件的持久化demo,借鉴官方demo,我们来将sentinel-dashboard的配置持久化到文件中。前面看过dashboard的配置提交到后端会先保存内存,推送规则到客户端,客户端保存到内存后,如果有WritableDataSource,则会调用write方法。正好官方提供了文件的WritableDataSource类:FileWritableDataSource,有了它我们可以将配置写到文件中。那么文件变更我们如何感知,更新配置?

2022-04-20 10:55:34 877 3

原创 十、sentinel-dashboard规则推送到客户端源码分析

1、snetinel-dashboard如何将配置推送到我们的微服务内存?以dashboard新增流控规则为例,看下代码,会调用/v1/flow/rule POST方法。@PostMapping("/rule")@AuthAction(PrivilegeType.WRITE_RULE)public Result<FlowRuleEntity> apiAddFlowRule(@RequestBody FlowRuleEntity entity) { Result<FlowRuleE

2022-04-19 15:43:10 573

原创 九、sentinel处理链核心源码分析(二)

chain.entry方法去依次执行chain上的slot public void entry(Context context, ResourceWrapper resourceWrapper, Object t, int count, boolean prioritized, Object... args) throws Throwable { //调用first的transformEntry first.transformEntry(context, resourceWrapper, t, co

2022-04-02 19:35:35 454

原创 八、sentinel处理链核心源码分析(一)

一、@SentinelResource源码分析入口在spring-cloud-starter-alibaba-sentinel的jar包,META-INF/spring.factories里的自动配置类:SentinelAutoConfigurationSentinelAutoConfiguration注册一个SentinelResourceAspect切面,拦截@SentinelResource注解。@Configuration(proxyBeanMethods = false)@Conditio

2022-04-02 12:16:30 672

原创 七、Feign源码分析

一、准备@EnableFeignClients注解开启feign@SpringBootApplication@EnableFeignClients//@RibbonClients 注意 配置类不能写在@SpringbootApplication注解的@CompentScan扫描得到的地方/*@RibbonClients( value = { @RibbonClient(name = "order-server",configuration = RuleConfig.class) }

2022-03-22 19:52:54 1207

原创 六、Ribbon负载均衡器源码分析

六、ribbon源码一、准备工作使用RestTemplate访问其他微服务的接口,可以直接访问具体的地址,但是如果服务部署多台机器,就不能写死地址和端口,当然也可以使用nginx做负载均衡。我们微服务间最好的就是ribbon,这个组件可以做到服务名到服务具体地址的映射,也支持多种负载均衡规则。测试代码:controller方法:@RestController@RequestMapping("user")public class UserController { @Autowired

2022-03-22 12:34:31 302

原创 五、Nacos服务注册源码分析

一、准备工作在我们的微服务里,引入依赖,用于服务注册和发现<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>在配置文件中指定注册中心地址spring: application: name: user

2022-03-21 16:49:22 538

原创 四、Spring Boot自动装配及启动流程源码分析

一、Spring Boot自动装配源码分析首先主启动类上写上@SpringBootApplication。@SpringBootApplicationpublic class SpringSourceApplication { public static void main(String[] args) { SpringApplication.run(SpringSourceApplication.class, args); }}这个注解做了什么?@Target(ElementTy

2022-03-15 09:10:02 445

原创 三、Spring MVC请求流程及源码分析

今天的天气有点阴,但是丝毫不影响帅气的我,闪亮登场,哈哈…这回简单看看Spring MVC请求流程及源码分析。一、简述Spring MVC启动流程1、请求发送到DispatcherServlet2、 DispatcherServlet收到请求,调用处理器映射器HandlerMapping。处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。3、DispatcherServ

2022-03-11 13:05:47 288

原创 二、Spring MVC父子容器启动原理及源码分析

  最近没事看了点SpringMVC的源码,Spring整合Spring MVC的为一体现就是父子容器。相信有很多人,甚至都没听说过父子容器,不过不用担心,小弟已经梳理了。所以分享给大家。一、简单介绍先来看看Spring MVC父子容器的特性:父容器(Spring)管理Service、Dao层的Bean子容器 (SpringMVC)管理Controller的Bean子容器可以访问父容器的Bean父容器无法访问子容器的Bean以前在框架整合的时候,我们需要在web.xml里配置<!

2022-03-09 17:56:19 627 1

原创 一、深入理解SPI机制及源码分析

一、SPI机制理解SPI 全称为 Service Provider Interface 是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。实现步骤:1、在ClassPath路径下的META-INF/services文件夹下创建文件2、文件名为接口服务的全限定名,文件内容是多个实现类3、API加载实现类。二、Java SPI 案例1、编写接口服务public interface SPIService {

2022-03-03 09:11:04 1042

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除