自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 慕课《基于SpringCloud 微服务架构 广告系统设计与实现》总结

Spring Cloud 微服务架构设计实现广告系统(新版)

2022-03-13 16:40:48 5560

原创 Mybatis逆向工程生成tinyint 转 Integer

配置需要生成的表的时候添加columnOverride 指定javaType <table tableName="activity_base" domainObjectName="ActivityBaseDO"> <generatedKey column="activity_id" sqlStatement="Mysql" identity="true"/> <columnOverride column=

2020-07-11 08:12:45 2280

原创 《Mysql实战45讲》学习笔记 1-22

Mysql《Mysql实战45讲》1、一条sql查询语句是如何执行的Server层: 连接器,查询缓存,分析器,优化器,执行器存储引擎层: 负责数据的存储和提取 (Innodb, MyISAM,Memory)连接器 :TCP握手之后,连接器就要开始认真你的身份,这时候用的就是你输入的用户名和密码。可以通过 showprocesslist 查看连接查询缓存 :大多数情况下不要去使用查询缓存,为什么? 因为查询缓存往往弊大于利。查询缓存的失效特别频繁,只要有对一个表的更新,这个表上的所有的

2020-06-22 15:28:50 893

原创 ElasticSearch Java High level Rest Client 官方文档中文翻译 二 (search API)

ElasticSearch Java High level Rest Client 官方文档中文翻译 二 (search API) ElasticSearch Java High level Rest Client 官方文档中文翻译 二 (search API)SearchAPISearch Request可选参数构建SearchSourceBuilderBuilding queries 绑定查询Specifying Sorting 指定排序Source filtering 过滤源数据Request Hi

2020-06-01 09:15:12 1468

原创 ElasticSearch Java High level Rest Client 官方文档中文翻译(一)

ElasticSearch Java High level Rest Client 官方文档中文翻译 一纯粹记录自己在看官网的es rest high level api 时的翻译笔记,可以对照着官网文档看。Java High level Rest Client 为什么不用 spring data es ? 1. rest high level api 支持异步操作,提交请求之后直接返回 2. 更接近原生的es http请求方式 ElasticSearch Java

2020-05-29 14:39:35 3477 1

原创 springdata整合elasticsearch7.x错误NoNodeAvailableException,health check failed,es与redis的netty启动冲突的解决方法

1. NoNodeAvailableExceptiones小白 今天去用springboot data 去整合 elasticsearch的时候出现了NoNodeAvailableException。网上的说法是版本不匹配,我也遇到了这个问题。首先去查看自己es 版本号 :http://127.0.0.1:9200我的es 是7.6.0查看spring-data-elasticsearch jar包中的版本号发现底层的transport -netty4-client 的版本号是6.8.

2020-05-27 14:21:07 1070

原创 黑马Elastic stack学习笔记

百度云提取链接:https://pan.baidu.com/s/1Tu1ddEoiI8vsmf9fg7lIuw 密码:i0ls

2020-05-23 08:30:16 7399 2

原创 CopyOnWriteArrayList源码分析

介绍并发包中的并发List只有CopyOnWriteArrayList。CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行修改操作都是在底层的一个复制的数组(快照)上进行的,也就是说采用了写时复制的策略。CopyOnWriteArrayList的类图结构如下:在CopyOnWriteArrayList的类图中,每个CopyOnWriteArrayList对象里面有一个array数组用来存放具体元素,ReentrantLock独占锁对象用来保证同时只能有一个线程对arr

2020-05-20 16:15:05 201

原创 Rabbitmq消费手动提交basicNack时结合Redis实现消费重试次数

实习遇到一个场景:在rabbitmq消息确认设置为手动提交的时候,消息怎么在重试一定次数的情况下才放入死信队列。rabbitmq的配置:消费端手动应答在手动确认的条件下这些参数不太好使原以为使用如上配置消息在重试三次之后,就会放入死信队列,事实上手动提交的时候,basicNack的最后一个参数requeue = true时,消息会被无限次的放入消费队列重新消费,直至回送ACK。ch...

