自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

指尖上的革新

做过互联网 搞过物联网 进过华为 搬过砖 企鹅:1007026004

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

原创 基于redis实现延时队列(二)

上篇文章中使用了redis的zset+定时器实现延时任务,虽然定时器设置为30秒执行一次,但是还是有时间上的差异化;现更换一种方式实现,可以避免时间上的差异。redis的key过期回调事件,也能达到延迟队列效果。

2023-07-10 22:15:00 506

原创 基于redis实现延时队列(一)

从上述中代码中可以看出 定时器我写的是每隔30秒执行一次,虽然频率高但是实时性好,只有当有数据需要处理时才会对数据库产生交互,平时我们项目中救援任务相对较少,所以对数据库基本造不成压力!

2023-07-10 15:29:38 649

原创 阳过还需姑姑

该博客是根据自己的整个过程分析总结的体会与感悟,希望对正在阳或者即将要阳的你有所帮助,但是每个人身体素质不一,症状不一,所以仅供参考。

2022-12-17 15:25:00 264 2

原创 将*mapper.xml迁移到src下导致mapper与id绑定失败的问题

最近在写项目时因为用spring cloud alibaba时,由于src中modules下有多个mapper,在将以前的mapper.xml放在resources下没那么方便查找;就想着把xml也方在对应的modules下方便开发管理;报错如下截图发现还是不对一致困扰了我很久,一致以为是 mapper-locations 后的位置不对,但是怎么调整都没有找到原因,还是妥协暂时将xml放在resources目录下;...

2022-09-01 16:32:25 440

原创 Java动态导出word文档内容及图片

最近公司在做一个工业柔性产线管控,项目中有一个需求要将工序中流程图及流程图中的子流程及工步相关信息导入到表格中(因为流程图下的子流程图有无及数量未知,所以最好的办法就是使用动态导入);因为以前更多接触的是excel的导入与导出,word还没接触过,刚好家人出现了黄码,就在家居家一天,顺便把相关需求写个demo;希望对有相关需求的朋友有帮助。不废话,上代码。......

2022-07-29 23:21:17 1883 3

原创 狂神说ElasticSearch7.6.1学习笔记(下)

接上文讲述了ES环境的安装;本文将继续介绍和springboot整合并实战写demo;创建一个springboot项目省略编写配置实体测试测试都是在DamonyuanEsApiApplicationTests类中测试结果可以在head里面查看,此处就不一一体贴图了!教程中两个项目是分开的;由于本人主要是学习入门,一个项目也方便保存学习,就不新建项目了就是前面的,强调一下就是需要注意导入的版本和我们安装的版本一致前端素材下载地址链接:https://pan.baidu.com/s/1pm

2022-06-18 14:53:31 438

原创 狂神说ElasticSearch7.6.1学习笔记(上)

Elaticsearch,简称为es,es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。据国际权威的数据库产品评测机构DB Engines的统计,在2016年1月,ElasticSearch已超过Solr等,成为排名第一的搜索引擎类应

2022-06-16 23:32:33 1099

原创 Netty学习笔记

