自定义博客皮肤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)
  • 收藏
  • 关注

原创 SpringBoot实现STOMP协议下的WebSocket

文章目录WebSocket简介STOMP简介上去就是干环境配置引入依赖新建WebSocket配置类新建保存用户认证信息的实体类MyPrincipalHandshakeHandler握手拦截器WebSocketHandshakeInterceptor消息通道拦截器服务端消息处理器广播式消息点对点式消息前端VUE实现WebSocket简介WebSocket 是 HTML5 开始提供的一种在单个 T...

2019-06-12 13:53:24 9831 1

原创 Docker中部署mysql服务

最近一直在学习docker,感觉这么厉害的东西怎么以前不知道呢,把自己捣鼓的过程整理记录下来,供同学们参考第零步:从Docker Hub拉取官方mysql镜像docker pull mysql然后就是进入漫长的等待,当然如果你配置了镜像加速器,速度会快很多,因为就相当于你从国内的镜像源下载。第一步:使用docker images命令查看镜像你会看到我们这里已经有了MySQ...

2018-11-14 21:51:38 10674 10

原创 Redis CLuster主备切换、故障转移测试

redis版本5.0.5测试redis Cluster主备切换、故障转移下线一个从节点,此时它的主节点打印的日志集群状态下线一台主节点,此时它的从节点打印的日志集群状态测试主备切换时客户端状态第一步:查看当前集群状态可以看到六个节点都是可用状态,其中83.46的6379是81.64上的6380的从节点,计划Kill掉81.64上的6380主节点,然后观察83.46的6379节点日志第二步:kill掉81.64上的638010:11:25:kill掉81.64上的63

2020-12-22 11:22:54 3195 5

原创 一次Tamcat无响应问题分析

问题描述程序的架构是一个HTTP客户端的上报服务,一个HTTP服务端的接收服务,今天测试人员反映数据上报不上去了,请求全部失败排查思路1.查看客户端日志发现所有的请求都是报错503,初步确定是服务端的问题,因为服务端使用了Zuul作为网关,503是我们自定义的超时状态码查看网关Zuul的日志发现在网关的断路器回调接口里面,报了大量的后端服务超时日志,确定是其中的一个物联平台服务,基本上hystrix的状态一直都是断开,直接返回的服务不可用。登录eureka确定物联平台服务在哪台机器上登录eu

2020-10-20 10:29:30 450

原创 JVM——垃圾收集器

JVM垃圾收集器JVM垃圾收集器什么是Stop The WorldSerial收集器特点优点缺点ParNew收集器特点优点缺点Paraller Scavenge收集器特点最近在看周志明老师的深入理解JVM,之前对JVM的学习都是一些零碎的博客文章,有的时候看的是挺摸不着头脑的,原因无他,跟书籍比起来,博客的质量参差不齐,而且是别人理解总结的东西,学起来总是知其然而不知所以然。不得不说,这本书看起来让人有一种醍醐灌顶的感觉,这篇文章也算是我学习过程中的一个读书总结。JVM垃圾收集器都说Java和C++之

2020-09-08 21:59:30 254

原创 批量修改Kafka线上环境的分区副本数

进行分区扩容命令示例./kafka-topics.sh --zookeeper localhost:2181 --alter --partitions 3 --topic test返回示例WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affectedAdding partitions succeeded

2020-07-08 11:42:30 768

原创 MongoDB4.0 explain执行计划分析