2020-04-28 21:02:24 6484 4

原创 SpringCloud学习笔记-SpringCloud Bus、SpringCloudStream

springcloudConfig 手动刷新的问题:假如有多个客户端3344、3366、3377每个微服务都要执行一次post请求,手动刷新可否广播,一次通知,处处生效?分布式自动刷新配置功能SpringCloud Bus 配合 SpringCloud Config可以实现配置的动态刷新1、SpringCloud Bus 消息总线1.1 基本概念Bus支持两种消息代理:Rabbit...

2020-04-23 11:10:55 1819 2

原创 SpringCloud学习笔记->Ribbon、OpenFeign、Hystrix、GateWay、SpringCloud config

一、Ribbon 负载均衡服务调用1.1 概念SpringCloud Ribbon 是基于Netflix Ribbon实现的一套 客户端负载均衡的工具简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端负载均衡算法和服务调用,Ribbon客户端组件提供一系列完善的配置项如 连接超时,超时重试等,简单来说,就是在配置文件中列出Load Balancer后面的所有机器,Ri...

2020-04-22 21:30:41 1574

原创 腾讯大连无线事业部Java实习面经

4.10 腾讯(大连)自我介绍(介绍了自己的两个项目)做一个rpc框架首要考虑是什么序列化为什么用protostuff底层通信用的是什么(netty)netty为什么这么快 (主从Reactor)NIO的是同步的嘛?(同步非阻塞) 同步体现在哪 ?为什么不用REST 而用RPC ?(Rest基于Http rpc 基于tcp)Http一定比tcp快嘛zookeeper在项目里主要...

2020-04-22 08:35:37 774 2

原创 SpringCloud学习笔记-测试项目搭建与服务注册[Eureka,Zookpeeper,Consul]

《微服务架构与SpringCloud》1.微服务架构概述微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值,每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RestFul API)。每个服务都围绕着本业务进行构建,并且能够被独立的部署到生产环境、类生产环境等,另外,应当尽量避免同一的...

2020-04-21 22:29:29 350

原创 浅析Mysql中的MVCC

binlog怎么避免从删库到跑路 – 详解 mysql binlog 的配置与使用redologmysql 异常情况下的事务安全 – 详解 mysql redolog浅析MySQL事务中的redo与undoundolog 与 MVCC史上最详尽,一文讲透 MVCC 实现原理...

2020-04-02 09:30:25 246 1

原创 《Redis设计与实现》——读书笔记之Redis集群

目录1、节点1.1 启动节点1.2 集群数据结构1.3 CLUSTER MEET命令的实现2、槽指派2.1、记录节点的槽指派信息2.2、传播节点的槽指派的信息2.3 记录集群所有槽的指派信息2.4 cluster addslots3、在集群中执行命令3.1 计算键属于哪个槽3.2 判断槽是否由当前节点处理3.3 MOVED 错误3.4 、节点数据库的实现4、重新分片4.1重新分片原理5、ASK错误...

2020-03-28 15:09:40 288

原创 《Redis设计与实现》——读书笔记之Redis Sentinel

目录Sentinel简介1.启动并初始化Sentinel1.1 初始化服务器1.2 使用sentinel专用的代码1.3 初始化sentinel状态1.4 初始化sentinel状态中的masters属性1.5 创建连向主服务的网络连接2.获取主服务器的信息3.获取从服务器的信息4. 向主服务器和从服务器发送消息5. 接受来自主服务器和从服务器的频道信息5.1 更新sentinel字典5.2 创建...

2020-03-26 17:37:38 558

原创 《Redis设计与实现》——读书笔记之Redis主从复制

目录主从复制的概念旧版主从复制同步命令传播旧版复制功能的缺陷新版主从复制部分重同步的实现复制偏移量复制积压缓冲区服务器运行IDPSYNC命令实现复制的实现主从复制的概念主从复制就是将一台Redis服务器上面的数据,复制到其他的Redis服务器,前者称为Redis主节点(master)后者称为从节点(salve)。且数据的复制是单向的,只能是从主节点到从节点。Redis支持主从同步和丛丛同步,丛...

