自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java后端学习路线(附思维导图+博文详解)

前言​ 作为一名后端开发工程师,技术栈多且复杂,在学习前有一个简单的概念和了解非常重要,这里将我的学习笔记和学习路线分享给大家,希望对持续提升自我的小伙伴有一些帮助,大家一起学习共同进步。本篇也会持续更新,里面的每一项都会有一篇博文来详细讲解。如果有什么问题欢迎批评指正,有一起学习的小伙伴咱们可以一起讨论,一起来搞点事情。(注:如果有需要思维导图源文件的,可以留言,我会私发给你。github账...

2020-03-29 23:53:50 2441 3

原创 使用ffmpeg进行视频格式和大小的处理;字幕,水印的添加以及相关位置、大小的设定

常用的ffmpeg指令(字幕、水印)常用指令添加水印在固定的位置添加水印自适应添加水印添加两个水印,10秒交替出现添加字幕给视频添加一个字幕修改视频的分辨率和长宽比同时为视频添加水印和字幕常用指令使用指令可以让我们快速上手使用ffmpeg这个软件,经过前面的安装,已经能够正常使用ffmpeg了,通过命令行或java中的Process相关类,我们就可以实现自动的ffmpeg处理视频或者图片.添...

2019-05-05 23:02:35 8708 1

原创 VS CODE运行C、C++程序

1 环境搭建1.1 下载安装Mingw-w64https://sourceforge.net/projects/mingw-w64/files/1.2 配置环境变量1.3 查看安装版本号在cmd操作框中,输入下面两个指令。g++ --versiongdb --version2 配置VSCODE2.1 创建一个工作目录(文件夹),用来存放准备运行的C程序创建一个文件夹,并使用VS CODE打开2.2 分别设置launch.json,tasks.json,setting.json

2021-09-10 17:15:31 824

原创 VS CODE JSON添加注释报错 为JSON添加注释

问题描述在json文件中添加注释后,大面积报错。解决方案1.选择JSON2.选择JSON with Comments后,错误消失

2021-09-10 16:16:22 1692 1

原创 用户故事及拆分原则

用户故事及拆分1.什么是用户故事用户角度描述系统行为的变化。用户想通过系统做的事情,或系统为他们做的事情。模板作为XX角色我想要XX功能或行动以便于实现XX价值或目标模板优点WHO(讨论用户角色)​ 讨论不同类型的用户,从不同的角度出发进行讨论。WHAT(讨论要做的功能)​ 从用户的角度考虑软件要做成什么样子。WHY(讨论为什么)​ 为什么会关注这些功能?用户的使用场景、频度?可能出现的异常情况?用户故事常见误区开发任务不能描述为用户故事(√)用户故事是用来讲的,重要的是拆解

2021-07-27 15:43:36 2101

原创 org.springframework.jmx.export.UnableToRegisterMBeanException异常排查

背景在一个tomcat下部署了2个spring boot项目,之前只有1个时运行没问题,部署第二个后发现都启动不了,报错如下:2021-04-22 13:53:08.477 ERROR 348 --- [ost-startStop-1] o.s.boot.SpringApplication : Application run failedorg.springframework.jmx.export.UnableToRegisterMBeanException: Unabl

2021-04-22 14:56:48 676

原创 Elastic search基础

1.es存储的基本单位​ es存储的基本单位是索引。// ESindex -> type -> mapping -> document -> field//MySQL or PostgreSQLdatabase -> table -> table structure -> data -> table field这里将ES的基本术语和数...

2020-03-29 15:48:20 399

原创 MySQL实现分库分表及设计思路

前言分表:​ 背景:单表数据量太大,sql执行性能很低,线上总告警rds负载过高。​ 改造方式:将单表的数据放到多个表中,读写操作到对应的表中操作。分库:​ 原因:一个健康的单库并发值你最好保持在每秒 1000 左右,太大的话会有性能问题。​ 改造方式:将一个库的数据分到多个库中。分库分表前分库分表后并发支撑情况MySQL 单机部署,扛不住高并发MySQL从...

2020-03-29 15:46:21 3963 1

原创 MySQL读写分离及主从复制

数据库读写分离和主从复制读写分离​ 基于MySQL的主从架构,一主多从,主库负责写,从库负责读。主库在数据更新后将信息同步至从库,保证数据的一致性。主从复制原理主库将变更写入 binlog 日志,然后从库连接到主库之后,从库有一个 IO 线程,将主库的 binlog 日志拷贝到自己本地,写入一个 relay 中继日志中。接着从库中有一个 SQL 线程会从中继日志读取 binlog,然后执行...

2020-03-29 15:42:49 119

原创 消息队列问题排查

1.消费者消费过慢,导致消息积压​ 1.扩容,机器升级。​ 2.写一个脚本快速获取一批消息,使用脚本将其消费,外挂程序对其进行处理。2.消费者消费过慢,导致消息过期​ 做好日志记录,写脚本将记录转换后存入消息队列中,在消费低谷时将这部分信息处理完成。3.消息队列写满了,不能再存放消息了​ 1.写一个脚本,连接到消息队列去消费消息,消费完成就删除,快速降低磁盘占用。​ 2.做好监控,磁...

2020-03-27 22:51:23 295 1

原创 Kafka基础、高可用及幂等性、可靠性传输、顺序性

Kafka基础Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,L...

2020-03-27 22:50:37 519

原创 RabbitMQ基础、高可用及消息可靠性传输和顺序消费

RabbitMQ基础1.简介​ RabbitMQ是Erlang语言开发的基于AMQP的开源的消息系统。支持Linux、Windows、MacOX等主流操作系统。支持Java、Python等多种语言。​ AMQP是消息队列的一个协议。ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是Rabbit...

2020-03-27 22:46:31 926

原创 消息队列的使用场景、优缺点、常用消息队列对比

为什么使用消息队列?解耦、异步、削峰。解耦:系统间耦合比较严重,一个模块调用了多个模块,互相之间的调用比较复杂。如果某一个依赖大面积报错或者挂掉,维护特别麻烦。而且对实时响应没有特别高的要求。异步:串行化请求会导致一个请求响应时间会很长,如果有一个请求出错,整个响应可能都会挂掉。削峰:业务高峰期并发请求太多,系统压力过大,写入消息队列后,在并发下来之后处理,性价比极高。消息队列有什么优缺...

2020-03-27 22:42:54 413

原创 dubbo使用中遇到的问题

1.注册中心挂掉之后可以继续通信吗?可以,因为消费者在启动的时候会将服务提供者的地址拉取到本地进行缓存。2.服务启动失败服务起不来,或者起来后服务提供者负载过高,清除dubbo缓存文件3.接口报错Data length too largepayload设置过小导致的报错,一方面需要检查每次请求参数是否合理,另一方面需要调大该配置。在注解处添加payload参数<dubbo:pr...

2020-03-26 23:10:34 583

原创 dubbo 服务治理、服务降级

服务治理1. 调用链路自动生成​ 一个大型的分布式系统,或者说是用现在流行的微服务架构来说吧,分布式系统由大量的服务组成。那么这些服务之间互相是如何调用的?调用链路是啥?说实话,几乎到后面没人搞的清楚了,因为服务实在太多了,可能几百个甚至几千个服务。​ 那就需要基于 dubbo 做的分布式系统中,对各个服务之间的调用自动记录下来,然后自动将各个服务之间的依赖关系和调用链路生成出来。2. 服...

2020-03-26 23:09:59 182

原创 Dubbo的SPI思想

SPISPI(service provider interface),是一种服务发现机制。一个接口有多个实现类,根据指定的配置去找到对应的实现类加载进来,并使用该实现类的实例对象。dubbo中的应用Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();@S...

2020-03-26 23:09:25 87

原创 dubbo集群容错策略

failover clusterdubbo默认。失败自动切换,自动重试其他机器。常用于读操作。几种配置方式<dubbo:service retries="2" /><dubbo:reference retries="2" /><dubbo:reference> <dubbo:method name="findByName" retri...

2020-03-26 23:08:44 240

原创 dubbo的负载均衡算法及使用

dubbo提供了额四种负载均衡策略,如果不填,默认使用random随机调用。1.Random LoadBalance按照权重设置随机概率。在一个界面上碰撞的概率高,但调用量越大分布越均匀,按概率使用权重后也比较均匀,有利于动态调整服务提供者的权重2.RoundRobin LoadBalance轮询,按照在代码中的配置或者dubbo-admin中设置的权重设置轮询比率。存在的问题:响应请...

2020-03-26 23:08:05 236

原创 dubbo配置及其优先级

全局配置优先级dubbo支持JVM参数、xml文件和properties文件来指定其配置。其优先级如下:优先级从高到低:JVM -D参数,当你部署或者启动应用时,它可以轻易地重写配置,比如,改变dubbo协议端口;XML, XML中的当前配置会重写dubbo.properties中的;Properties,默认配置,仅仅作用于以上两者没有配置时。1:如果在classpath下有超...

2020-03-26 23:06:46 582

原创 dubbo常用注解

包名org.apache.dubbo.config.annotation.Serviceorg.apache.dubbo.config.annotation.Reference@Service主要用于服务提供者@Reference主要用于服务消费者,通过查看源码我们发现他有很多注解,我们挑常用的几个来说一下timeout:服务超时时间,单位:毫秒(这个设置是由优先级的,详情见d...

2020-03-26 23:04:28 3928

原创 dubbo支持的通信协议和序列化协议

前言序列化: 将数据结构或者对象转换为二进制串。**反序列化:**将序列化生成的二进制串转换为数据结构或者对象。dubbo支持的通信协议1.dubbo协议​ 默认为dubbo协议,单一长连接,进行的是NIO异步通信,基于hessian作为序列化协议。使用场景:传输量小(每次请求在100kb以内),但是并发很高。长连接:建立连接后可以持续发送请求,无需再建立连接。短链接:每次要发送请...

2020-03-26 22:56:09 387

原创 Redis进阶-----Redis线程模型

1.Redis线程模型Redis内部使用文件事件处理器file event handler,这个文件事件处理器是单线程的所以redis才叫做单线程的模型。它采用IO多路复用机制同时监听多个socket,将产生事件的socket压入到内存队列中,事件分派器根据socket上的事件类型来选择对应的事件处理器来进行处理。文件事件处理器包含4个部分:1.多个socket2.IO多路复用程序3.文...

2020-03-25 22:24:15 206

原创 Redis进阶-----缓存雪崩、缓存穿透、缓存击穿

缓存雪崩大量的缓存在同一时间同时失效,造成大量请求落在了数据库上,导致数据库负载过高或者直接死掉。解决办法:1.在存数据的时候,把key的失效时间加一个随机值即可。setRedis(Key,value,time + Math.random() * 10000)2.请求到系统时,先检查本地的ehcache缓存,没查到之后再到redis中查询,二者都不存在,再进入数据库。3.使用限流组件...

2020-03-25 22:22:36 122

原创 Redis进阶-----LRU算法

前言首先,Redis的过期策略分为定期删除+惰性删除。定期删除:默认100ms随机抽查一些过期的key将其删除即可。惰性删除:当查询key时, if (key 过期)? 删除key且不返回 :正常执行;为什么不扫描全部的key?如果对所有的key进行扫描,那就相当于执行了一次全包扫描,性能是非常低的。1.Redis提供的LRU算法noevivtion:内存不足以容纳新写入的数据时,直...

2020-03-25 22:21:45 190

原创 Redis进阶-----Redis高可用

1.哨兵集群哨兵+主从。一主两从。 +----+ | M1 | | S1 | +----+ |+----+ | +----+| R2 |----+----| R3 || S2 | | S3 |+----+ +----+当Master宕机后,s1和s2在认定之后,会通...

2020-03-25 22:20:33 166 1

原创 Redis进阶-----RDB、AOF持久化

1.Redis是怎么实现持久化的?服务主从数据如何进行交互RDB:用来进行全量持久化。适合做冷备。默认5分钟生成一次。AOF:用来进行增量持久化。适合做热备。默认1秒生成一次。写入效率高,有fsysn操作,每秒向磁盘写入数据,类似于mysql的binlog。Redis在重启时会使用RDB持久化文件来重构内存,使用AOF来重放近期的操作。RDB的恢复效率要比AOF快。如果开启AOF且存在A...

2020-03-25 22:14:49 130

原创 Redis基础-----实现消息队列和发布订阅功能

1.Redis做异步队列使用list结构,在一侧使用rpush生产消息,另一侧使用lpop消费消息。如果rpop为0,就sleep一会再进行。blpop可以在消费不到消息时,阻塞list直到有消息进入。使用pub/sub主题订阅模式,可以实现1:N的消息队列。但是消费者如果下线,生产的消息会丢失。2.Redis实现延时队列使用SortedSet,消息内容作为key,时间戳作为score,...

2020-03-25 22:11:45 351

原创 Redis基础-----基本概念及数据类型

0.Redis和Memcached的区别memcache:仅支持String类型。没有原生的集群模式。使用多核,在处理100K以上数据时更有优势。Redis:支持多种数据结构,有更丰富的数据操作。用户群体庞大,稳定性高。支持Cluster模式。1.Redis的数据类型string最常规的kv存储,value最大存储512M。缓存配置信息,缓存常用查询的字段;共享用户session,利用...

2020-03-25 22:10:20 103

原创 PostgreSQL线上常用指令及简介

1.查看所有的存储过程select routine_name from information_schema.routines where routine_catalog = 'YourDBName' and routine_schema = 'YourSchemaName' order by routine_name;2.将查询结果导出成csv\copy (sql) to '/tmp/x...

2019-12-16 20:59:33 199

原创 PostgreSQL锁表排查方法及索引相关注意事项

一 排查锁表问题1.判断被锁的是哪张表,获取其pid相关信息,将任务回滚查询是否锁表select oid from pg_class where relname = '可能被锁了的表'select pid from pg_locks where relation = '上面查询出来的pid'如果有查询结果,则表示该表被锁,则需要释放这个锁定,下面这条语句会取消当前的执行语句,并回滚...

2019-12-12 15:46:45 1311

原创 dubbo-admin下载安装与部署

前言​ 前面说了dubbo有自己的监控管理中心,在生产环境中,我们也是通过管理中心对服务进行监控,负载均衡调节等。升级部署时也是用其对服务进行上线下线操作。1.dubbo-admin下载地址:https://github.com/apache/dubbo-admin老版本界面:切换分支至master,点击下载,将zip包解压之后,使用IDEA打开项目。新版本界面:切换分支至deve...

2019-12-09 22:28:01 1509 1

原创 Springboot+dubbo+zookeepr构建项目

前言本文使用Spring Boot + zookeeper 搭建Dubbo项目。1.安装并配置zookeeper下载地址:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.5.6/下载后直接解压,如果里面是zoo_simple.cfg或者其他任何的名字,将其改为zoo.cfg修改里面的一些配置,其他保持默认即可dataDi...

2019-12-09 22:27:06 505 1

原创 Dubbo理论知识

1.背景单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。分布式服务架构当垂直应用越来越多,应用之间交互不可避免,将核心...

2019-12-09 22:24:35 123 1

原创 Spring Boot相关注解

前言使用一些注解能显著提升我们的开发效率!1.@SpringBootApplication@SpringBootApplication可以看做是@Configuration、@EnableAutoConfiguration、@ComponentScan这三个注解的组合注解。@Configuration:允许在上下文中注册额外的bean或者导入其他的配置类@EnableAutoConfig...

2019-12-04 14:57:35 97

原创 windows10下安装tensorflow

前言首先确保我们电脑上安装了python,我使用的anaconda。注:如果使用自带镜像的话,会非常慢,建议使用国内镜像进行下载,可以大幅提升速率。设置conda的使用镜像(这里使用清华大学的镜像)conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/设置pip的使用镜像在...

2019-11-29 11:32:47 181 1

原创 Lambda实践

Lambda实践1.引言​ 在java1.8之后,开始支持使用Lambda表达式,及函数式编程。极大地简化了代码。特别是在对List进行处理的时候,十分简洁和清爽。2.常用的流因为经常使用List进行操作,所以下面的示例也都已List作为demo1.collect(Collectors.toList()):将流转换成一个List2.filter():过滤List中符合条件的数据3.m...

2019-11-06 21:09:59 125

原创 BIO和NIO学习笔记及比较

BIO和NIO1.BIO1.1概念BIO(blocking I/O):同步且阻塞。服务器实现模式为一个连接启动一个线程,当客户端有连接请求时服务器就为其启动一个线程去处理。1.2单线程演示1.编写服务器端代码,监听8080端口,同时接收客户端发来的信息,启动服务端。服务器正在等待连接。2.编写客户端代码,绑定本机的8080端口,建立socket连接,发送数据,启动客户端。3.这时...

2019-11-05 15:59:53 170 1

原创 windows pip安装、升级、更换源指令

windows pip安装、升级指令前言常规指令查看pip版本查看pip版本查看已安装的包升级某个包写在某个包安装某个包(指定链接)更换pip镜像前言由于一直使用pycharm进行python包的管理,一直疏忽了对pip的应用,在安装TensorFlow的时候,遇到了很多阻力和问题,学习了一下pip的相关指令,发博客来记录一下自己的学习过程和复习一下学习到的知识。常规指令查看pip版本...

2019-09-09 17:57:55 1508 1

原创 StringUtils的方法详解

StringUtils方法详解前言方法详解字符串为null或空的判断空字符串的判断trim相关方法去除字符串两端指定的字符串前言StringUtils是一个处理字符串非常强大的类,能够让我们在处理字符串时少写很多代码。方法详解字符串为null或空的判断isEmpty(String str):如果字符串为null或为空字符串,则返回falseisNotEmpty(String str)...

2019-06-11 11:50:27 538

原创 ffmpeg打字幕遇到乱码

在使用ffmpeg进行加字幕的时候,遇到了打出来的字幕都是乱码的情况,这个是因为系统没有对应的字体导致的,这个时候,只需要在字体库中缺少字体

2018-11-08 21:11:00 2532

空空如也

空空如也

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

TA关注的人

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