博客园 - cartoony
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=157744
2023-11-07T00:46:00Z
cartoony
https://www.cnblogs.com/cartooon/
feed.cnblogs.com
https://www.cnblogs.com/cartooon/p/17814243.html
Redis 的三种部署模式 - cartoony
提前叠个 buff:这个文章不涉及图(画起来比较麻烦),只是记录我的胡思乱想。 redis 从单点 -> 集群总共有三个部署模式:单机模式,主从模式,哨兵模式,集群模式 单机模式 新手入门模式。单机模式意味着 Redis 是单点的,部署在一台服务器,挂了就挂了,用在本地测试还可以,但是生产环境就算了
2023-11-07T00:46:00Z
2023-11-07T00:46:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】提前叠个 buff:这个文章不涉及图(画起来比较麻烦),只是记录我的胡思乱想。 redis 从单点 -> 集群总共有三个部署模式:单机模式,主从模式,哨兵模式,集群模式 单机模式 新手入门模式。单机模式意味着 Redis 是单点的,部署在一台服务器,挂了就挂了,用在本地测试还可以,但是生产环境就算了 <a href="https://www.cnblogs.com/cartooon/p/17814243.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/17471633.html
老话新谈之缓存一致性 - cartoony
### 前言 缓存一致性常见的更新策略也比较多,如先更新数据库再更新缓存,先删缓存再更新数据库等等,我在理解的时候有些混乱,所以这个文章提供了一些理解上的技巧去理解缓存一致性。 ### 为什么会有缓存一致性的问题 1. 缓存与数据库是两套中间件,存在网络抖动之类的原因导致没有更新任一方的可能 2.
2023-06-10T09:31:00Z
2023-06-10T09:31:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】### 前言 缓存一致性常见的更新策略也比较多,如先更新数据库再更新缓存,先删缓存再更新数据库等等,我在理解的时候有些混乱,所以这个文章提供了一些理解上的技巧去理解缓存一致性。 ### 为什么会有缓存一致性的问题 1. 缓存与数据库是两套中间件,存在网络抖动之类的原因导致没有更新任一方的可能 2. <a href="https://www.cnblogs.com/cartooon/p/17471633.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/17365436.html
kafka 不支持读写分离的原因 - cartoony
前段时间在看 kafka 相关内容,发现 kafka “所有的”读写流量都在主 partition 上,从 partition 只负责备份数据。 那么为什么 kafka 从 partition 不跟其他中间件一样承接读流量? 读写分离的初衷 读写分离的初衷我觉得是利用读流量 & 写流量不同的特性做针
2023-04-30T08:53:00Z
2023-04-30T08:53:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前段时间在看 kafka 相关内容,发现 kafka “所有的”读写流量都在主 partition 上,从 partition 只负责备份数据。 那么为什么 kafka 从 partition 不跟其他中间件一样承接读流量? 读写分离的初衷 读写分离的初衷我觉得是利用读流量 & 写流量不同的特性做针 <a href="https://www.cnblogs.com/cartooon/p/17365436.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/16891095.html
对JVM G1的理解 - cartoony
NOTICE:本文仅记录本人对 JVM G1 的小小理解,没有详细记录每个点,若有误可指出 内存区域 G1 将堆分为各个 region,大小通过 G1HeapRegionSize 指定 region 分类 按 region 大小分 普通 region,存放大小小于普通 refion 容量的一半的对象
2022-11-14T16:45:00Z
2022-11-14T16:45:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】NOTICE:本文仅记录本人对 JVM G1 的小小理解,没有详细记录每个点,若有误可指出 内存区域 G1 将堆分为各个 region,大小通过 G1HeapRegionSize 指定 region 分类 按 region 大小分 普通 region,存放大小小于普通 refion 容量的一半的对象 <a href="https://www.cnblogs.com/cartooon/p/16891095.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/16350090.html
缓冲更新策略 - cartoony
近段时间在学习缓存相关知识的时候,看到了缓存更新策略,于是就根据自己的理解,写下这篇文章 分类 Cache Aside Read / Write Though Write Behind Cache Aside 步骤 读请求未命中缓存,取数据库数据,并回写缓存 写请求先更新数据库,再让缓存失效 优点
2022-06-06T14:55:00Z
2022-06-06T14:55:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】近段时间在学习缓存相关知识的时候,看到了缓存更新策略,于是就根据自己的理解,写下这篇文章 分类 Cache Aside Read / Write Though Write Behind Cache Aside 步骤 读请求未命中缓存,取数据库数据,并回写缓存 写请求先更新数据库,再让缓存失效 优点 <a href="https://www.cnblogs.com/cartooon/p/16350090.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/16286682.html
Linux新增swap分区 - cartoony
近段时间在服务器搭建中间件,发现物理内存不足,因为对性能要求不高,所以就求助 swap 了。 下面是 ubuntu 的 swap 构建的步骤 新建 swap 文件(/root/swapfile) dd if=/dev/zero of=/root/swapfile bs=1M count=8192 s
2022-05-18T14:37:00Z
2022-05-18T14:37:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】近段时间在服务器搭建中间件,发现物理内存不足,因为对性能要求不高,所以就求助 swap 了。 下面是 ubuntu 的 swap 构建的步骤 新建 swap 文件(/root/swapfile) dd if=/dev/zero of=/root/swapfile bs=1M count=8192 s <a href="https://www.cnblogs.com/cartooon/p/16286682.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/15978841.html
Spring 获取配置的三种方式 - cartoony
前言 最近在写框架时遇到需要根据特定配置(可能不存在)加载 bean 的需求,所以就学习了下 Spring 中如何获取配置的几种方式。 Spring 中获取配置的三种方式 通过 @Value 方式动态获取单个配置 通过 @ConfigurationProperties + 前缀方式批量获取配置 通过
2022-03-07T16:56:00Z
2022-03-07T16:56:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 最近在写框架时遇到需要根据特定配置(可能不存在)加载 bean 的需求,所以就学习了下 Spring 中如何获取配置的几种方式。 Spring 中获取配置的三种方式 通过 @Value 方式动态获取单个配置 通过 @ConfigurationProperties + 前缀方式批量获取配置 通过 <a href="https://www.cnblogs.com/cartooon/p/15978841.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/14370472.html
一致性 hash 算法理解与实现 - cartoony
前言 近段时间在了解分布式时,经常绕不开一个算法: 一致性哈希算法。于是在了解并实践这个算法后,就有了此文章。 算法间的对比 在分布式分片中,存在着几种算法: 取模,分段,一致性 hash。 取模 分段 一致性哈希 上层是否感知 是 是 否 迁移成本 高 高 低,只涉及相邻节点 单点故障影响 高 高
2021-02-03T16:07:00Z
2021-02-03T16:07:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 近段时间在了解分布式时,经常绕不开一个算法: 一致性哈希算法。于是在了解并实践这个算法后,就有了此文章。 算法间的对比 在分布式分片中,存在着几种算法: 取模,分段,一致性 hash。 取模 分段 一致性哈希 上层是否感知 是 是 否 迁移成本 高 高 低,只涉及相邻节点 单点故障影响 高 高 <a href="https://www.cnblogs.com/cartooon/p/14370472.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/13929537.html
easyopen参数无法正常传递现象解析 - cartoony
前言 近段时间在使用easyopen时,发现定义的请求体与实际参数不符时会出现参数无法正常传递的现象,于是就把easyopen的源码 clone 下来研究了一波。 easyopen 测试版本 1.16.6.1 场景复现 请求体定义如下 public class GoodsParam { @ApiDo
2020-11-04T16:23:00Z
2020-11-04T16:23:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 近段时间在使用easyopen时,发现定义的请求体与实际参数不符时会出现参数无法正常传递的现象,于是就把easyopen的源码 clone 下来研究了一波。 easyopen 测试版本 1.16.6.1 场景复现 请求体定义如下 public class GoodsParam { @ApiDo <a href="https://www.cnblogs.com/cartooon/p/13929537.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/13894174.html
Eureka服务端与客户端搭建 - cartoony
前言 这段时间在构建自己的开发工具集,避不开的就是各种中间件访问层的搭建。而 spring cloud 唯二绕不开的就是 eureka 了,所以就重复造轮子,以后忘记了也有所参考。 正文 前期准备 maven/gradle eureka 服务器搭建 新建 spring boot 空项目 这一步其实是
2020-10-28T15:12:00Z
2020-10-28T15:12:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 这段时间在构建自己的开发工具集,避不开的就是各种中间件访问层的搭建。而 spring cloud 唯二绕不开的就是 eureka 了,所以就重复造轮子,以后忘记了也有所参考。 正文 前期准备 maven/gradle eureka 服务器搭建 新建 spring boot 空项目 这一步其实是 <a href="https://www.cnblogs.com/cartooon/p/13894174.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/13664024.html
kafka数据如何被重复消费 - cartoony
近段时间学习极客时间李玥老师的后端存储实战课时,看到一个很多意思的东西:用kafka存储点击流的数据,并重复处理。在以往的使用中,kafka只是一个消息传输的载体,消息被消费后就不能再次消费。新知识与印象相冲突,于是就有了本篇文章:kafka数据如何被重复消费。 前期理论了解 首先我先去官网纠正了我
2020-09-13T15:09:00Z
2020-09-13T15:09:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】近段时间学习极客时间李玥老师的后端存储实战课时,看到一个很多意思的东西:用kafka存储点击流的数据,并重复处理。在以往的使用中,kafka只是一个消息传输的载体,消息被消费后就不能再次消费。新知识与印象相冲突,于是就有了本篇文章:kafka数据如何被重复消费。 前期理论了解 首先我先去官网纠正了我 <a href="https://www.cnblogs.com/cartooon/p/13664024.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/12046620.html
更换nginx默认端口以及配置文件位置 - cartoony
前言 近段时间在准备毕业设计的前期准备,基本确定了前后端分离的架构,于是就需要用到了nginx。 在之前nginx是放在docker上,所以没有端口更改跟配置文件配置的烦恼。但是现在是直接放在服务器上,但是跟tomcat或者apollo的端口发生了冲突,于是就动了改端口以及配置文件位置的想法。 正文
2019-12-15T15:29:00Z
2019-12-15T15:29:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 近段时间在准备毕业设计的前期准备,基本确定了前后端分离的架构,于是就需要用到了nginx。 在之前nginx是放在docker上,所以没有端口更改跟配置文件配置的烦恼。但是现在是直接放在服务器上,但是跟tomcat或者apollo的端口发生了冲突,于是就动了改端口以及配置文件位置的想法。 正文 <a href="https://www.cnblogs.com/cartooon/p/12046620.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11826159.html
Dubbo与SpringBoot的结合 - cartoony
前言 这段时间在接触分布式的内容,由于本身比较熟悉rpc的原理,所以我顺其自然地选择了 dubbo 作为我学习的框架。 看了任务清单,这篇文章应该是在6天前出来的,但是因为实习等等的一些事情耽误了,今天立下决心动笔了。 准备 必需 JAVA 环境 注册中心(我选用的是 nacos ) 非必需 mav
2019-11-09T07:27:00Z
2019-11-09T07:27:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 这段时间在接触分布式的内容,由于本身比较熟悉rpc的原理,所以我顺其自然地选择了 dubbo 作为我学习的框架。 看了任务清单,这篇文章应该是在6天前出来的,但是因为实习等等的一些事情耽误了,今天立下决心动笔了。 准备 必需 JAVA 环境 注册中心(我选用的是 nacos ) 非必需 mav <a href="https://www.cnblogs.com/cartooon/p/11826159.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11736828.html
nginx中root与alias关键字的区别 - cartoony
前言 近段时间秋招上岸了,于是每天疯狂补各种分布式基础,每天都在痛苦与快乐中度过。 在学习 nginx 的时候,遇到配置上的问题:root 与 alias 的区别,卡了大概三个小时,记录下来警醒自己不要再犯了。 正文 在使用 “/” 进行配置时,两者没有区别,一样都是在 root 或者 alias
2019-10-25T02:55:00Z
2019-10-25T02:55:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 近段时间秋招上岸了,于是每天疯狂补各种分布式基础,每天都在痛苦与快乐中度过。 在学习 nginx 的时候,遇到配置上的问题:root 与 alias 的区别,卡了大概三个小时,记录下来警醒自己不要再犯了。 正文 在使用 “/” 进行配置时,两者没有区别,一样都是在 root 或者 alias <a href="https://www.cnblogs.com/cartooon/p/11736828.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11694375.html
修改maven包本地默认位置 - cartoony
前言 这段时间上岸了,就有时间整理电脑的资料(强迫症重度患者),就向maven以及gradle的仓库位置动手了。 目的 改变maven的默认位置 步骤 修改maven的配置文件setting.xml(maven安装位置:\conf) 将localRepository的标签值修改成想要设置的目录。 复
2019-10-17T11:46:00Z
2019-10-17T11:46:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 这段时间上岸了,就有时间整理电脑的资料(强迫症重度患者),就向maven以及gradle的仓库位置动手了。 目的 改变maven的默认位置 步骤 修改maven的配置文件setting.xml(maven安装位置:\conf) 将localRepository的标签值修改成想要设置的目录。 复 <a href="https://www.cnblogs.com/cartooon/p/11694375.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11650577.html
Docker下配置nacos - cartoony
前言 近段时间在学dubbo,dubbo admin死活装不上,无论是本地还是docker,所以把目光投向了其他配置中心,我选定的是阿里新开源的nacos。 正文 拉取镜像到本地docker 新建nacos容器 其中env参数是指定容器所处环境,这里是指建立单机版的nacos。 新建数据库用于节点以
2019-10-10T13:06:00Z
2019-10-10T13:06:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 近段时间在学dubbo,dubbo admin死活装不上,无论是本地还是docker,所以把目光投向了其他配置中心,我选定的是阿里新开源的nacos。 正文 拉取镜像到本地docker 新建nacos容器 其中env参数是指定容器所处环境,这里是指建立单机版的nacos。 新建数据库用于节点以 <a href="https://www.cnblogs.com/cartooon/p/11650577.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11645033.html
JAVA的List接口的remove重载方法调用原理 - cartoony
前言 说真的,平常看源码都是自己看完自己懂,很少有写出来的冲动。 但是在写算法的时候,经常用到java中各种集合,其中也比较常用到remove方法。 remove有重载函数,分别传入参数是索引index或者数据Object(指定泛型后自动转换),如果指定泛型是其他数据类型还好,但是指定的是Integ
2019-10-09T15:11:00Z
2019-10-09T15:11:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 说真的,平常看源码都是自己看完自己懂,很少有写出来的冲动。 但是在写算法的时候,经常用到java中各种集合,其中也比较常用到remove方法。 remove有重载函数,分别传入参数是索引index或者数据Object(指定泛型后自动转换),如果指定泛型是其他数据类型还好,但是指定的是Integ <a href="https://www.cnblogs.com/cartooon/p/11645033.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11625609.html
JSON工具类的构建(后端版本) - cartoony
前言 在前后端交互的选择上,之前一直采用的是模板引擎(因为我只负责后端)。 而这次的一个算是作业吧,前后端都是我,所以就研究了一下JSON交互在java web的应用(主要是前端)。 优缺点 前后端耦合 模板引擎加载只是将jsp的交互方式移植到html上,前端文件格式改变了,但是jsp中前后端耦合的
2019-10-05T12:08:00Z
2019-10-05T12:08:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 在前后端交互的选择上,之前一直采用的是模板引擎(因为我只负责后端)。 而这次的一个算是作业吧,前后端都是我,所以就研究了一下JSON交互在java web的应用(主要是前端)。 优缺点 前后端耦合 模板引擎加载只是将jsp的交互方式移植到html上,前端文件格式改变了,但是jsp中前后端耦合的 <a href="https://www.cnblogs.com/cartooon/p/11625609.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11625380.html
JSON工具类的构建(前端版本) - cartoony
前言 在前后端交互的选择上,之前一直采用的是模板引擎(因为我只负责后端)。 而这次的一个算是作业吧,前后端都是我,所以就研究了一下JSON交互在java web的应用(主要是前端)。 优缺点 因为我是先写后端版本的,所以优缺点部分请跳转至 "JSON工具类的构建(后端版本)" 查看。 对比 因为我对
2019-10-05T10:29:00Z
2019-10-05T10:29:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 在前后端交互的选择上,之前一直采用的是模板引擎(因为我只负责后端)。 而这次的一个算是作业吧,前后端都是我,所以就研究了一下JSON交互在java web的应用(主要是前端)。 优缺点 因为我是先写后端版本的,所以优缺点部分请跳转至 "JSON工具类的构建(后端版本)" 查看。 对比 因为我对 <a href="https://www.cnblogs.com/cartooon/p/11625380.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/cartooon/p/11610655.html
Queue与Deque的区别 - cartoony
前言 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque,平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用,于是就直接官方文档好了。 正文 概念 从上图看出,Queue以及Deque都是继
2019-09-29T16:31:00Z
2019-09-29T16:31:00Z
cartoony
https://www.cnblogs.com/cartooon/
【摘要】前言 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque,平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用,于是就直接官方文档好了。 正文 概念 从上图看出,Queue以及Deque都是继 <a href="https://www.cnblogs.com/cartooon/p/11610655.html" target="_blank">阅读全文</a>