2020-03-25 14:19:30 331

原创 《Redis设计与实现》读书笔记——Redis数据持久化之RDB、AOF

目录持久化简介RDBAOFAOF重写RDB AOF 比较与混合持久化持久化简介Redis是内存数据库,如果服务器突然宕机,那么存储在内存中的数据就会全部丢失,因此必须要有一套机制来保证Redis的数据不会因为故障丢失,这种机制就是Redis的持久化,它将内存中的数据库状态保存到磁盘中。持久化发生了什么?客户端向数据库发送写命令数据库接收到客户端的写请求数据库调用系统API将数据写入磁...

2020-03-24 10:14:13 170

原创 《Redis设计与实现》读书笔记-Redis基本数据类型底层实现原理(SDS, 渐进式rehash,zset跳跃表)

目录简单动态字符串SDS的定义SDS与C语言字符串的区别常数时间复杂度获取字符串的长度杜绝缓冲区溢出减少修改字符串时带来的内存重分配次数二进制安全兼容部分C字符串函数总结链表Hash哈希表哈希表节点字典哈希冲突哈希表的扩容与收缩渐进式rehash渐进式rehash执行期间的哈希表操作Setzset跳跃表简介为什么用跳表而不用红黑树?本质上是为了解决链表的查找问题更进一步的跳跃表redis跳跃表的实...

2020-03-23 15:00:20 327 1

原创 Netty与RPC知识点总结

这里写自定义目录标题Netty原理Netty高性能NIO服务端通信序列图NIO客户端通信序列图零拷贝Netty内存池高效的Reactor线程模型Reactor单线程模型Reactor多线程模型主从Reactor多线程模型串行无锁化NettyRPC实现概念核心流程封装RPC请求类的构成核心问题(线程暂停、消息乱序)Proto BufferNetty原理Netty是一个高性能的,异步事件驱动的NI...

2020-03-19 13:25:15 769

原创 计算机网络知识点总结(ICMP、PING、OSPF、TIMEWAIT、CLOSEWAIT、HTTPS、HTTP2.0)

概述五层模型应用层:为特定的应用程序提供数据传输服务(HTTP,DNS)数据单位是报文传输层:为进程提供通用的数据传输服务,由于应用层的协议会很多,定义通用的传输层协议就支持不断增多的应用层协议TCP:报文段UDP:用户数据报网络层:在计算机网络进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多的通信子网,网络层的任务就是选择合适的网间路由和交换节点,确保数据及时传...

2020-03-17 16:04:19 2450

原创 华为、字节跳动、腾讯等面试出现的编程题汇总

本帖记录今年春招以来我在牛客网上看到了各大公司面经里面出现的编程题,持续更新,欢迎大家补充华为面试算法题汇总Leetcode2 链表相加一个汽车工厂,实现工厂模式leetcode最长公共前缀图的最短路径算法 Djstrla找出字符串第一次只出现一次的字符最大的连续1个个数32位数据 按位进行调换一面砖墙,画一条竖线,哪里画线穿过的砖块最少。...

2020-03-12 09:09:02 1902 2

原创 剑指Offer全题解—Java版本

1.数组中重复的数字题目描述数组中重复的数字在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。解题思路首先因为要求的时间复杂度是O(n),空间复杂度是O(1),所以不能...

2020-03-01 21:52:48 704

原创 [NettyRpc]-序列化框架的选型

序列化实现方式简介序列化:将对象的状态信息转换为可存储或传输形式的过程,简言之,就是把对象转换为字节序列的过程就是对象的序列化反序列化的过程:序列化的逆过程,将字节数组反序列化回复为对象的过程就是对象的反序列化使用序列化能够帮助我们解决如下几个问题通过将对象序列化为字节数组,使得不共享内存网络的能够进行对象的传输能够将对象永久存储到存储设备解决了远程接口调用JVM之间内存无法共享的问...