queryPlannerqueryPlanner是现版本explain的默认模式,queryPlanner模式下并不会去真正进行query语句查询,而是针对query语句进行执行计划分析并选出winning plan。{ "queryPlanner": { "plannerVersion": NumberInt("1"), "namespace": "energy_tool_gs_yanshi.pointData",//该查询所在的表 "index

2020-07-02 11:29:53 653

原创 Flink——容错机制

Flink的容错机制概述Flink容错的核心机制就是持续地创建分布式数据流及其状态的一致性快照,。当系统遇到故障时,比如(机器,网络,软件等),重启所有的算子,回退到checkpoint(检查点),确保程序的每一条记录只会作用准确一次(exactly-once )的语义,也可以选择配置成至少一次(at-least-once )注意: 为了容错机制生效,数据源(例如 queue 或者 brok...

2019-12-25 14:50:59 679

原创 Flink——状态管理

什么是状态在流处理中,我们需要处理的数据是源源不断的,那我们面对一下几种情况时该怎么办?从kakfa里面处理数据,但是kafak里的数据有些是重复的,需要在流处理系统里面进行去重,所以需要知道已经有的数据的id,那我们怎么知道呢需要与以前的历史数据进行比较等操作,但是又不想每次都到数据库里面去查(考虑到性能),那我们上哪里去读呢强大的Flink提供了状态管理这么一个东西,可以让我们保存...

2019-12-20 11:53:07 359

原创 Java基础——基本数据类型及其包装类

文章目录基本数据类型包装数据类型区别自动装箱和拆箱原理基本数据类型Java中共有八中基本数据类型,分别为:byteshortintlongfloatdoublecharboolean包装数据类型基本数据类型大小默认值包装数据类型byte8 bit0Byteshort16 bit0Shortint32 bit0Inte...

2019-12-09 17:02:48 623

原创 Flink——时间属性

时间属性Flink中有三种不同的时间概念来处理流数据处理时间(Processing Time ):使用的是机器本身的时间作为标准事件时间(Event Time): 需要处理的流中的数据发生的时间,以数据中带的时间戳为标准摄取时间(Ingestion Time):*事件进入Flink的时间;在内部它的处理类似于事件时间。Flink默认使用的是处理时间,如果想使用其他两个时间,可以在执行...

2019-12-05 17:42:58 802

原创 Flink入门

什么是FlinkApache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态的计算。Flink被设计为可以在所有常见的集群环境中运行,以内存速度和任何规模执行计算。https://flink.apache.org/flink-architecture.html什么是有界和无界的数据流无界流有一个起点,但没有定义的终点。它们不会终止并在生成数据时提供数据。无限制的流...

2019-11-27 17:55:09 150

原创 linux服务器磁盘未挂载到目录

前言记录一下在服务器上安装服务时,遇到的问题我们都晓得,在服务器上安装数据库类的应用的时候,需要考虑数据库目录文件夹的大小,使用df -hl命令咦,我们明明是1T的硬盘,怎么就这么点呢是因为磁盘没有挂载到目录上面使用fdisk -l查看所有磁盘可以看到有一个大概1T的磁盘空间,在/dev/vdb下面使用mkfs -t ext3 /dev/vdb格式化磁盘使用mount /d...

2019-11-27 17:48:27 2639

原创 Zookeeper集群、Kafka集群、Redis集群、MongoDB集群搭建记录

声明使用三台服务器,分别为192.168.1.9、192.168.1.10、192.168.1.11因为是内网,全部关闭防火墙,所以没有考虑开放端口的问题Zookeeper集群参考:https://blog.csdn.net/u012702547/article/details/77569325 https://blog.51cto.com/11996517/2094386注意要点...

2019-10-31 14:16:04 505

原创 Kafka消费者

文章目录消费者和消费者组消费者群组的概念分区的分配策略分区再均衡消费者消费数据创建kafka消费者订阅主题获取数据消费者和消费者组消费者群组的概念在生产者生产消息并发送到kakfa的主体上面后,应用程序需要创建一个消费者对象,订阅主题开始接收消息并进行一系列的处理。但是由于网络等原因,当生产者发送消息的速度远远大于消费者消费消息的速度时,该怎么办呢?我们知道,Kafka是支持多个消费者订阅...

2019-09-19 13:36:29 303

转载 Spring Boot中使用Drools规则引擎

小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。小明的烦恼活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲到。小明心想,又tm来这套,...

2019-09-17 09:58:32 928

原创 Spring Boot中使用Mongo的GridFs实现分布式文件存储

前言这段时间在公司实习,安排给我一个任务,让在系统里实现一个知识库的模块,产品说,就像百度网盘那样。。。我tm…,这不就是应了那句话,“这个需求很简单,怎么实现我不管”。可是我google小能手怎么会认输呢,本来还说研究一下FastDFS啥的,但是因为我们项目用的Mongo作为数据库,了解到Mongo自带分布式文件系统GridFs,这简直天助我也。GridFs介绍什么时候使用GridFs...

2019-09-05 18:16:02 983

原创 文档神器——Spring Boot中使用Swagger2

啥是SwaggerSwagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。为什么需要Swagger现在流行的项目都是前后端分离的,前端和后端工程师分别开发,为了能让他们能够并行工作,必须要有一个接口文档。可是说的好听,俺们程序员最烦的两件事,其中一个就是写文档,第二个就是项目居然没有文档,这也是前后端经常吵架的原因所在。Swagger的出现...

2019-08-26 16:56:28 171

原创 深入理解IO模型

文章目录啥是IO基础知识Linux用户空间和内核空间文件描述符IO的操作过程阻塞与非阻塞同步与异步阻塞IO非阻塞IO多路复用IO信号驱动IO异步IO总结啥是IOIO是英文Input Output的缩写,意为输入输出。IO操作根据设备类型分为网络IO,文件IO,内存IO,内存IO的速度远远大于文件IO和网络IO的速度,对于文件IO可以通过把磁盘升级为固态硬盘来提升速度,对于网络IO可以通过购买...

2019-06-21 10:36:16 589

原创 面试题总结

StringBuffer和StringBuilder的区别StringBuffer 是线程安全的,内部方法用synchronized 修饰,除此之外方法和功能完全是等价的在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全而StringBuffer则每次都需要判断锁,效率相对更低String是不可变的字符串,String Buffer和String Bui...

2019-06-20 13:26:28 156

原创 JVM——Java内存模型

概述我们的台式机有自己的内存,服务器也有自己的内存,而JVM作为一台虚拟的计算机,也有自己的内存。JVM的内存分为五大部分,分别为程序计数器虚拟机栈本地方法栈方法区Java堆按照线程之间的关系又可以分为三类线程私有的内存线程共享的内存直接内存思维导图Java内存模型如下思维导图的形式:程序计数器一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每...

2019-06-17 13:27:38 220

原创 设计模式——工厂模式

工厂模式是个啥工厂模式是用工厂方法代替new操作的一种模式,是我们最常用的实例化对象模式了,我们不暴露创建对象的具体逻辑,而是将逻辑封装在一个函数中,那么这个函数就可以被视为一个工厂。工厂模式根据抽象程度不同可以分为简单工厂模式工厂模式抽象工厂模式实际场景分析上古之时,天地之间只有女娲一个人,不,只有它一个神。甚是孤单,于是女娲转念一想,这他娘的不是办法呀,得想办法造一些人来...

2019-06-10 20:17:22 145

原创 MySQL——MySQL神器之索引

文章目录索引是个啥?索引的特点索引能够提高查询的速度索引会降低删除,更新,插入的效率最左匹配原则哈希索引怎么合理利用索引?索引是个啥?索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引的一个主要目的就是加快检索表中数据,亦即能协助信息搜索者尽快的找到符合限制...

2019-06-09 21:38:58 136

原创 MySQL——MySQL神器之锁

文章目录锁是个啥MySQL中的锁行级锁总览详解共享锁,排他锁,意向锁表级锁总览详解读锁定的过程写锁定的过程页级锁锁是个啥锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。...

2019-06-06 14:29:37 183

原创 MySQL——MySQL数据库引擎

发展在MySQL5.5之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。主要特点MyISAM支持表级锁支持全文索引不支持行锁不支持事务不支持外键存储时保存了表的行数InnoDB支持表级锁不支持全文索引支持行级锁支持事务支持外键没有存储表的行数两种数据库引擎详细对比事务MyISAM:是一种非...

2019-06-06 10:23:56 113

原创 正则表达式基础

今天看了一下正则表达式,早就看这东西不顺眼了,以前也是看过一些基础语法,可惜时间长了,也没有动手写过,都给忘了,好记性还是不如烂笔头,还是要做好笔记啊!啥是正则表达式?正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。说白了,这玩意...

2019-05-27 17:37:54 259

原创 MySQL——MySQL事务

什么是事务一个最小的不可再分的工作单元,通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)简单来说,就是A向B转账,A的钱减少了,B的钱增加了,这就是一个完整的事务。事务的特性ACID原子性(Atomicity):事务是不可再分的单元一致性(Consistency):同一个事务里的SQL要么全部成功要么全部失败隔离性(Isolation):事务A...

2019-05-24 20:45:10 197

原创 Java基础——“==“,equals和hashcode

文章目录==equalshashcodehachcode与equals关系==对于基本数据类型byte,short,int,long,float,double,char,boolean。==比较的是他们的值是否相等,这个很好理解,毕竟他们只是一个栈内存中的变量,也不是对象嘛。对于包装数据类型,==比较的是他们在内存中的地址,也就是说,除非是同一个对象,比较的结果才会是true,否则比较的结...

2019-05-19 21:30:57 181

原创 Kafka生产者

不管是把kafka作为消息队列,消息总线,还是存储平台,总是需要一个可以往Kafka写入数据的生产者和一个可以从Kafka读取数据的的消费者,或者一个兼具两种角色的应用程序消息的发送过程首先创建一个ProducerRecord对象,ProducerRecord包含目标主题Topic,分区partition,键Key,要发送的内容value。在发送ProducerRecord对象时,必须先把...

2019-05-12 20:41:11 156

原创 kafka基本概念

kafka是个啥?kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。消息和批次消息消息是kafka里的数据单元,就像数据库一样,可以把消息看成是数据库里一个数据行或者一条记录。消息由字节数组组成,对于kafka来说,消息里的数据没有特别的格式或者含义。消息...

2019-04-28 20:39:38 160

原创 数据结构与算法——堆排序

package eightsort;import java.util.Arrays;/** * 堆排序的基本思想 * 1.初始化堆:将数列a[1...n]构造成最大堆。 * 2.交换数据:将a[1]和a[n]交换,使a[n]是a[1...n]中的最大值;然后将a[1...n-1]重新调整为最大堆。 接着,将a[1]和a[n-1]交换,使a[n-1]是a[1...n-1]中的最大值;然...

2019-04-21 20:04:45 156

原创 关于idea申请学生和教师免费试用

注册账户,地址:https://account.jetbrains.com/login然后点击邮件中的地址注册申请学生或教师认证地址:https://www.jetbrains.com/shop/eform/students填写相关信息,我们没有edu邮箱可以使用官方文件即学生证认证,大概周的时间就会通过。认证通过之后,会给邮箱发一封邮件然后使用绑定这个...

2019-03-26 15:54:13 13546 8

原创 数据结构与算法——选择排序

package eightSort;import java.util.Arrays;public class selectSort { /** * 选择排序(Selection sort)是一种简单直观的排序算法。 * 它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置; * 接着,再从剩余未排序的元素中继续...

2019-03-16 21:19:29 190

原创 数据结构与算法——希尔排序

package eightSort;import java.util.Arrays;public class shellSort { /** * 希尔排序(shell sort)这个排序方法又称为缩小增量排序,是1959年D·L·Shell提出来的。 * 该方法的基本思想是:设待排序元素序列有n个元素,首先取一个整数step(小于n)作为间隔将全部元素分为st...

2019-03-16 13:30:16 177

原创 数据结构与算法——快速排序

/** * * 1.在待排序的元素任取一个元素作为基准(通常选第一个元素,但最的选择方法是从待排序元素中随机选取一个作为基准),称为基准元素; * 2.将待排序的元素进行分区,比基准元素大的元素放在它的右边,比其小的放在它的左边; * 3.对左右两个分区重复以上步骤直到所有元素都是有序的。 * 快速排序是一种不稳定的算法 * 快速排序的时间复杂...

2019-03-16 09:47:51 115

原创 数据结构与算法——直接插入排序

public class InsertSort { /** *  插入排序就是把一组数字分成两部分, * 一部分是排好顺序的,另一部分是没有排好顺序的, * 从没有排好顺序的那组数字中获取数字,把它插入到已经排好的顺序的那部分数字中, * 在插入到已经排好顺序的那部分数字时,让这个插入进来的数字与已经排好顺序的数字进行比较, * 保证已经排好的顺序的那部分数字不被打乱,重...

2019-03-09 09:55:18 153

原创 数据结构与算法——冒泡排序

/** * 冒泡排序是一种简单的排序 * 它的核心思想是遍历若干次要排序的数列,每次遍历时, * 它都会从前往后依次的比较相邻两个数的大小; * 如果前者比后者大,则交换它们的位置。 * 这样,一次遍历之后,最大的元素就在数列的末尾! * 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止! * 冒泡排序的时间复杂度是O(...

2019-03-09 09:03:46 150

原创 设计模式——单例模式

定义单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。单例模式保证了全局对象的唯一性,比如系统启动读取配置文件就需要单例保证配置的一致性。实现单例模式的方式饿汉...

2019-03-08 17:06:32 102

原创 数据结构与算法——链表

定义链表(Linked list)是一种线性表,但是并不会在物理存储上按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表的插入和删除操作可以达到O(1)的复杂度。单向链表单向链表(单链表)是链表的一种,它由节点组成,每个节点都包含下一个节点的指针,下图就是一个单链表,表头为空,表头的后继节点是"结点10"(数据为10的结点),“节点...

2019-03-04 16:12:22 182

原创 数据结构与算法——数组

定义数组是数据结构中很基本的结构,很多编程语言都内置数组。在java中当创建数组时会在内存中划分出一块连续的内存,然后当有数据进入的时候会将数据按顺序的存储在这块连续的内存中,在java中数组下标从0开始。当需要读取数组中的数据时,需要提供数组中的索引,然后数组根据索引将内存中的数据取出来,返回给读取程序。在Java中并不是所有的数据都能存储到数组中,只有相同类型的数据才可以一起存储到数组中。...

2019-03-04 15:53:00 184

空空如也

空空如也

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

TA关注的人

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