Netty是什么Netty是一个高性能的、异步的、基于事件驱动的网络应用框架。核心:可扩展的事件模型统一的通信api无论是http 还是socket都使用统一的api,简化了操作零拷贝机制与字节缓冲区传输服务支持socket 以及datagram(数据报)持http协议In-VM Pipe (管道协议)协议支持http 以及 websocketSSL 安全套接字协议⽀持Google Protobuf (序列化框架)持zlib、gzip压缩持大文件的传输RTSP(

2022-06-16 21:32:56 208

原创 并发容器简述

HashTableHashMap是线程不安全的,在多线程环境下,使用HashMap进行put操作时,可能会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。于是有了HashTable,HashTable是线程安全的。但是HashTable线程安全的策略实在不怎么高明,将get/put等所 有相关操作都整成了synchronized的。ConcurrentHashMap由于直接加synchronized太过粗暴,基于分段式锁的ConcurrentHashMap出现分

2022-04-11 16:44:26 262

原创 JVM相关参数详解

jvm的运行参数在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。三种参数类型jvm的参数类型分为三类,分别是:标准参数-help-version-X参数 (非标准参数)-Xint-Xcomp-XX参数(使用率较高)-XX:newSize-XX:+UseSerialGC标准参数jvm的标准参数,一般都是很稳定的,在未来的JVM版本中不会改变#打印帮助信息 java -help #查看jvm版本 java -ve

2022-03-26 08:57:34 997

原创 swagger用@ConditionalOnProperty控制接口文档显示报To display the conditions report re-run your application with

问题背景今天在新建一个springboot项目时,按照以往的流程引入maven;最后在引入swagger并运用@ConditionalOnProperty来控制接口文档显示时报Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.具体报错如下:Error starting ApplicationContext. To display

2022-03-23 21:23:45 1038 1

原创 电商大促架构体系

电商整体架构从组织架构到技术架构,当前各大电商系统基本趋于中台化。中台在2015由阿里提出,其实是一种企业架构而不是单纯的技术层面,目前几乎各大电商都进行着中台化的建设。中台就是对 ”共享“ 理念系统化的归纳和总结。重复功能建设和维护带来的重复投资烟囱式建设造成系统壁垒,数据孤岛业务沉淀促进可持续发展大中台小前台快速响应市场的需要上层业务:大中台,小前台,电商中直面用户的B2B,B2C等各个业务线业务中台:基于公共服务的沉淀,需要收敛一些基础的业务服务,如商品、订单、会员、库存、财务、结

2022-03-21 21:02:11 2987

原创 互联网电商行业概述

业务模式电商早期多以单体业务为主,逐个业务线扩张。系统也多呈现为多个mvc独立运行状态。简单介绍常见的各个单体的业务模式。B2CBusiness to Consumer(Customer),B2C中的B是Business,意思是企业,C是Customer,意思是消费者,所以B2C是企业对消费者的电子商务模式。这种形式的电子商务一般以网络零售业为主,主要借助于Internet开展在线销售活动。特点:因为面向大量消费者,网站访问量较大,对网站并发行有一定要求,但交易方式相对简单案例:天猫商城 京东

2022-03-21 20:55:13 804

原创 JMM~Java Memory Model

1.JMM【JMM】(Java Memory Model的缩写)允许编译器和缓存以数据在处理器特定的缓存(或寄存器)和主存之间移动的次序拥有重要的特权,除非程序员使用了volatile或synchronized明确请求了某些可见性的保证。三大特性:原子性,可见性,有序性。作用:缓存一致性协议,用于定义数据读写的规则;JMM定义了线程工作内容与主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)中,每个线程都有一个私有的本地内存(Local Memory)volatile

2022-03-16 20:45:00 392

原创 RabbitMQ学习笔记

什么是MQMQ(message quene):翻译为消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统问题解耦。通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。不同的MQ特点ActiveMQ 是Apache出品,最流行,能力强劲的开源消息总线,它是一个完全支持JMS规范的消息中间件。丰富的API,多种集群架

2022-02-22 20:34:27 989

原创 业务层使用@Transactional后Dubbo无法发布服务

问题背景:使用@Transactional来对业务层进行事务管理,并使用@Service注册提供方时,提供方无法注册。原因分析:在使用Dubbo注解(@Service)发布提供发时,Dubbo会根据配置把所有扫描到的类放入Spring容器中进行匹配,并遍历这个包中每一个Bean对象,判断这个Bean对象是不是想要发布的那个Bean(含有@Service注解的类),如果符合,则将这个Bean对象发布到zookeeper中,如果不符合,则不会发布。<dubbo:annotation package

2022-02-21 22:12:39 504

原创 redis

