自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 MySQL学习笔记:小知识点

环境MacBook Pro备份表并重命名DROP TABLE IF EXISTS new_table;CREATE TABLE new_table LIKE old_table;INSERT INTO new_table SELECT * FROM old_table;-- 假设第三条SQL检测不通过,就把具体的字段写出来

2020-08-04 18:31:02 21 1

原创 Java流式操作中Collect收集器的源码分析

环境MacBook Projava:11前言公司封装的jar里多了下面这中方法:Collector.of(() -> { Pagination<T> pagination = new Pagination<>(); pagination.setPage(page); pagination.setSize(size);

2020-07-25 20:53:46 37

原创 阅读笔记:单体 到 微服单分布式

前言阅读了这篇文章走出微服务误区:避免从单体到分布式单体 这个笔记单体 到 微服务单体可能会有两个原因导致:1、通过共享库和网络客户端来访问分布式能力2、进程间的调用变成了远程调用 (RPC或REST)网络客户端是指分布式能力的客户端,比如:服务注册,数据库、Redis等key-value存储、MQ中间件、监控日志追踪系统、安全体系等,不是服务间通讯如RPC客户端。原因一、解决办法:1、物理隔离来解耦:在微服务和分布式能力之间增加一层代理,应用和分布式能力不再进行进行直接通讯,而是通过

2020-07-09 18:46:56 57

原创 MySQL 学习笔记: 二次写

环境MacBook pro前言今天再看MySQL技术内幕第二版书时,对二次写很疑惑;明明有redo 文件,并且记录了所有的变化,而且还是物理日志;为什么在断点的情况下,还是不能恢复数据?查阅资料后,大体了解下,但是依然似懂非懂,做个笔记日志的数据格式这里给出网上说法:物理日志A. 记录完整的PageB. 记录Page中被修改的部分(page中的偏移,内容和长度逻辑日志记录在关系(表)上的一个元组操作。A. 插入一行记录。B. 修改一行记录。C. 删除一行记录。逻辑日志比起物

2020-07-08 20:18:49 57

原创 MySQL学习笔记:基础模型

环境MacBook Pro序言MySQL 技术内幕 InnoDB 存储引擎 第二版后台线程MySQL是多线程模型,因此有个多个不同的后台线程,负责处理不同的任务。Master Thread额外的内存池在 InnnoDB 存储引擎中,对内存的管理是通过一种称为内存堆的方式进行的。在对一些数据结构本身的内存进行分配时,需要从额外的内存池中进行申请,当该区域的内存不够时,会从缓存池中进行申请。例如,分配了缓冲池(innodb_buffer_pool),但是每个缓冲池中的帧缓冲(frame

2020-06-22 19:23:00 70

原创 MongoDB 一个page的生命周期

环境MacBook Pro前言在MongoDB中文社区看到一篇文章时,感觉文章里面的图画的不太对,所以自己又重新画了下。是关于MongoDB中一个page的生命周期的图:讲解:1、从磁盘起点那里开始,数据从磁盘读取到内存(page in memory)2、数据在内存中被修改,此时该page变成了一个脏的page;其将会被reconcile调和????page updated in memory)3、修改的数据被reconcile后,将会交给evict线程做磁盘写入和丢去处理4、evic

2020-06-11 20:37:19 92

原创 JCTree方法说明

环境MacBook ProJava:1.8前言想弄懂抽象语法树,还得明白相关方法;想要利用自定义注解写方法,就是在重载方法visitClassDef中,利用jcClassDecl.defs.prepend(),把新方法加入到源代码中。如何写新方法呢?① 生成表达式 — 其实就是方法体的内容例如:public void getPerson(String name) { this.name = name;}例子中,this.name = name;就是表达式;② 生成方法体;

2020-06-04 21:18:15 172

原创 JMH 微基准测试套件

环境MacBook ProJava 1.8前言无意中看到JMH – 用来测试方法性能的东东。好吧,我就了解下~ 未来说不定用得到。JMH名字就是标题上名称:Java 微基准测试套件。英文名叫:Java Microbenchmark HarnessJMHJava9中作为JDK的一部分已经引入了;但是我是Java8,又是gradle项目;需要引入Open-jdk中相应的依赖才行。build.gradle在 build.gradle 文件中添加: compile group: 'o

2020-06-03 20:19:13 118

原创 自定义注解处理器debug调试的配置

环境MacBook ProJava:1.8+前言上篇已经讲解了如何写个简单的自定义注解,但是开发,肯定需要打断点调试的。编译阶段该如何启动断点呢?步骤一找到gradle家目录:我的:/Users/yutao/.gradleyutaodeMacBook-Pro:.gradle yutao$ pwd/Users/yutao/.gradleyutaodeMacBook-Pro:.gradle yutao$ lltotal 32drwxr-xr-x 11 yutao staff

2020-05-11 19:08:25 304

原创 Java自定义注解入门之源码编译阶段

环境MacBook ProJava:1.8gradle:5.5.1前言公司封装了一个@slf4j,用于日志打印;最近研究了下这个注解,了解到了AST,抽象树这个概念;明白了lombok这样的插件也是利用这个技术来实现的;在研究过程中,被下面这个错卡了很久:错误: 程序包com.sun.source.tree不存在import com.sun.source.tree.Tree;特意记录下;抽象语法树 AST自己的话:用代码去描述代码的结构编程语言有很多,但是基本都是:类型

2020-05-09 19:44:04 112

原创 skywalking7 + elasticsearch7 搭建性能监视工具单机版

环境MacBook ProJava:1.8skywalking:7.0.0elasticsearch:7.6.2前言公司有一套查看日志的工具,基于kibana+es搭建的日志系统,但是,在微服务中,某次请求,会涉及多个微服务的调用,公司使用的是SDK去调服务的,当请求异常时,只能根据相应的请求URL去不断搜索日志。skywalking的作用就是可以已更直观的界面,已请求链的方式去...

2020-04-17 14:21:03 3545

原创 SpringBoot学习笔记:@Autowired

环境MacBook projava 8springboot 2.0+前言学习笔记@Autowired今天参考Spring基础(2):放弃XML,走向注解,这篇文章温习spring时,对@Autowired注入方式产生了疑惑。因为我写了一个如下类:package com.supper.javaconfig;import org.springframework.beans.fa...

2020-04-13 18:55:50 108

原创 SpringBoot学习笔记:@ComponentScan

环境MacBook projava 8springboot 2.0+前言学习笔记@ComponentScan默认扫描范围是启动程序XxxApplication. java所在目录及其下的所有子包。项目里有段这样的代码,很是好奇:@SpringBootApplication@ComponentScan("com.xingren")@EnableCachingpublic cl...

2020-04-13 18:30:40 94

原创 注解开发学习笔记

前言因为之前玩play framework缘故,对springboot不是很了解;注解我存在很多疑惑:① 在springboot中自定义的注解如何才能生效使用② Lombok 这种注解插件是怎么改变生成的代码的Lombok插件今天网上找了一篇手撸Lombok之后,算是明白了疑惑②=-=-=-=-=-=-=-=-=-=-=-=-=-=-以下内容为转载内容-=-=-=-=-=-=-=-=...

2020-04-11 20:01:03 47

原创 Git学习笔记:cherry-pick

环境MacBook ProGit:2.21.0前言今天在写完一个需求时,因为这个需求时日常开发,所以应该放到日常分支上去,我放到了迭代开发的分支上了;想起好像可以使用cherry-pick命令来解决这个问题,今天试了下,很好用。正文假设 两个分支 A 和 B 。A : 某次需求的迭代分支,这次需求不知道什么时候上线B:日常分支,可能下周,或者本周就要上线在A分支上执行git...

2020-04-10 11:58:13 85

原创 springboot学习笔记:设置Redis缓存时间

环境MacBook ProIntellij IDEA前言在使用注解@Cacheable时,不能设置缓存时间,使用起来不是很爽,稍微研究了一下;配置因为其不支持设置缓存时间,所以得通过RedisCacheManager的方式来设置/** * @author yutao * @since 2020/3/31 7:03 下午 */@EnableCaching@EnableCon...

2020-04-01 19:02:36 156

原创 MySQL学习笔记:普通查询、流式查询和游标查询的理解

前言今天因为公司业务原因,使用了游标查询,只是感觉很奇怪,我以为MySQL和mongodb一样,默认就是游标查询,网上查询资料了解时还发现了流式查询。这篇,其实就是个人笔记,毕竟MySQL出来已经很久很久了,网上资料一大堆。相比MySQL,我本人更擅长用mongodb,因为用了它三年。普通查询普通查询,将查询后的结果集,全部塞给客户端;量大的话,就可能报OOM 内存溢出。流式查询流...

2020-03-10 23:12:32 440

原创 数据结构与算法之美读后感

环境前言均摊时间复杂度:应用场景(自己的话):在对一个数据结构进行连续操作时,如果大部分情况都是O(1),只有少部分情况是O(n)时,就可以使用均摊分析法。即将O(n)的情况,均摊到O(1)上。原话:对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析...

2020-03-10 19:37:03 96

原创 gradle学习笔记:解决传递依赖问题

环境MacBook ProIntellij IDEAjava:1.8前言昨天在启动某个项目的时候,一直起不来。原因是某个类找不到,但是这个类,是传递依赖引进来的。项目并没有,具体点,是SDK引进来的。因为是微服务,所以项目里有很多SDK,它们引入这个类的jar包版本不一致,有些SDK需要这个类,但是版本也更高些。错误信息Caused by: java.lang.NoClassDe...

2020-03-03 12:18:20 244

原创 WireMock与契约测试学习笔记:磕磕绊绊mock测试初体验

环境MacBook proIntellij IDEA 2019.2java 8前言我负责的一个项目呢,契约测试曾经调通过一次,但是最近CI报了mockTest任务执行异常。。。自此,开始了我的两天磕磕碰碰的旅程。可以说我对WireMock是一点知识储备都没有,这两天就是参照公司的其他项目各种对比,然后不断调试,现在想想真是浪费了很多时间,因为当知道原因后,真的菜啊~错误当时我一...

2020-02-20 19:33:48 250

原创 微服务学习笔记:基本概念

环境MacBook Pro概念提出者的论述

2020-02-14 17:19:28 60

原创 Zookeeper学习笔记:实现分布式锁

环境MacBook Pro锁的基本概念排它锁:永远只能一个人获得。基于Zookeeper实现分布式锁

2020-02-08 21:04:07 42

原创 Postman 上传文件

环境Postmanmacbook pro前言在做导入导出时,导出好办,直接使用浏览器就可以了,但是导入,如果我想本地测试就麻烦了,一开始我是叫一个前端同事,帮忙写了一个页面。但是他写的这个页面,需要nodejs支持,也就是需要先启动一个服务,端口好像是5000,时间长了,我就忘了怎么启动,毕竟是前端的东西。今天再次研究下postman如何上传文件,本地调试,终于被我整出来了。错误...

2020-02-06 18:01:08 347

原创 MySQL学习笔记:2038和1970年份问题

环境MySQL:5.1.45前言今天遇到了这么一个和时间有关的bug,纠结了很久。表中时间类型为:TIMESTAMP类型错误如下:主要错误信息:Data truncation: Incorrect datetime value: '2038-12-31 00:00:00.0' for column正文查询资料后,才知道,原来:当 timestamp 存储的时间大于 ‘20...

2020-02-06 16:01:31 396

原创 ZooKeeper学习笔记:简单入门

环境macbook prozookeeper:3.5.5下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/下载带bin结尾的文件,否则 就是源码。安装解压到相应的路径,配置好环境变量就可以了。注意点常用命令的使用使用zkCli.sh命令连接客户端后,常用的如下命令:查看节点:(查看相应路径的子节点)# l...

2020-01-28 15:13:47 81

原创 Error:Kotlin: Output directory not specified for Module 'xxx' production

环境Inteijj IDEA : 2019.2前言今天遇到的问题,就是点击IDEA编译(就是那个小锤头)时,报了标题那个错误。这个问题,其实就是,IDEA编译完项目后,生成的class文件,应该存到哪里?没有指定这个路径的话,就报了如题的错误。解决办法路径:file -> ‘Project structure…’ 再左侧的Project Setting -> Projec...

2020-01-14 16:07:05 2968

原创 Java8学习笔记:排序

环境Java8数据准备非完整代码:List<Map<String, Object>> result = new ArrayList<>();map1.put("created", null);map2.put("created", 1578394193000);map3.put("created", 1578394183000);map4.put...

2020-01-13 20:33:15 48

原创 本地搭建apollo配置中心

环境window10虚拟机:VMware Pro 12 centos7 、ubuntu16.04CRT: 8mysql:5.6准备工作虚拟机要准备好,我准备了两个centos7和一个ubuntu 16.04window10 中装好MySQL;下载两个SQL:apolloportaldb.sqlapolloconfigdb.sql执行上面SQL,创建好表;apollopor...

2020-01-13 00:29:11 434

原创 Centos7卸载自带的OpenJDK

环境window10虚拟机:VMware Pro 12centos7步骤一、先查看openJDK的路径# 执行命令[yutao@localhost ~]$ rpm -qa | grep javatzdata-java-2016g-2.el7.noarchjava-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64java-1.7.0-openjdk-...

2020-01-12 21:29:49 107

原创 window10代理总是自动打开的解决办法

环境window10电脑:联想拯救者前言这段时间,window10的代理服务器总是自动打开:解决办法网上有很多种解决办法。但是大部分都不行。网上比较多的解决办法是:通过注册表来解决我的不行具体是说,打开注册表:win键 + R输入:regedit在左边路径中HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Window...

2020-01-11 15:16:46 8276

原创 MacBook Pro 卸载node

执行命令:sudo npm uninstall npm -g 删除残留文件sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*sudo rm -rf /usr/local/include/nodesudo rm -rf /Users/yutao/.npm# /...

2020-01-10 11:00:32 71

原创 fatal/ refusing to merge unrelated histories.md

环境MacBook ProGit: 2.21.0前言在玩Hugo的最后一步时,因为我的GitHub以前就有代码了,所以我先执行了:git rm -rf --cache *之后,再按照Hugo网上的教程去推送代码时,遇到了如下的错误:yutaodeMacBook-Pro:public yutao$ git push -u origin master To github.com:b3...

2020-01-10 10:58:27 95

原创 hugo部署到Githut Pages

环境MacBook ProGit:2.21Huxo:v0.62.2安装Hugo① MacBook 推荐使用:brew install hugo② 其他环境,稍微麻烦些:需要安装Go 1.3+ (Go 1.4+ on Windows)、Mercurial和 Git。设置好 GOPATH 环境变量,获取源码并编译:$ export GOPATH=$HOME/go$ go get ...

2020-01-09 17:27:59 138

原创 hexo、git、nodejs的安装和hexo多台电脑使用问题

安装git大体的安装步骤如下:①、获取github最新的Git安装包下载链接,进入Linux服务器,执行下载,命令为: wget https://github.com/git/git/archive/v2.17.0.tar.gz ;②、压缩包解压,命令为: tar -zxvf v2.17.0.tar.gz ;③、安装编译源码所需依赖,命令为: yum install curl-devel ...

2020-01-09 00:46:30 218

原创 linux 给 用户 授予sudo权限

环境window10虚拟机:VMware workstation 12CRT前言这个命令 网上有很多教程,但是我总是忘记,而且我个人喜欢先搜索自己的博文,再去百度,再去Google。正文步骤一、切换root用户su root# 再输入root密码步骤二、修改文件权限这个文件,就连root都是只读的。所以要先修改权限。chmod u+w /etc/sudoers步骤三...

2020-01-05 22:23:42 80

原创 虚拟机中的CentOS 7设置固定IP连接最理想的配置

环境window 10前言1、笔记本主机IP为设置自动获取,不管什么情况下,不受虚拟机影响,只要连接外网就可以正常上网;2、只要笔记本主机可以正常访问外网,启动虚拟机中的CentOS 7系统就可以正常访问外网,无需再进行任何设置;3、虚拟机设置为固定IP,不管主机在什么网络环境下,是断网环境,还是连接任何网段访问外网的环境下,虚拟机的IP都固定不变,而且使用终端连接,始终不变,正常连接;...

2020-01-05 21:16:22 86

原创 记忆力:魔方基础教程

环境window10前言今天元旦,闲着没事,又把魔方研究了一遍。几个月前在魔方小站看来视频,但是后面几个公式挺复杂的,没记住。今天又在B站看其他人的视频,又学到了一些好记得公式,研究并加以对比。然后自己总结了一下,毕竟适合我的公式。打底和地面角块上顺下逆 多用几次就出来了第二层 中间层棱角公式鸟杰的方法: 共9个步骤:公式1、手法:竖线放右手边上顺上顺 上 逆下逆下 和 ...

2020-01-01 23:41:19 71

原创 个人总结:如何保证消息的顺序性和分布式的本质?

环境MacBook Pro前言今天读了如下文章,产生了一些感想和总结;正文对顺序有严格要求的话,真正能保证顺序的是一个队列让一个线程去消费。而且还必须保证数据足够分散。不然都跑到一个队列里,一个线程来消费的话,这样吞吐量就很小。而如何去分散数据到不同的队列中得根据具体业务来。拿股票来说,委托为 股票、期货,这种就没必要公用一个队列(queue)了,而是股票一个队列、期货一个队列...

2019-12-31 17:37:42 101

原创 Bad return type in method reference:cannot convert java.util.function.Predicate<XXX> to boolean

环境Java:1.8Inteijj IDEA:2019.2前言今天在优化代码时,遇到了如题的错误,一下没有反应过来,磋磨了2、3个小时,才悟了过来。特意做个笔记。代码public static Predicate&lt;ProductDTO&gt; excludeByMinorCategoryId() { return productDTO -&gt; { boo...

2019-12-23 21:11:55 768

原创 springboot学习笔记:引入springboot

环境MacBook Projava:1.8gradle:5.5.1IntelliJ IDEA : 2019.2前言翻译官网用springboot来构建一个应用程序用gradle来构建首先,我们要设置一个基本脚本。在使用Spring构建应用程序时,可以使用任何喜欢的构建系统,这里是两个常用构建工具的地址:gradle和maven;如果这两个构建工具都不熟悉的话,可以参考:Bui...

2019-12-05 18:19:52 73

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