随笔分类 -  服务端开发

摘要:1. Stream 引入 https://spring.io/projects/spring-cloud-stream 1.1 要解决的问题 MQ 消息中间件⼴泛应⽤在应⽤解耦合、异步消息处理、流量削峰等场景中。 不同的 MQ 消息中间件内部机制包括使⽤⽅式都会有所不同,⽐如 RabbitMQ 中有 阅读全文
posted @ 2024-09-30 07:52 tree6x7 阅读(18) 评论(0) 推荐(0) 编辑
摘要:Starter 是什么? 我们如何使用这些 Starter? 为什么包扫描只会扫描核心启动类所在的包及其子包? 在 SpringBoot 启动过程中,是如何完成自动配置的? 内嵌 Tomcat 是如何创建并启动的? 引入了 web 场景对应的 Starter,SpringMVC 是如何完成自动装配的 阅读全文
posted @ 2024-05-18 13:01 tree6x7 阅读(127) 评论(0) 推荐(1) 编辑
摘要:Quiz: Spring和SpringMVC整合使用时,会创建一个容器还是两个容器(父子容器?) DispatcherServlet初始化过程中做了什么? 请求的执行流程是怎么样的? SpringMVC 是基于 Servlet 和 Spring 容器设计的 Web 框架。 1. Servlet 回顾 阅读全文
posted @ 2024-05-15 07:02 tree6x7 阅读(36) 评论(1) 推荐(0) 编辑
摘要:AOP 源码分析 1. AOP 概述 AOP(Aspect Orient Programming)利用代理模式,通过代理对象对被代理的对象增加功能。所以,关键在于 AOP 框架自动创建 AOP 代理对象,代理模式分为静态代理和动态代理。 AspectJ 使用静态代理,编译时增强,在编译期生成代理对象 阅读全文
posted @ 2024-05-07 20:36 tree6x7 阅读(23) 评论(0) 推荐(0) 编辑
摘要:1. Spring 架构设计 Spring 框架是一个分层架构,他包含一系列的功能要素,并被分为大约 20 个模块。 1.1 设计理念 Spring 是面向 Bean 的编程(BOP:Bean Oriented Programming),Bean 在 Spring 中才是真正的主角。Bean 在 S 阅读全文
posted @ 2024-05-01 10:04 tree6x7 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1. 架构设计&测试代码 1.1 Mybatis 四层架构 【API接口层】提供 API 增加、删除、修改、查询等接口,通过 API 接口对数据库进行操作; 【数据处理层】主要负责 SQL 的查询、解析、执行以及结果映射的处理,主要作用解析 SQL 根据调用请求完成一次数据库操作; 【框架支撑层】负 阅读全文
posted @ 2024-04-24 16:42 tree6x7 阅读(260) 评论(0) 推荐(0) 编辑
摘要:1. JDBC 的使用问题 代码示例: public class JDBCTest { public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement 阅读全文
posted @ 2024-04-23 17:41 tree6x7 阅读(14) 评论(0) 推荐(0) 编辑
摘要:只列了关键代码。写得很乱,意识流操作... 1.Connector 1.1 Endpoint public abstract class AbstractEndpoint<S> { // [线程池] 调用Processor完成协议解析,解析完后将请求交给Adapter private Executo 阅读全文
posted @ 2023-11-29 08:05 tree6x7 阅读(50) 评论(0) 推荐(0) 编辑
摘要:1. Tomcat 引入 1.1 功能需求 浏览器发给服务端的是一个 HTTP 格式的请求,HTTP 服务器收到这个请求后,需要调用服务端程序来处理,所谓的服务端程序就是你写的 Java 类,一般来说不同的请求需要由不同的 Java 类来处理。 那么问题来了,HTTP 服务器怎么知道要调用哪个 Ja 阅读全文
posted @ 2023-11-29 08:01 tree6x7 阅读(58) 评论(0) 推荐(0) 编辑
摘要:1. 算法概述 对于滑动时间窗算法的源码解析分为两部分:〈对数据的统计〉与〈对统计数据的使用〉。不过,在分析源码之前,需要先理解该算法原理。 1.1 时间窗限流算法 该算法原理是,系统会自动选定一个时间窗口的起始零点,然后按照固定长度将时间轴划分为若干定长的时间窗口。所以该算法也称为“固定时间窗算法 阅读全文
posted @ 2022-04-10 17:08 tree6x7 阅读(63) 评论(0) 推荐(0) 编辑
摘要:1. SPI 摘自:https://www.jianshu.com/p/3a3edbcd8f24 SPI 全称为 Service Provider Interface,是一种服务发现机制。它通过在 classPath 路径下的 META-INF/services 文件夹查找文件,自动加载文件里所定义 阅读全文
posted @ 2022-04-10 16:58 tree6x7 阅读(58) 评论(0) 推荐(0) 编辑
摘要:1. 概述 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 (1)Sentinel 的主要特性 (2)Sentinel 的开源生态 (3)Sentinel 两大组成部分 核心库(Java 客户端 阅读全文
posted @ 2022-04-10 16:54 tree6x7 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1. 基础说明 Nacos(Dynamic Naming and Configuration Service) 1.1 概要 https://nacos.io/zh-cn/ (1)服务发现和服务健康监测 Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用原生SDK、OpenAP 阅读全文
posted @ 2022-04-10 16:51 tree6x7 阅读(54) 评论(0) 推荐(0) 编辑
摘要:1. 分布式链路追踪技术 1.1 适用场景 为了支撑日益增长的庞大业务量,我们会使用微服务架构设计我们的系统,使得我们的系统不仅能够通过集群部署抵挡流量的冲击,又能根据业务进行灵活的扩展。 那么,在微服务架构下,一次请求少则经过三四次服务调用完成,多则跨越几十个甚至是上百个服务节点。那么问题接踵而来 阅读全文
posted @ 2022-04-10 16:49 tree6x7 阅读(47) 评论(0) 推荐(0) 编辑
摘要:微服务统一认证方案 Spring Cloud OAuth2 + JWT 1. 微服务架构下统一认证 1.1 认证场景 认证:验证用户的合法身份,比如输入用户名和密码,系统会在后台验证用户名和密码是否合法,合法的前提下,才能够进行后续的操作,访问受保护的资源。 分布式系统的每个服务都会有认证需求,如果 阅读全文
posted @ 2022-04-10 16:48 tree6x7 阅读(79) 评论(0) 推荐(0) 编辑
摘要:1. Gateway 1.1 简单介绍 【网关】单体应用拆分成多个服务后,对外需要一个统一入口,解耦客户端与内部服务。「网关」的核心功能是路由转发,因此不要有耗时操作在网关上处理,让请求快速转发到后端服务上。网关还能做统一的熔断、限流、认证、日志监控等。也可以和服务注册中心完美的整合,如:Eurek 阅读全文
posted @ 2022-04-10 16:48 tree6x7 阅读(84) 评论(0) 推荐(0) 编辑
摘要:1. 微服务中的雪崩效应 https://www.cnblogs.com/rjzheng/ Service A 的流量波动很大,流量经常会突然性增加!那么在这种情况下,就算 Service A 能扛得住请求,Service B 和 Service C 未必能扛得住这突发的请求。 此时,如果 Serv 阅读全文
posted @ 2022-04-10 16:47 tree6x7 阅读(52) 评论(0) 推荐(0) 编辑
摘要:1. 引入&说明 服务消费者调用服务提供者的时候使用 RestTemplate 技术存在不便之处:① 拼接 url;② restTmplate.getForObject。这两处代码都比较模板化,能不能不让我我们来写这种模板化的东西?另外来说,拼接 url 、拼接字符串、拼接参数,很 low 还容易出 阅读全文
posted @ 2022-04-10 16:45 tree6x7 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1. 负载均衡 1.1 概述 Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端-负载均衡的工具。 简单地说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon 客户端组件提供一系列完善的配置项 阅读全文
posted @ 2022-04-10 16:44 tree6x7 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1. 单机 Eureka 构建步骤 新增模块 cloud-eureka-server-7001 编写 pom.xml<parent> <artifactId>study-cloud</artifactId> <groupId>cn.edu.nuist</groupId> <version>1.0-S 阅读全文
posted @ 2022-04-10 16:43 tree6x7 阅读(44) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