1.什么是NoSQLNoSQL=not only SQL(不仅仅是SQL) 泛指非关系型数据库;传统的关系型数据库很难对web2.0时代。很多的数据类型用户的个人信息,社交网络,地理位置,这些数据类型的存储不需要一个固定的格式。不需要多余的操作就可以横向扩展!Map<Stirng,Object>使用键值对来控制!关系型数据库:表格,行列2.特点与对比:解耦1方便扩展(数据之间没有关系,很好扩展)2大数据量高性能(Redis一秒写8万次,读取11万,NoSQL的缓存记录是一种细粒度的

2022-02-21 15:45:26 582

原创 springboot入门之自动装配

什么是SpringSpring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者Rod Johnson.Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。Spring是如果简化Java开发的为了降低Java开发的复杂性,spring采用了以下4种关键策略1基于pojo的轻量级和最小侵入性编程;2通过控制反转(IOC),依赖注入(DI)和面向接口实现松耦合;3基于切面(AOP)和惯例进行声明式编程;4通过切面和模板减少样式代码什么是springboot?Spr

2022-02-16 21:58:00 2796

原创 设计模式之简介与七大原则(一)

1 什么是设计模式软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在 1990 年代从建筑设计领域引入到计算机科学的。设计模式是为了让软件具有更好的复用性、扩展性、可读性、规范性和稳定性等等(可扩展性,使用设计模式,软件具有很好的扩展性)(维护性:主要体现在可读性、规范性)2 设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵

2022-01-23 17:40:34 389

原创 docker中运用rancher启动mysql容器挂载目录/var/lib/mysql就无法启动

背景描述如标题描述docker中运用rancher启动mysql5.7容器挂载目录/var/lib/mysql就无法启动了;当把/data/mysql/data:/var/lib/mysql 这个挂载去掉后就可以正常启动错误日志主要报错信息...[Warning] Can't create test file /var/lib/mysql/data/53f590ec7818.lower-test...[ERROR] failed to set datadir to /var/lib/mysq

2022-01-21 13:51:02 2052

原创 springcloud入门(七)之config配置中心

1 springcould config分布式配置1.1 概述分布式系统面临的配置文件的问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务,由于每个服务都需要必要的配置信息才能运行,所以一套集中式的,动态的配置管理设施是必不可少的springcloud提供了configserver来解决这个问题,我们每一个微服务自己带一个application.yml,那上百个配置文件要修改起来,简直让人抓狂1.2 什么是springcloud confi

2021-12-28 22:55:12 2357 1

原创 springcloud入门(六)之Zuul路由网关及过滤

1 Zuul路由 网关1.1 什么是zuulzuul包含了对请求的路由和过滤网关两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预;是实现请求校验,服务聚合等功能的基础。zuul和eureka进行整合,将zuul自身注册为eureka服务治理下的应用,同时从eureka中获取其他微服务的消息以及以后的访问微服务都是通过zuul跳转后获取注意 :zuul服务最终还是会注册进eureka提供:代理、路由及过滤

2021-12-28 21:30:00 425

原创 springcloud入门(五)之Hystrix熔断、降级及监控

1 Hystrix服务熔断1.1 分布式系统面临的问题复杂分布式结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败服务雪崩多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C有调用其他的微服务,这就是所谓的“扇出”;如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的“雪崩效应”。对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上所有资源都在几秒中内饱和。比失败更糟糕的

2021-12-27 14:11:50 513

原创 springcloud入门(四)之feign负载均衡与rest调用

1 feign负载均衡1.1 简介feign是声明式的web service客户端,它让微服务之间的调用变得更加简单了,类似controller调用service,springcloud集成了ribbon和eureka,可在使用feign时提供负载均衡的http客户端。只需要创建一个接口,然后添加注解即可feign主要是社区,大家都习惯面向接口编程。这个是很多开发人员的规范,调用微服务访问两种方法微服务名称【RestTemplate+ribbon】接口和注解【feign】1.2 feig

2021-12-24 22:00:00 460

原创 springcloud入门(三)之Ribbon负载均衡及自定义负载均衡

Ribbon负载均衡ribbon是什么springcloud ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具简单的说ribbon是netfix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将netflix的中间层服务连接在一起。ribbon的客户端组件提供一些列完整的配置项:连接超时,重试等等。在配置文件中列出LoadBalance(简称LB:负载均衡)后面所有的机器,ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等等)去连接这些机器。

2021-12-23 21:59:08 1955

原创 springcloud入门(二)之eureka服务发现与注册

1 Eureka 注册中心与发现Netflix在设计时,遵循的就是AP原则Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以及实现云端中间层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务。而不需要修改服务调用的配置文件了,功能类似于Dubbo的注册中心,比如zookeeper;1.1 原理讲解eureka的基本架构springcloud封装了Netfli

2021-12-20 16:37:21 767

原创 springcloud入门(一)之基本概念、服务提供者及消费者

1 springcloud入门概述1.1 什么是springcloudspringcloud官网springcloud,基于springboot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件;除了基于Netflix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。sprincloud利用springboot的开发便利性,巧妙地简化了分布式系统基础设施的开发,springcloud为开发人员提供了快速构建分布式的一些列工具,包括配置

2021-12-16 22:30:00 1377 1

原创 常用的十种算法

二分查找算法(非递归)前面我们讲过了二分查找算法,使用递归的方式,下面我们讲解二分查找算法的非递归方式二分查找法只适用于从有序的数列种进行查找(比如数字和字母等),将熟练排序后再进行查找二分查找法的运行时间为对数时间O(log2n),即查找到需要的目标位置最多只需要log2n步。假设从[0,99]的队列(100个数,即n=100)种寻找目标数30,则需要查找步数log2100,即最多需要查找7次(26<100<27)...

2021-11-26 23:15:11 1533

原创 图(graph)

图图基本介绍前面我们学了线性表和树线性表局限于一个直接前驱和一个直接后续的关系树也只能由一个直接前驱也就是父节点当我们需要表示多对多的关系时,就需要用到图图是一种数据结构,其中节点可以具有零个或者多个相邻元素。两个结点之间连接称为边。结点也可以称为顶点有向图:顶点之间的连接有方向,比如A->B,只能A->B,不能是B->A带权图:这种边带权值的图也叫网。图的表示方式图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表)邻接矩阵邻接矩阵是表示图形中顶