2020-03-01 16:54:15 191

原创 Netty-Reactor线程模型梳理

线程模型的基本介绍不同的线程模型,对程序的性能有很大的影响。目前主要存在两种线程模型:传统阻塞I/O服务模型Reactor模式根据Reactor的数量和处理资源池的数量不同,有3种典型的实现:单Reactor单线程单Reactor多线程主从Reactor多线程Netty线程模式(Netty主要基于主从Reactor多线程模型做了一定的改进,其中主从Reactor多线程模...

2020-02-29 18:21:51 418

原创 Java-NIO、BIO笔记梳理

I/O模型Java BIO同步非阻塞,服务器模式为一个请求对应一个线程,即客户端有连接请求的时候服务器就要启动一个线程来处理请求,如果这个连接不做任何事情就会造成不必要的线程开销BIO适用于连接数目比较小而且固定的架构,这种方式对服务器资源要求比较高,因为每次都要创建线程,并发局限于应用中,JDK1.4之前的唯一选择BIO编程梳理服务端启动一个ServerSocket客户端启动...

2020-02-29 15:41:35 159

原创 Linux常用命令——Java面试必备

基本使用篇帮助命令man 帮助命令man lsman 2 mkdir man 3 printf文件及目录管理命令touch创建一个文件touch testfile.txt修改时间戳为当前时间touch testfile.txtmkdir创建一个空目录mkdir testdir递归创建多个目录mkdir -p testdir1/testdir2...

2020-02-21 12:48:56 2689 2

转载 Netty源码分析—Linux网络IO模型简介

Linux网络IO模型简介Linux的内核将所有外部设备都看做成一个文件来操作,对一个文件的读写操作也会调用到内核提供的系统命令,返回一个fd(file discriptor 文件描述符)。而对一个socket的读写也会有相应的描述符,称为socket fd(socket描述符),描述符就是一个数字,它指向内核中的一个结构体(文件路径,数据区等一些属性),根据UNIX网络编程对I/O模型的分类,...

2020-02-20 21:55:09 158

原创 Hash表的有关概念(Hash函数、Hash冲突解决方法)总结

散列表(Hash)表散列表的基本概念在线性表和树表的查找中,记录在表中的位置和记录的关键字之间不存在特定的关系,在这些表中查找记录的时候就需要进行一系列的关键字比较。这一类查找的方法是建立在比较的基础上的,查找的效率取决于比较的次数1.散列函数:将一个把查找表的关键字映射成该关键字对应的地址的函数,记为Hash(Key) = Addr这里的地址可以是数组下标,索引或者是内存的地址散列函数可...

2020-02-19 14:32:34 285

原创 一文带你全面了解树的有关知识(满二叉树、BST、AVL、B树,B+树、红黑树)

一、树的定义与基本术语树时N(N >= 0)各节点的有限集合,N = 0的时候,称为空树,在任意一颗非空的树中应该满足:有且仅有一个特定的称为根的节点当N > 1的时候,其余节点可以分为m个互不相交的有限集合T1,T2,…,Tm,其中每一个集合本身也是一颗树,并且称为根节点的子树显然树的定义是递归的,是一种递归的数据结构,树作为一种逻辑结构,同时也是一种分层的结构,具有以下...

2020-02-19 11:59:45 608

原创 手撕代码之多线程交替打印问题

参考【手撕代码】多个线程交替打印使用Lock实现public class PrintABC { private int times;//控制打印的次数 private int state; //控制当前的状态保证之间交替打印 private Lock lock = new ReentrantLock();//保证每次只能一个线程能够拿到资源 public P...

2020-02-18 14:35:07 227

原创 手撕算法之生产者与消费者模式

生产者与消费者模式生产者消费者问题是一个多线程同步的经典问题,这个问题描述了生产者线程和消费者线程共享固定大小的缓冲区的问题。生产者不断的向缓冲区添加数据,消费者不断的消费缓冲区的数据,这个问题的关键是:保证生产者在缓冲区满的时候不再向缓冲区添加数据,消费者在缓冲区空的时候也不会的时候消费缓冲区数据解决思路:生产者不断的生产,直到缓冲区满的时候,阻塞生产者线程,缓冲区不满的时候,继续生产...

2020-02-18 13:14:02 684 1

原创 手撕算法之单例模式详解

单例模式单例模式保证了系统内存只存在一个对象,节省了系统的资源,对于一些需要频繁创建销毁的对象,使用单例模式可以更好地提高系统的性能当想要实例化一个单列对象的时候,必须要记住使用相应的获取对象的方法,而不是使用new单例模式的使用场景:需要频繁的创建和销毁的对象或者创建对象时消耗的资源过多(重量级对象),但又经常使用的对象,工具类对象,频繁访问数据库或文件的对象(数据源,session工厂...

2020-02-18 11:59:00 456

原创 Leetcode分类刷算法之位运算专题

Leetcode位运算专题1. 颠倒二进制位190. 颠倒二进制位用一个变量res去存储结果,依次得到要转换数字的低位,然后一次保存到res中,es每得到一位之后所以腾出位置保存下一位原数字 1011 ,res = 0res 左移一位,res = 0,得到 1011 的最低位 1 加过来, res = 11011 右移一位变为 101 res = 1 左移一位,res =...

2020-02-08 15:00:57 169

原创 牛客高级项目课之牛客讨论区——项目总结

#牛客讨论区项目总结本项目是基于牛客高级课的关于牛客讨论区的项目,项目的技术栈以及框架都是比较新的,是一个基于SpringBoot的Java Web项目,框架使用了SSM,数据库采用了Mysql和Redis,使用Kafka作为消息队列,以及Elastic Search作为搜索引擎。项目代码github地址:newcommunity项目准备准备工作就是一些工作环境的配置,IDE使用Intel...

2020-01-22 15:09:22 24264 20

原创 SpringBoot整合Elasticsearch配置与使用

引入依赖配置Elasticsearchcluster-namecluster-nodesSpring Data ElasticsearchElasticsearchTemplateElasticsearchRepository<dependency> <groupId>org.springframework.boot&l...

2020-01-20 17:30:01 6651 1

原创 mac下Elasticsearch的安装与简单使用,结合命令行和postman。

更改配置elasticsearch.yml运行时自动创建配置环境变量open -e .bash_profileexport PATH="$PATH:$/Users/mac/IdeaProjects/elasticsearch/bin"source .bash_profile在这里插入图片描述下载:中文分词工具elasticsearch-analysis-ik-6.8...

2020-01-20 16:20:48 1196

原创 Leetcode分类刷算法之分治贪心专题

Leetcode 分治贪心算法分治:1. Pow(x, n)50. Pow(x, n)求x的n次方x = n次方 等于 n为偶数的情况下 x 的 n/2次方 * x 的n/2次方n为基数的情况下 x 的 n/2次方 * x 的 n / 2 次方 * xpublic double myPow(double x, int n) { long N = n; ...

2020-01-17 15:50:03 274

原创 Leetcode分类刷算法之BFS、DFS专题

Leetcode 上的BFS和DFSBFS1. 单词接龙127.单词接龙简单BFS,依次将所有的合法值加入到队列中去,在遍历这些合法值public int ladderLength(String beginWord, String endWord, List<String> wordList) { Queue<String> queue = new...

2020-01-17 14:03:18 338

原创 Leetcode分类刷算法之回溯专题

Leetcode上必做的回溯算法题目回溯,回溯的时候减枝,两大类排列和组合问题,总结排列组合类型的各自特点,以及考虑去重!暴力枚举 回溯回溯法写法思路:定义全局结果数组调用递归函数返回全局结果数组定义递归函数参数,动态变化,一般为分支结果、限制条件等终止条件,将分支结果添加到全局数组剪枝条件调用递归逐步产生结果,回溯搜索下一结果1.组合总和39. 组合总和p...

2020-01-13 20:58:49 249

空空如也

空空如也

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

TA关注的人

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