<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Morty的技术乐园]]></title><description><![CDATA[记录为更好的前行]]></description><link>https://blog.youkuaiyun.com/u014745069</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014745069]]></copyright><item><title><![CDATA[Java 函数式编程思考]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/132941648</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/132941648</guid><author>u014745069</author><pubDate>Sun, 17 Sep 2023 16:05:50 +0800</pubDate><description><![CDATA[在多路调用的场景中，通常会需要在被调用方法中使用到调用者的一些数据，传统的编程方式是直接将数据作为参数传递过去，或者通过一些业务标识用if-else的方式来实现延迟加载的要求。直接传递数据的方式，提前将数据准备好，会有性能问题，可能在被调用方法的校验逻辑执行中断，用不到数据了，浪费系统资源；而通过普通的if-else 分支，又需要将调用者注入到被依赖方，虽然实现了延迟加载，但本身形成了循环依赖，造成了高耦合，存在潜在的开发成本。]]></description><category></category></item><item><title><![CDATA[IDEA——工程项目的两种窗口开发模式]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/132940314</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/132940314</guid><author>u014745069</author><pubDate>Sun, 17 Sep 2023 12:51:28 +0800</pubDate><description><![CDATA[idea编辑器有两种窗口模式，一种是，另一种是。我个人使用较多的是，即一个微服务项目，或单体项目一个独立的idea窗口。此模式好处有两方面，一是开发者可以更专注特定的工程，不会因为工程太多产生混淆；二是在mave依赖自动刷新开启时，可以较快的打开工程，避免窗口内太多的工程刷新Maven依赖而产生卡顿。但是最近在开发多依赖项目时，在两三个项目之间切换也确实不太方便。于是使用了一下多项目窗口模式，整体感官还算不错。]]></description><category></category></item><item><title><![CDATA[快速计算两位数相乘]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/128805529</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/128805529</guid><author>u014745069</author><pubDate>Mon, 30 Jan 2023 16:59:17 +0800</pubDate><description><![CDATA[小学算术]]></description><category></category></item><item><title><![CDATA[MySQL 面试问答]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120815648</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120815648</guid><author>u014745069</author><pubDate>Mon, 18 Apr 2022 15:52:42 +0800</pubDate><description><![CDATA[导航一、什么是回表查询？如何避免回表查询？二、为什么MySQL建议使用自增主键？什么是代理主键、业务主键？三、为什么MySQL建议单表不超过2000W数据？四、MySQL自增id用完了怎么办？五、MySQL自增主键是连续的吗？
一、什么是回表查询？如何避免回表查询？
索引有两种类型，一种是基于表的主键建立的主键索引，另一种是基于普通列建立的普通索引（或二级索引）。主键索引和普通索引的查询过程和查询性能是不一样的。
普通索引的叶子节点除了索引数据本身外，仅只存储主键 id 值，而主键索引的叶子节点存储的是整条]]></description><category></category></item><item><title><![CDATA[Guava常用工具类的使用]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/123455500</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/123455500</guid><author>u014745069</author><pubDate>Sun, 13 Mar 2022 10:48:41 +0800</pubDate><description><![CDATA[Guava 常用工具类总结]]></description><category></category></item><item><title><![CDATA[Spring Cloud Alibaba —— Seata 分布式事务框架]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120633473</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120633473</guid><author>u014745069</author><pubDate>Thu, 07 Oct 2021 21:48:39 +0800</pubDate><description><![CDATA[导航一、Seata 介绍二、Seata 的工作原理2.1 三个角色2.2 工作流程三、Seata AT 工作机制3.1 一阶段3.2 二阶段四、案例演示（待补充）
一、Seata 介绍
官网：Seata 官网
Seata 是2019 年阿里巴巴中间件团队发起的开源项目，其前身是 Fescar（Fast &amp; EaSy Commit And Rollback）。其愿景是让分布式的使用像本地事务的使用一样简单、高效，并逐步解决开发者遇到的分布式事务方面的所有难题。
Seata 意为 Simple Exte]]></description><category></category></item><item><title><![CDATA[分布式事务的解决思路与方案]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120622628</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120622628</guid><author>u014745069</author><pubDate>Thu, 07 Oct 2021 10:31:10 +0800</pubDate><description><![CDATA[导航一、事务的种类与场景二、分布式事务解决方案2.1 全局事务
一、事务的种类与场景
本地事务实际上就是指数据库的事务，参考《MySQL —— 事务与隔离级别总结》
分布式事务指的是在分布式环境下，多个系统之间如何保证事务之间的原子性、一致性等问题。
例如多个系统访问同一个数据库，多个系统访问多个数据库，等等这些场景，都数据分布式事务的讨论范围。
二、分布式事务解决方案
介绍四个业界应用比较广泛的分布式解决方案：全局事务、可靠消息服务、最大努力通知、TCC事务（补偿型事务）。
2.1 全局事务

...]]></description><category></category></item><item><title><![CDATA[Spring Cloud Alibaba —— Nacos Config 配置中心]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120617242</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120617242</guid><author>u014745069</author><pubDate>Wed, 06 Oct 2021 10:58:25 +0800</pubDate><description><![CDATA[导航引言一、什么是配置中心二、常见的配置中心组件三、Nacos Config 入门四、Nacos Config 动态配置4.1 硬编码方式（默认支持动态生效）4.2 属性注入五、配置共享5.1 相同微服务不同环境间共享
引言
本文介绍 Nacos 作为注册中心的使用方法，相关文章《Spring Cloud Alibaba——Nacos实现服务治理》。
一、什么是配置中心
在微服务架构中，关于配置信息，存在一些问题。

配置文件相对分散，不好维护。
配置文件不好区分开发、测试、生产环境。
配置文件无法实时更新]]></description><category></category></item><item><title><![CDATA[Spring Cloud —— RocketMQ 的消息类型]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120606895</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120606895</guid><author>u014745069</author><pubDate>Tue, 05 Oct 2021 19:13:03 +0800</pubDate><description><![CDATA[导航引言一、普通消息1.1 可靠同步发送
引言
本文承接《Spring Cloud —— 消息队列与 RocketMQ》
RocketMQ 提供了多种场景所需的消息类型，包括普通消息、顺序消息、事务消息，本文分别针对这些消息类型予以展开介绍。
一、普通消息
普通消息分为三种发送方式：可靠同步发送、可靠异步发送、单向发送。
简言之，可靠同步发送就是消息发送方直到收到MQ的发送结果才发送下一条消息；可靠异步发送就是消息接收方暂时不关心发送结果，连续发送消息，采用消息发送回调的方式接收MQ的发送结果响应；单向发送]]></description><category></category></item><item><title><![CDATA[Spring Cloud —— 消息队列与 RocketMQ]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120596324</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120596324</guid><author>u014745069</author><pubDate>Mon, 04 Oct 2021 18:44:47 +0800</pubDate><description><![CDATA[导航一、什么是 MQ二、常见的 MQ 产品三、RocketMQ 概念与架构设计3.1 基本概念1、消息模型（Message Model）2、生产者与消费者（Producer &amp; Consumer）3、主题（Topic）4、代理服务器与名称服务（Broker Server &amp; Name Server）5、拉取式与推送式消费6、生产者组与消费者组7、集群消费与广播消费8、消息（Message）9、标签（Tag）10、顺序消息（Ordered Message）3.2 架构设计3.3 部署架构3.4]]></description><category></category></item><item><title><![CDATA[Spring Cloud —— 链路追踪技术]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120592575</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120592575</guid><author>u014745069</author><pubDate>Sun, 03 Oct 2021 16:49:16 +0800</pubDate><description><![CDATA[导航一、什么是链路追踪二、Spring Cloud Sleuth2.1 相关概念三、Sleuth 入门案例四、Zipkin 的集成4.1 Zipkin 介绍4.2 Zipkin 服务端安装4.3 Zipkin 客户端安装五、Zipkin 数据持久化5.1 MySQL 数据持久化5.2 Elasticsearch 数据持久化
一、什么是链路追踪
在大型系统的微服务化构建中，一个系统被拆分成了许多模块。这些模块负责不同的功能，组合成系统，最终可以提供丰富的功能。
在这种架构中，一次请求往往需要涉及到多个服务。这]]></description><category></category></item><item><title><![CDATA[Spring Cloud —— Gateway 服务网关]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120568501</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120568501</guid><author>u014745069</author><pubDate>Sun, 03 Oct 2021 10:32:04 +0800</pubDate><description><![CDATA[导航一、什么是服务网关二、业界常见网关组件三、Spring Cloud Gateway四、Gateway 快速入门4.1 创建 gateway 服务4.2 添加 gateway 依赖和 nacos 依赖4.3 配置路由信息4.4 测试路由转发五、Gateway 执行流程六、Gateway 断言6.1 内置路由断言工厂6.2 自定义路由断言工厂七、Gateway 过滤器7.1 局部过滤器7.1.1 内置局部过滤器7.1.2 自定义局部过滤器7.2 全局过滤器7.2.1 内置全局过滤器7.2.2 自定义全局过滤]]></description><category></category></item><item><title><![CDATA[Spring Cloud Alibaba —— Sentinel 详细使用]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120467116</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120467116</guid><author>u014745069</author><pubDate>Thu, 30 Sep 2021 16:00:57 +0800</pubDate><description><![CDATA[导航引言一、Sentinel的两个基本概念二、流控规则2.1 基本选项2.2 高级选项三、熔断(降级)规则四、热点规则五、授权规则六、系统规则
引言
Sentinel 官方文档：https://sentinelguard.io/zh-cn/docs/introduction.html
本文承接《Spring Cloud Alibaba —— Sentinel 入门》，继续深入使用 Sentinel。
本文总结自B站，黑马程序员视频《深入学习Java微服务开发(SpringCloud) 》（P21 - P32]]></description><category></category></item><item><title><![CDATA[Spring Cloud Alibaba —— Sentinel 入门]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120463885</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120463885</guid><author>u014745069</author><pubDate>Fri, 24 Sep 2021 23:39:23 +0800</pubDate><description><![CDATA[导航一、什么是Sentinel1.1 Sentinel 的优点二、整合 Sentinel 演示三、Sentinel控制台与微服务通信的原理四、Sentinel 流控演示
一、什么是Sentinel

Sentinel 是阿里开源的用于提供微服务架构容错方案的组件。它以流量作为切入点，从流量控制、熔断降级、系统负载保护 这三个主要纬度保证整体服务的稳定性。Sentinel 可分为两部分：核心库（Java 客户端） 和 控制台（dashboard）。核心库不依赖任何框架或类库，运行于所有Java运行时上。控制台]]></description><category></category></item><item><title><![CDATA[微服务架构 —— 服务雪崩与容错方案]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120445909</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120445909</guid><author>u014745069</author><pubDate>Fri, 24 Sep 2021 00:37:14 +0800</pubDate><description><![CDATA[导航一、什么是服务雪崩二、雪崩效应的三个核心原因三、容错四、业界常见容错思路五、常见容错组件
一、什么是服务雪崩
服务雪崩 指的是微服务架构中，微服务各节点之间由于网络通信异常或微服务自身故障等问题，导致请求堆积、任务堆积，消耗和占用容器线程，并由此而影响其他正常业务流程以及其他微服务节点，局部故障扩散为整体故障的一种现象，严重时可能导致整个系统瘫痪，就行“雪崩”一样。

二、雪崩效应的三个核心原因


被上游服务压垮
tomcat 在处理请求时会分配线程资源，但这个资源是有限的，默认的 tomcat 线程]]></description><category></category></item><item><title><![CDATA[jMeter 模拟 web 高并发请求]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120445667</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120445667</guid><author>u014745069</author><pubDate>Thu, 23 Sep 2021 23:51:12 +0800</pubDate><description><![CDATA[导航一、jmeter 简介与下载二、接口压测设置三、实战演示
一、jmeter 简介与下载
Apache JMeter是Apache组织开发的基于Java的压力测试工具。
最初被设计用于Web应用测试，但后来扩展到其他测试领域。JMeter 可以用于对服务器、网络或对象模拟巨大的负载，来自不同压力类别下测试它们的强度和分析整体性能。
下载路径：https://jmeter.apache.org/download_jmeter.cgi

下载完 zip 包后，解压，执行 bin 目录下的 jmeter.bat]]></description><category></category></item><item><title><![CDATA[CAP 原则与 BASE 理论]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/120256366</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/120256366</guid><author>u014745069</author><pubDate>Sun, 12 Sep 2021 23:01:22 +0800</pubDate><description><![CDATA[导航引言一、CAP 原则1.1 Consistency 一致性1.2 Available 可用性1.3 Partition tolerance 分区容错性1.4 CAP 的矛盾1.5 CAP 的组合场景二、BASE 理论2.1 基本可用2.2 软状态2.3 最终一致性2.3.1 因果一致性2.3.2 读自身所写2.3.3 会话一致性2.3.4 单调读一致性2.3.5 单调写一致性总结
引言
本文介绍CAP原则和BASE理论。二者是分布式系统中重要的参考原则及指导方针。
其中 CAP 是由加州大学的计算机科学]]></description><category></category></item><item><title><![CDATA[JVM垃圾收集器——G1]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/119988010</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/119988010</guid><author>u014745069</author><pubDate>Tue, 31 Aug 2021 21:45:45 +0800</pubDate><description><![CDATA[导航引言一、G1 介绍1.1 适用场景1.2 设计初衷1.3 关注焦点1.4 工作模式1.5 堆的逻辑结构1.6 主要收集目标1.7 停顿预测模型1.8 拷贝和压缩1.9 与 CMS 和 Parallel 收集器的比较1.10 固定停顿目标二、G1 的逻辑分区三、G1 的工作过程3.1 YGC3.2 Mixed GC
引言
本文针对 Hotspot 虚拟机的 G1 垃圾收集器进行总结和归纳，适用于JDK 8。
文章内容以 Garbage-First Garbage Collector 和 Garbage-F]]></description><category></category></item><item><title><![CDATA[常用自定义注解]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/119203362</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/119203362</guid><author>u014745069</author><pubDate>Thu, 29 Jul 2021 09:22:44 +0800</pubDate><description><![CDATA[导航一、方法计时器二、valid 参数校验的通用返回
一、方法计时器
注解类：MethodTimer
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodTimer {
}

处理器（需要AOP和spring的支持）：MethodTimerProcessor
@Slf4j
@Component
@Aspect
public class MethodTimerProcessor {
]]></description><category></category></item><item><title><![CDATA[JVM——对象的创建与内存布局]]></title><link>https://blog.youkuaiyun.com/u014745069/article/details/119060609</link><guid>https://blog.youkuaiyun.com/u014745069/article/details/119060609</guid><author>u014745069</author><pubDate>Sun, 25 Jul 2021 11:44:24 +0800</pubDate><description><![CDATA[导航一、对象的创建过程二、对象的内存布局2.1 内存布局2.2 计算对象的内存大小三、对象的定位3.1 句柄池3.2 直接指针四、对象的分配过程
一、对象的创建过程
对象，又叫实例，是 OOP 的最常用角色。
如何创建一个对象？一般都是使用 new 关键字搭配对象的构造函数：
// 基类的创建
Object obj = new Object();
// 普通用户对象的创建
User user = new User("Tom", 29);
// 服务类对象的创建
Service svic = new Serv]]></description><category></category></item></channel></rss>