2021-11-26 10:04:36 960 1

原创 韩顺平老师数据结构与算法学习笔记

目录数据结构与算法介绍课程的重要性,介绍了数据结构与算法的关系,分类等稀疏数组介绍什么是稀疏数组与相关应用队列介绍队列的实现,环形队列的实现链表介绍什么是链表;单向链表及双向链表实现及应用等单向环形链表约瑟夫问题介绍约瑟夫问题的处理方案栈介绍什么是栈,栈的应用,前中后缀表达式,逆波兰计算器等递归递归的介绍,递归解决实际问题:迷宫问题及八皇后问题等排序介绍了常用的几大排序:冒泡,选择,插入,希尔,快排,归并,基数排序等知识查找算法介绍常用的查找算法:二分查找,插值查找,斐波

2021-11-19 16:16:21 2032 2

原创 搭建nginx-rtmp服务器

前言前面的文章利用javacv实现了rtmp转封装,上述文章中需要的nginx-rtmp-module搭建本文做个简单的安装描述;另外这里的Linux的版本是Centos7。安装各种编译环境1 gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:yum -y install gcc gcc-c++2 PCRE pcre-devel 安装PCRE(Perl Compatible Regular Expressions) 是一

2021-11-17 14:50:50 510

原创 Javacv+Nginx实现rtsp转rtmp实现web端直播方式

前言前面的文章中使用websocket的方案在web端实现rtsp播放,因为各种原因,现需要重新写一套方案。不废话,上才艺!!!添加依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope>

2021-11-09 21:53:22 2217 9

原创 JAVA音视频解决方案--JavaCV

JavaCV是多种开源计算机视觉库组成的包装库一组jar包。JavaCV是一款基于JavaCPP 调用方式(JNI的一层封装),由多种开源计算机视觉库组成的包装库,封装了包含FFmpeg、OpenCV、tensorflow、caffe、tesseract、libdc1394、OpenKinect、videoInput和ARToolKitPlus等在内的计算机视觉领域的常用库和实用程序类。

2021-11-09 20:45:00 801

原创 哈希表(HashTable)

哈希表(HashTable)哈希表(hash table 也称散列表),是根据关键码值(key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来记录访问,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表

2021-11-08 22:15:00 3015

原创 树(tree)

为什么需要树这种数据结构数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可以使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低操作示意图

2021-11-06 23:16:03 683

原创 常用查找算法

查找算法介绍在java中,我们常用的查找有四种:1 顺序(线性)查找2 二分查找/折半查找3 插值查找4 斐波那契查找二分查找算法二分查找:请对一个有序数组进行二分查找{1,8,10,89,1000,1234},输入一个数看看该数组是否存在次数,并且求出下标,如果没有就提示“没有这个数”二分查找思路1 先确定数组中间下标 mid = (left+right)/22 然后让需要查找的数findVal和arr[mid]比较2.1 如果findVal>arr[mid],说明需要查找

2021-11-02 20:55:31 325

原创 翰高数据库安装连接

1 背景最近公司在做一个军用机场跑道异物检测设备,但是由于各国之间的关系紧张,军放要求我们软件做一个国产数据库的适配;经查阅才知道这个翰高数据库用的内核为postgresql,然后再这个基础上做了一定修改与优化。废话不多说,安排!2 数据库安装下载安装包本文以hgdb4.5.6-see-centos7-x86-64-20210303.rpm版本为列进行安装讲解2.1 环境准备开启防火墙#开启防火墙systemctl start firewalld.service systemctl s

2021-10-20 22:00:00 7267 1

原创 排序(Sort)

排序排序也称排序算法 ( Algorithm)排序是将一组数据,依指定的顺序进行排列的过程。

2021-10-18 22:52:45 2888

原创 递归(recursion)

递归递归就是一个方法自己调用自己递归适用场景各种数学问题:八皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等将用栈解决的问题用递归实现代码比较简洁递归需要遵守的重要规则执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响,比如n变量如果方法中使用的是引用类型变量(如数组),就会共享该引用类型的数据递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflow

2021-10-16 22:53:55 519

原创 栈(stack)

栈的简介栈(stack)栈是一个先入后出(FILO-first in last out)的有序列表。栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表,允许插入和删除的一端,为变化的一端,称为栈顶(top),另一端为固定的一端,称为栈低(bottom)根据栈的定义可知,最先放入栈中元素在栈低,最后放入元素宅栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除应用场景子程序的调用:在跳往子程序前,会先将下个指令的地址存到堆中,直到子程序执行完后再将地址取

2021-10-11 20:39:01 1888

空空如也

空空如也

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

TA关注的人

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