自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cartoon_的博客

do what I like,love who I love 个人博客:https://cartoonyu.github.io/cartoon-blog/

  • 博客(44)
  • 收藏
  • 关注

原创 Redis 的三种部署模式

提前叠个 buff:这个文章不涉及图(画起来比较麻烦),只是记录我的胡思乱想。redis 从单点 -> 集群总共有三个部署模式:单机模式,主从模式,哨兵模式,集群模式。

2023-11-07 08:44:41 179

原创 老话新谈之缓存一致性

缓存一致性常见的更新策略也比较多,如先更新数据库再更新缓存,先删缓存再更新数据库等等,我在理解的时候有些混乱,所以这个文章提供了一些理解上的技巧去理解缓存一致性。

2023-06-10 17:32:15 697

原创 kafka 不支持读写分离的原因

从业务特征,读写分离,kafka 的架构分析kafka 不支持读写分离 & 不需要支持读写分离的原因

2023-04-30 16:56:02 584

原创 对 volatile 的理解

对 volatile 关键字的小小理解,没有详细记录每个点,从底层实现到上层应用,想要搞清楚 volatile 方方面面

2023-02-10 08:53:05 229

原创 对JVM G1的理解

对 jvm G1 的一点小小的理解

2022-11-15 00:42:16 172

原创 缓存更新策略

缓存更新的三种策略

2022-06-06 22:53:53 152

原创 Linux新增swap分区

近段时间在服务器搭建中间件,发现物理内存不足,因为对性能要求不高,所以就求助 swap 了。下面是 ubuntu 的 swap 构建的步骤新建 swap 文件(/root/swapfile)dd if=/dev/zero of=/root/swapfile bs=1M count=8192swap 文件位置:/root/swapfileswap 文件大小:bs(文件块)* count(块数)格式化 swapmkswap /root/swapfile启动 swapswapo

2022-05-18 22:35:42 152

原创 Spring 获取配置的三种方式

前言最近在写框架时遇到需要根据特定配置(可能不存在)加载 bean 的需求,所以就学习了下 Spring 中如何获取配置的几种方式。Spring 中获取配置的三种方式通过 @Value 方式动态获取单个配置通过 @ConfigurationProperties + 前缀方式批量获取配置通过 Environment 动态获取单个配置通过 @Value 动态获取单个配置作用可修饰到任一变量获取,使用较灵活优点使用简单,且使用关联的链路较短缺点配置名不能被有

2022-03-08 00:55:13 4492

原创 一致性 hash 算法理解与实现

前言近段时间在了解分布式时,经常绕不开一个算法: 一致性哈希算法。于是在了解并实践这个算法后,就有了此文章。算法间的对比在分布式分片中,存在着几种算法: 取模,分段,一致性 hash。取模分段一致性哈希上层是否感知是是否迁移成本高高低,只涉及相邻节点单点故障影响高高低,只影响相邻节点算法复杂度低低高热点数据存在存在存在一致性哈希主要解决问题从上述对比可知,一致性哈希主要降低节点上下线中带来的数据迁移成本,同时节点

2021-02-04 00:09:44 650

原创 easyopen 参数无法正常传递现象解析

