随笔分类 -  分布式及微服务

1 2 下一页
Netty启动流程及源码分析
摘要:在EventLoopGroup事件循环组(线程组)继承体系对Netty线程池体系有了充分了解,本文继分析其启动过程。在Netty编程模型入门案例中无论客户端还是服务端都是先对ServerBootStrap进行配置,参考下面的类图: group返回的是BootStrap本身: 在进行channel,h 阅读全文
posted @ 2024-06-26 18:49 池塘里洗澡的鸭子 阅读(29) 评论(0) 推荐(0)
EventLoopGroup事件循环组(线程组)继承体系
摘要:在Netty线程模型概述已知EventLoopGroup是Netty中线程池的封装,其继承体系参考下图: 绿框中的是JDK提供的,可以看到Netty中线程池实现与JDK提供的完全不搭界——即完全不同实现。具体为: 通过跟踪调试源码,其处理流程具体如下: 阅读全文
posted @ 2024-06-25 18:56 池塘里洗澡的鸭子 阅读(26) 评论(0) 推荐(0)
Netty线程模型概述
摘要:在Netty编程模型入门案例中客户端和服务端通信底层如何实现的呢?先看客户端和服务端的类图: 两类图大致一样,区别在于ServerBootstrap与EventLoopGroup是组合关系,而Bootstrap与EventLoopGroup之间没有直接的关系。实际在操作过程中也是ServerBoot 阅读全文
posted @ 2024-06-04 14:54 池塘里洗澡的鸭子 阅读(50) 评论(0) 推荐(0)
Netty编程模型入门案例
摘要:在Socket编程模型可以看到发送数据和响应数据直接涉及到的是I/O模型,基于TCP/IP的socket编程使用的是流套接字。那什么是I/O模型呢?简单的理解就是用什么样的通道进行数据的发送和接收——这很大程度上决定了程序通信的性能。 下面介绍另一种编程模式——Netty框架的入门案例: 服务端实现 阅读全文
posted @ 2024-06-04 10:39 池塘里洗澡的鸭子 阅读(43) 评论(0) 推荐(0)
Socket编程模型
摘要:Socket,套接字就是两台主机之间逻辑连接的端点,其属于TCP/IP协议中的传输层协议,主要解决数据如何在网络中传输。而HTTP是应用层协议,主要解决如何包装数据(数据的格式化)。 Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行 阅读全文
posted @ 2024-06-03 12:45 池塘里洗澡的鸭子 阅读(49) 评论(0) 推荐(0)
Spring Boot实战邮件发送
摘要:实际项目中,比如验证码之类的需要通过邮件或者短信传递给相关人员。本文通过Spring Boot实现邮件发送,具体如下: 1、引入依赖 2、设置发件邮箱信息 注意红框中属性设置,本案例中使用的是163邮箱其端口是465,如果是其他邮箱,该端口不同。关于发件人邮件登录授权码,可以直观地看到其不是邮箱登录 阅读全文
posted @ 2022-08-04 07:53 池塘里洗澡的鸭子 阅读(394) 评论(0) 推荐(0)
Redis缓存数据实战——缓存验证码
摘要:Redis数据类型 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中介绍了其内置的各种数据类型,本文实战体验String数据类型的使用。 业务场景:页面注册及登录都需要提供在一定时间范围内的验证码。 分析: 如果直接使用数据库(如MySQL),可以直接设计保存验证码的表,表结构可以如下 阅读全文
posted @ 2022-08-03 21:28 池塘里洗澡的鸭子 阅读(794) 评论(0) 推荐(0)
虚拟化技术概述
摘要:提到虚拟化技术,那不得不说说为什么要虚拟化。随着信息科技发展,将计算机资源集中起来放在网络上共享是大势所趋,逐渐发展成现在大家都知道的一个热词“云计算”。云计算理解并不困难,但是其实现方式,就非常复杂了——特别是对于需要设计一个超大容量、超高并发(同时访问)、超快速度、超强安全的云计算系统,才能满足 阅读全文
posted @ 2022-04-26 09:53 池塘里洗澡的鸭子 阅读(146) 评论(0) 推荐(0)
Dubbo源码剖析六之SPI扩展点的实现之Adaptive功能实现原理
摘要:接Dubbo源码剖析六之SPI扩展点的实现之getExtensionLoader - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)继续分析Adaptive功能实现原理。Adaptive的主要功能是对所有的扩展点进行封装为一个类,通过URL传入参数的时动态选择需要使用的扩展点(参考Dubb 阅读全文
posted @ 2022-02-18 06:18 池塘里洗澡的鸭子 阅读(99) 评论(0) 推荐(0)
Dubbo源码剖析六之SPI扩展点的实现之getExtension
摘要:上文Dubbo源码剖析六之SPI扩展点的实现之getExtensionLoader - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中分析了getExtensionLoader,本文继续分析SPI扩展点实现的getExtension。 通过方法名称不难看出其功能是根据name加载指定扩展 阅读全文
posted @ 2022-02-18 06:04 池塘里洗澡的鸭子 阅读(72) 评论(0) 推荐(0)
Dubbo源码剖析五之服务本地缓存
摘要:Dubbo调用者需要通过注册中心(例如:ZK)注册信息,获取提供者。但是如果频繁从ZK获取信息肯定会存在单点故障问题,所以Dubbo提供了将提供者信息缓存在本地的方法。 Dubbo在订阅注册中心的回调处理逻辑当中会保存服务提供者信息到本地缓存文件当中(同步/异步两种方式),以URL维度进行全量保存。 阅读全文
posted @ 2022-02-17 20:12 池塘里洗澡的鸭子 阅读(568) 评论(0) 推荐(0)
Dubbo源码剖析三之服务注册过程分析
摘要:Dubbo源码剖析二之注册中心 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中对注册中心进行了简单的介绍,对Dubbo整合Zookeeper链接源码进行了详细分析。本文接着对服务注册过程源码进行分析。 借图说明服务注册(暴露)流程: 利用之前案例跟踪调试分析上述流程的实现,或者验证该 阅读全文
posted @ 2022-02-17 14:59 池塘里洗澡的鸭子 阅读(303) 评论(0) 推荐(0)
Dubbo源码剖析一之整体架构设计
摘要:Dubbo基础二之架构及处理流程概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中进行Dubbo职能上的简单介绍,下面就其内部进行详细探究: 1、Dubbo调用关系 这个图是不是很熟悉,但是又好像有点不一样。是的,此图将架构概述中的服务消费者和提供者进行了细化,详解如下: 同时整个 阅读全文
posted @ 2022-02-17 11:49 池塘里洗澡的鸭子 阅读(66) 评论(0) 推荐(0)
Dubbo扩展点应用之六服务动态降级
摘要:服务降级,当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务有策略的降低服务级别以释放服务器资源保证核心任务的政策运行。 为什么要使用服务降级呢?这是为了防止分布式服务发送雪崩效应,也就是蝴蝶效应:当一个请求发送超时,一致等待中服务响应,那么在高并发情况下,很多请求都是因为这样一直等待响应知 阅读全文
posted @ 2022-02-17 10:35 池塘里洗澡的鸭子 阅读(180) 评论(0) 推荐(0)
Dubbo扩展点应用之三异步调用
摘要:Dubbo不只提供了堵塞式的同步调用,同时提供了异步调用的方式。这种方式主要应用于提供者接口响应耗时明显,消费者端可以利用调用接口的时间去做一些其他的接口调用,利用Future模式来异步等待和获取结果即可(参考FutureTask类的get方法如何实现线程同步等待 - 池塘里洗澡的鸭子 - 博客园 阅读全文
posted @ 2022-02-17 09:47 池塘里洗澡的鸭子 阅读(118) 评论(0) 推荐(0)
Dubbo扩展点应用之二负载均衡
摘要:负载均衡其本质就是将请求分摊到多个操作单元上进行,从而共同完成工作任务。其策略主要用于客户端春常在多个提供者时根据算法选择某个提供者。在集群负载均衡时,Dubbo提供了多种均衡策略(包括随机、轮询、最少活跃调用数、一致性Hash等),缺省为随机调用(具体可参考dubbo官网)。 配置负载均衡,既可以 阅读全文
posted @ 2022-02-17 09:24 池塘里洗澡的鸭子 阅读(123) 评论(0) 推荐(0)
Dubbo基础三之配置方式简述
摘要:Dubbo基础一之实战初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中,体验了两种配置方式一种注解一种xml。其中xml是在注解配置失败没有找到解决方法后选择xml替代体验的。那么Dubbo支持多少中配置方式呢?一般分为以下几种且每种配置方式各有不同: 1)注解:基于注解可以快 阅读全文
posted @ 2022-02-16 11:21 池塘里洗澡的鸭子 阅读(557) 评论(0) 推荐(0)
Dubbo基础二之架构及处理流程概述
摘要:Dubbo基础一之实战初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中体验了Dubbo的使用,对于消费端对服务提供者的调用非常清晰明确。那么Dubbo是如何做到的呢?下面对Dubbo的架构及处理流程做简单概述。 Apache Dubbo是一款高性能的Java RPC框架,其前身 阅读全文
posted @ 2022-02-16 10:52 池塘里洗澡的鸭子 阅读(112) 评论(0) 推荐(0)
Dubbo源码剖析二之注册中心
摘要:Dubbo基础二之架构及处理流程概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中架构中,无论是服务提供者还是服务消费者都离不开注册中心,可见注册中心之重要。Redis、Nacos、Zookeeper等这些开源框架均作为Dubbo的注册中心,Dubbo推荐用户使用Zookeeper 阅读全文
posted @ 2021-08-12 20:23 池塘里洗澡的鸭子 阅读(221) 评论(0) 推荐(0)
Dubbo服务注册到Zookeeper,对外提供服务的实际类 ref(如:SleepServiceImpl)保存在哪里
摘要:Dubbo服务注册到Zookeeper,其注册的内容为实际对外提供的服务的实现。这个实现保存在哪里(至于具体客户端使用时怎么取后后续阐述)?可以看看Dubbo如何处理的。 对于@DubboService注解的bean,其实现的父类接口的注册由ServiceClassPostProcessor的reg 阅读全文
posted @ 2021-08-11 10:33 池塘里洗澡的鸭子 阅读(145) 评论(0) 推荐(0)

1 2 下一页