前言近段时间在使用easyopen时,发现定义的请求体与实际参数不符时会出现参数无法正常传递的现象,于是就把easyopen的源码 clone 下来研究了一波。easyopen 测试版本1.16.6.1场景复现请求体定义如下public class GoodsParam { @ApiDocField(description = "商品名称", required = true, example = "iphoneX", name = "goods") private S

2020-11-05 00:19:56 549

原创 Eureka服务端与客户端搭建

前言这段时间在构建自己的开发工具集,避不开的就是各种中间件访问层的搭建。而 spring cloud 唯二绕不开的就是 eureka 了,所以就重复造轮子,以后忘记了也有所参考。正文前期准备maven/gradleeureka 服务器搭建新建 spring boot 空项目这一步其实是非必要的,你也可以新建 maven/gradle 空项目或者普通的 web项目, 只是 spring boot 的自动配置比较方便。修改 pom.xml 或者 build.gradle 文件(此处示

2020-10-28 23:06:55 533

原创 kafka数据如何被重复消费

近段时间学习极客时间李玥老师的后端存储实战课时,看到一个很多意思的东西:用kafka存储点击流的数据,并重复处理。在以往的使用中,kafka只是一个消息传输的载体,消息被消费后就不能再次消费。新知识与印象相冲突,于是就有了本篇文章:kafka数据如何被重复消费。前期理论了解首先我先去官网纠正了我对kafka的整体了解。官网对kafka的描述是:一个分布式流平台。怪自己的学艺不精。其次,我重新看了一下kafka消费者的消费过程:kafka首先通过push/poll(默认为poll)获取消息,接收消息

2020-09-13 23:03:03 2014

原创 更换nginx默认端口以及配置文件位置

前言近段时间在准备毕业设计的前期准备,基本确定了前后端分离的架构,于是就需要用到了nginx。在之前nginx是放在docker上,所以没有端口更改跟配置文件配置的烦恼。但是现在是直接放在服务器上,但是跟tomcat或者apollo的端口发生了冲突,于是就动了改端口以及配置文件位置的想法。正文nginx在linux上的安装sudo apt-get install nginxnginx...

2019-12-15 23:27:41 1916

原创 Dubbo与SpringBoot的结合

前言这段时间在接触分布式的内容,因为公司的技术栈是 dubbo ,所以我顺其自然地选择了 dubbo 作为我学习的框架。看了任务清单,这篇文章应该是在6天前出来的,但是因为实习等等的一些事情耽误了,今天立下决心动笔了。准备必需JAVA 环境注册中心(我选用的是 nacos )非必需Mavendockeridea(这个应该是必需的?当然也可以用记事本(滑稽.jpg))正文...

2019-11-09 15:27:16 209

原创 nginx中root与alias关键字的区别

前言近段时间秋招上岸了,于是每天疯狂补各种分布式基础,每天都在痛苦与快乐中度过。在学习 nginx 的时候,遇到配置上的问题:root 与 alias 的区别,卡了大概三个小时,记录下来警醒自己不要再犯了。正文在使用 “/” 进行配置时,两者没有区别,一样都是在 root 或者 alias 指定的路径寻找文件,所以以下的过程与结果都跟此无关。测试用例的构建location /sta...

2019-10-25 10:51:16 305

原创 修改maven包本地默认位置

前言这段时间上岸了,就有时间整理电脑的资料(强迫症重度患者),就向maven以及gradle的仓库位置动手了。目的改变maven的默认位置步骤修改maven的配置文件setting.xml(maven安装位置:\conf)将localRepository的标签值修改成想要设置的目录。复制修改后的setting.xml到仓库所在位置并重启(非必须)修改idea中mave...

2019-10-17 19:48:11 641

原创 Docker下配置nacos

前言近段时间在学dubbo,dubbo-admin死活装不上,无论是本地还是docker,所以把目光投向了其他配置中心,我选定的是阿里新开源的nacos。正文拉取镜像到本地dockerdocker pull nacos/nacos-server新建nacos容器docker run --env MODE=standalone --name nacos -d -p 8...

2019-10-10 21:06:08 2510

原创 JAVA的List接口的remove重载方法调用原理

前言说真的,平常看源码都是自己看完自己懂,很少有写出来的冲动。但是在写算法的时候,经常用到java中各种集合,其中也比较常用到remove方法。remove有重载函数,分别传入参数是索引index或者数据Object(指定泛型后自动转换),如果指定泛型是其他数据类型还好,但是指定的是Integer或者是int的话,或者就有点懵了。这曾经也困惑过我,所以我就唯有用实践解惑了。测试类设计测试类...

2019-10-09 23:09:37 988

原创 JSON工具类的构建(后端版本)

前言在前后端交互的选择上,之前一直采用的是模板引擎(因为我只负责后端)。而这次的一个算是作业吧,前后端都是我,所以就研究了一下JSON交互在java web的应用(主要是前端)。优缺点前后端耦合模板引擎加载只是将jsp的交互方式移植到html上,前端文件格式改变了,但是jsp中前后端耦合的缺点没有改变。json交互中,数据通过js/jquery动态加载在页面上,数据与页面进行分离...

2019-10-05 20:10:06 206

原创 JSON工具类的构建(前端版本)

前言在前后端交互的选择上,之前一直采用的是模板引擎(因为我只负责后端)。而这次的一个算是作业吧,前后端都是我,所以就研究了一下JSON交互在java web的应用(主要是前端)。优缺点因为我是先写后端版本的,所以优缺点部分请跳转至JSON工具类的构建(后端版本)查看。对比因为我对js也是几天速成系列,所以框架型的jq以及ajax也是处于概念上的理解以及皮毛型的应用。我所认识的主流的前...

2019-10-05 18:30:12 136

原创 Queue与Deque的区别

前言​ 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque,平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用,于是就直接官方文档好了。正文概念从上图看出,Queue以及Deque都是继承于Collection,Deque是Queue的子接口。下面来看一下官方文档的解释。A l...

2019-09-29 22:02:06 9679 2

原创 >>与>>>的区别

前序在看HashMap源码的时候,看到HashMap的hash函数里面有用到>>>的运算符,之前经常在除2操作用到>>运算符,但是还是第一次看到>>>,于是就来记录一下。情景复现hashMap的hash函数源码因为里面主要是先获取key的hashCode,这是jvm生成的,所以我单独用1模拟hashCodeSystem.out.print...

2019-09-26 01:37:41 1205

原创 For与while时间的对比

    本文首发于cartoon的博客    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/java/for%E4%B8%8Ewhile%E6%97%B6%E9%97%B4%E7%9A%84%E5%AF%B9%E6%AF%94/  &...

2019-06-24 18:21:15 5675 1

原创 Object的成员方法以及作用

    本文首发于cartoon的博客**    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/java/object%E7%9A%84%E6%88%90%E5%91%98%E6%96%B9%E6%B3%95%E4%BB%A5%E5%8F%8A%E4%BD...

2019-06-24 16:58:03 235

原创 Java实现对象克隆的方法

本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/java/java%E5%AE%9E%E7%8E%B0%E5%85%8B%E9%9A%86%E7%9A%84%E6%96%B9%E6%B3%95/前言这也是昨天的面试题。当时只说了深拷贝以及浅拷贝,面试...

2019-06-20 17:27:26 2426

原创 Collections工具类的概述以及用法

    本文首发于cartoon的博客    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/java/collections/前言就在刚刚面试,被问到了Collections工具类有什么功能,我懵了,很少涉及到Collections这个工具类,只答了对...

2019-06-19 21:39:42 260

原创 JAVA遍历机制的性能的比较

    本文首发于cartoon的博客    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/java/java%E9%81%8D%E5%8E%86%E6%9C%BA%E5%88%B6%E7%9A%84%E6%80%A7%E8%83%BD%E6%AF%94%...

2019-06-09 15:54:27 443

原创 4种极大提升学习效率的工具

    本文首发于cartoon的博客    转载请注明出处:https://cartoonyu.github.io/cartoon-blog/post/assorted/4%E7%A7%8D%E6%9E%81%E5%A4%A7%E6%8F%90%E5%8D%87%E5%AD%A6%E4%B9%A0%E6%95%88...

2019-05-18 16:13:35 987

原创 MySQL在win10以及linux下数据库的备份以及还原

MySQL在win环境或者linux下的命令都是一样的,只是路径不一致而已MySQL的备份(非必须)命令行进入MySQL的bin目录输入命令:mysqldump -u userName -p userPassword > filePath and fileNameMySQL的还原(非必须)命令行进入MySQL的bin目录登录MySQL:mysql -u 用户名 -p 密码...

2019-04-24 10:44:37 492

原创 gitnore文件修改生效方法

当修改gitnore文件后,常常出现文件不生效的情况,是因为之前的修改已经提交到暂存区上了。解决方法git add . //防止已有修改还没到暂存区的情况git rm -r --cached . //清除暂存区记录git add . //提交修改记录到暂存区中执行到第三步即能使gitnore文件生效,后续操作会按照gitnore规则执行...

2019-04-05 10:57:15 214

原创 &与&&,|与||的区别

今天在做leetcode的时候,遇到了运算符的不同而导致结果不一致的问题。记录一下提醒自己中文名称与英文名称&:按位与(Bitwise and)&&:逻辑与(logical and)|:按位或(Bitwise or)||:逻辑或(logical or)区别若第一个条件就可以决定表达式的值,逻辑运算符不会继续检查后续条件,而位运算符则会全部检查。...

2019-03-01 22:30:53 170

原创 Stack,ArrayDeque,LinkedList的区别

       这段时间把疯狂JAVA再看了一遍,发现Stack,ArrayDeque,LinkedList都可以作为栈使用,所以就稍微从性能以及实现的细节对比这三者的区别。类继承树       由继承树看出,三者都是Collection的间接实现类。&

2019-02-27 21:49:28 21592 7

原创 JDK在Win10与Ubuntu下的安装与配置

近段时间把自己电脑(win)、虚拟机(Ubuntu)以及阿里云(ubuntu)都重置了一遍,三个地方都有用到JDK,不想之后找教程找的那么麻烦。所以就自己总结一遍,一次性把轮子造好。 环境Win10 1803 HomeUbuntu 16.04.3Ubuntu 18.04.1其中服务器与虚拟机配置方法一致,只是目录不同,就归成Ubuntu一类好了。 一.Windows环...

2018-09-28 00:03:28 545

原创 Ubuntu下安装vim以及常用命令

众所周知,Linux与Win之间的区别是Linux需要大量的命令行操作,而有些配置文件也是在命令行中输入的。这些操作就需要编辑器的帮助了。我接触Ubuntu的时间不长,碰到过三个编辑器gedit //好像是叫这个名字vi //Linux和Unix上最基本的文本编辑器vim //比vi更好用的文本编辑器一:安装vim终端内输入sudo apt-...

2018-09-27 23:20:19 576

原创 MySQL在Win10与Ubuntu下的安装与配置

近段时间把自己电脑(win)、虚拟机(Ubuntu)以及阿里云(ubuntu)都重置了一遍,其中本机以及阿里云都有用到MySQL,不想之后找教程找的那么麻烦。所以就自己总结一遍,一次性把轮子造好。环境Win10 1803 HomeUbuntu 16.04.3一:Windows环境下安装1.下载MySQL压缩包https://dev.mysql.com/downloads...

2018-09-27 23:01:48 1046 3

原创 ubuntu终端内打开文件管理器

近段时间在ubuntu中搭建jdk并在jdk的基础上建设Oracle数据库,遇到一个问题:常规GUI不能把文件移到usr目录下,提示permission denied。取了一个巧,利用终端获取管理员权限后移动文件。方法:终端输入sudo nautilus然后新创建的窗口默认带有管理员权限,问题就解决了。...

2018-09-27 21:40:31 10930

原创 java集合--Iterator接口

       上一篇文章中我在集合元素的遍历中已经有涉及到Iterator的普遍使用方法,但是并没有对此进行解释。       其实,Iterator来源于java.util包,也是属于Java集合框架中的一份子,不同于Collection(存放单一数据)和Map(存放具有映射关系的数据),Iterator主要用于集合元素的迭代输出,所以它的对象又被称为迭代器。        Iter...

2018-08-18 00:06:09 302

原创 更改eclipse中jsp默认编码格式为UTF-8

       近段时间一直在学java三大框架,遇到了一个问题:eclipse中jsp默认编码格式不是UTF-8,导致页面显示中文出现乱码,每次单独修改过于麻烦。        解决方案:window--Preferences--Web--JSP File--在encoding的下拉列表选择UTF-8。...

2018-08-15 11:06:18 2700

原创 java集合--Collection接口

       在概述里面也说过:Collection是java集合两大接口之一,旗下有三大子接口:Set(元素不能重复,且无序)、Queue、List(元素可重复,且有序)。        Collection来源于java.util包,主要方法包括:主要方法 作用 boolean add(Object o) 将传入的Object对象添加到容器中,添加后方法返回true ...

2018-08-14 00:19:32 230

原创 解决eclipse oxygen+java 10+Tomcat的Could not create the Java virtual machine问题

       这个坑我遇到了两次了,所以就写下来以防自己再遇到。       第一次没看conscole,所以就不知道具体原因是什么。       第二次留意了conscoleDjava.endorsed.dirs=D:\Tomcat 9.0\endorsed is not supported. Endorsed standards and standalone APIsin m...

2018-08-10 13:17:18 1752

空空如也

空空如也

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

TA关注的人

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