- 博客(64)
- 收藏
- 关注
原创 Java基础简要(基础、集合、正则、时间类、异常、Stream流、File类、IO流、多线程、数据结构、泛型)
Java基础简要(基础、集合、正则、时间类、异常、Stream流、File类、IO流、多线程、数据结构、泛型)
2024-06-26 15:24:37
983
原创 docker打包镜像并迁移到其他服务器上
docker commit -a "st" -m "ymxxcrmzs" 5963fe81b7cf oldcrmzs:1.0docker save -o my_oldcrmzs.tar dcca8f69760cscp my_oldcrmzs.tar 81.70.229.20:/www/service/oldcrmzs/docker load --name oldcrmimage --input my_oldcrmzs.tardocker run --name oldcrmzs -it -di -e
2024-06-20 10:28:18
198
原创 RabbitMQ详解-06RabbitMQ高级
1. 过期时间TTL可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取;过了之后消息自动被删除。RabbitMQ可以对消息和队列设置TTL。有以下两种设置方法:通过队列属性设置,队列中所有消息都有相同的过期时间。对消息进行单独设置,每条消息TTL可以不同。若两种方法同时使用,则消息的过期时间以两者之间TTL较小的那个数值为准。消息在队列的生存时间一旦超过设置的TTL值,就称为dead message被投递到死信队列, 消费者将无法再收到该消息。1.1. 设置队列TTL配置类中设置:
2024-06-20 10:27:42
1128
1
原创 jQuery看这一篇就够啦,jQuery基础大全,可用于快速回顾知识,面试首选
jQuery看这一篇就够啦,jQuery基础大全,可用于快速回顾知识,面试首选
2023-03-27 17:50:03
5388
2
原创 HTML5新特性、CSS3新特性看这一篇就够啦,可用于快速回顾知识,面试首选
HTML5新特性、CSS3新特性看这一篇就够啦,可用于快速回顾知识,面试首选
2023-03-14 17:09:54
803
1
原创 [Vue warn]: Invalid prop: custom validator check failed for prop “percentage“.
elementui进度条报错,但是项目正常运行,网上说加v-if,但是并没有解决我的问题解决办法它来了!!!give me 使劲的 look后来经过查找,发现 percentage 值必须在 0~100,不能比0小,不能比100大!!!ps:percentage必须有值...
2022-05-27 14:48:31
2103
1
原创 oshi报错:java.lang.AbstractMethodError: com.sun.jna.Structure.getFieldOrder()Ljava/util/List;
当采用springboot或springcloud集成oshi来获取服务器的一些配置信息的时候,Java代码报错:java.lang.AbstractMethodError: com.sun.jna.Structure.getFieldOrder()Ljava/util/List;网上的说法是加jna的依赖,此办法跟没用,oshi里涵盖了jna,上证据:所以再引入一遍jna没卵用。。。突然一天我灵光乍现,可能是依赖顺序的问题!!因为boot或者cloud下某个包会导致oshi冲突!解决办法:
2022-01-11 13:48:34
2129
7
原创 RabbitMQ详解-05Spring Boot整合RabbitMQ
1. 简介一般在开发过程中:生产者工程:application.yml文件配置RabbitMQ相关信息。在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定。注入RabbitTemplate对象,通过RabbitTemplate对象发送消息到交换机。消费者工程:application.yml文件配置RabbitMQ相关信息。创建消息处理类,用于接收队列中的消息并进行处理。2.成产者:2.1依赖<dependency> <groupId>org.s
2021-07-22 16:37:10
257
原创 RabbitMQ详解-04RabbitMQ工作模式
获取channel的工具类在上一篇博客中:传送门1. Work queues工作队列模式1.1. 模式说明Work Queues与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。1.2. 代码Work Queues与入门程序的简单模式的代码是几乎一样的;可以完全复制,并复制多一个消费者进行多个消费者同时消费消息的测试。生产者:public class Producer {
2021-07-22 15:35:34
153
原创 RabbitMQ详解-03RabbitMQ简单使用和工作流程
1.简单消息的生产和消费依赖:<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.8.0</version></dependency>获取channel的工具类;public class RabbitMqUtils { public static Chan
2021-07-22 12:02:29
141
1
原创 RabbitMQ详解-02RabbitMQ基本介绍
开发中消息队列通常有如下应用场景:任务异步处理应用解耦削峰填谷1.RabbitMQ介绍RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官方地址:http://www.rabbitmq.com/RabbitMQ提供了6种模式:简单模式,work模式,Publish/Subscribe发布与订阅模式,Routing路
2021-07-22 11:55:13
212
1
原创 磁盘阵列RAID详解
1 RAID历史1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 ,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的
2021-07-21 11:47:36
1144
原创 Rocketmq详解04-高级功能(消息存储、高可用性机制、负载均衡、消息重试、死信队列、消费幂等)
1 消息存储分布式队列因为有高可靠性的要求,所以数据要进行持久化存储。消息生成者发送消息MQ收到消息,将消息进行持久化,在存储中新增一条记录返回ACK给生产者MQ push 消息给对应的消费者,然后等待消费者返回ACK如果消息消费者在指定时间内成功返回ack,那么MQ认为消息消费成功,在存储中删除消息,即执行第6步;如果MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新push消息,重复执行4、5、6步骤MQ删除消息1.1 存储介质关系型数据库DBApache下开源的
2021-06-30 09:53:41
1371
原创 Rocketmq详解03-消息发收发样例
1 基本样例1.1 消息发送1)发送同步消息public class SyncProducer { public static void main(String[] args) throws Exception { // 实例化消息生产者Producer DefaultMQProducer producer = new DefaultMQProducer("group1"); // 设置NameServer的地址 producer.setNamesrvA
2021-06-25 10:32:37
1466
1
原创 rocket无法创建topic,报异常AclException: [10015:signature-failed] unable to calculate a request signatu
1.查询ext文件find / -name 'ext' |grep jdk结果:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre/lib/ext2.进入rocket下的bin目录,执行:vi tools.sh修改前:#===========================================================================================# JVM C
2021-06-23 17:53:59
2528
原创 Rocketmq详解02-mq安装
1.创建namesrv服务拉取镜像docker pull rocketmqinc/rocketmq:4.4.0创建namesrv数据存储路径mkdir -p /docker/rocketmq/data/namesrv/logs /docker/rocketmq/data/namesrv/store构建namesrv容器docker run -d \--restart=always \--name rmqnamesrv \-p 9876:9876 \-v /docker/rock
2021-06-23 16:41:01
2089
原创 Rocketmq详解01-mq介绍与集群
1. MQ介绍1.1 为什么要用MQ消息队列是一种“先进先出”的数据结构其应用场景主要包含以下3个方面应用解耦系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下单操作异常,影响用户使用体验。使用消息队列解耦合,系统的耦合性就会提高了。比如物流系统发生故障,需要几分钟才能来修复,在这段时间内,物流系统要处理的数据被缓存到消息队列中,用户的下单操作正常完成。当物流系统回复后,补
2021-06-23 15:13:15
1377
原创 Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=cont
注意:本文只针对远程服务器,若本地虚拟机出现这个问题可能是网络问题远程服务器出现这个问题基本都不是网络的原因,千万不要轻易修改网卡或者重启网络,,,1.首先将yum源设置为阿里云wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo2.更新yumyum update这样就搞定了!...
2021-05-25 18:00:56
2211
1
原创 RabbitMQ详解-01docker安装RabbitMQ 和 No chain/target/match by that name解决办法
1.docker安装RabbitMQ#这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本号即可docker pull rabbitmq#启动RabbitMQ --hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);docker run -d --hostname myRabbit --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq#进入容器并安装插件d
2021-05-13 09:34:11
1232
原创 限流算法和Nginx配置限流
1.限流算法:1.计数器算法计数器算法采用计数器实现限流有点简单粗暴,一般会限制一秒钟的能够通过的请求数,比如限流qps为100,算法的实现思路就是从第一个请求进来开始计时,在接下去的1s内,每来一个请求,就把计数加1,如果累加的数字达到了100,那么后续的请求就会被全部拒绝。等到1s结束后,把计数恢复成0,重新开始计数。具体的实现可以是这样的:对于每次服务调用,可以通过AtomicLong#incrementAndGet()方法来给计数器加1并返回最新值,通过这个最新值和阈值进行比较。这种实现方式
2021-05-12 14:14:10
1401
原创 Kafka01--docker安装kafka
1.下载镜像#下载zookeeperdocker pull wurstmeister/zookeeper#下载kafkadocker pull wurstmeister/kafka:2.11-0.11.0.32.启动镜像#启动zookeeperdocker run -d --name zookeeper -p 2181:2181 wurstmeister/zookeeper#启动kafkadocker run -d --name kafka -p 9092:9092 -e KAFKA_
2021-05-10 17:57:13
1111
原创 用Docker搭建FastDFS的开发环境
1.拉取镜像docker pull morunchang/fastdfs2.运行trackerdocker run ‐d ‐‐name tracker ‐‐net=host morunchang/fastdfs sh tracker.sh3.运行storagedocker run ‐d ‐‐name storage ‐‐net=host ‐e TRACKER_IP=group1:22122 ‐e GROUP_NAME=<group name> morunchang/fastdfs
2021-05-10 15:23:39
1328
原创 FastDFS连接超时,ConnectException: Connection timed out: connect
1.首先检查tracker_server ip地址是否正确2.本人是docker安装的,查看tracker和storage的容器的 /etc/fdfs/中的storage.conf和client.conf配置的IP是否有问题tracker_server=192.168.0.132:22122修改完后重启容器docker restart tracker的容器名docker restart storage的容器名3.放开端口或关闭防火墙方式一:放开端口(建议)# 放开22122和23000
2021-05-10 14:46:51
2602
原创 docker安装elasticsearch和kbana
1.安装elasticsearch拉取镜像docker pull elasticsearch:7.12.0创建并启动容器docker run -d --name esserver -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.12.0浏览器访问,成功:2.安装kbana拉取镜像docker pull kibana:7.12.0创建并运行容器docker run -d
2021-04-19 14:26:23
1352
原创 使用docker安装MySQL
1.安装docker安装docker具体步骤教程看我另一篇博客,传送门2.docker安装MySQL查询MySQL:docker search mysql安装mysql:docker pull mysql查看镜像:docker images在opt下创建文件夹:mkdir mysql_docker cd mysql_docker/ echo $PWD启动mysql容器,在var/lib/docker/containers/下查看容器:docker run --
2021-04-19 12:56:22
3082
1
原创 SecureCRT 从服务器端下载文件到本地
1.快捷键alt+p打开sftp窗口,输入想要下载的文件所在的目录,回车lcd E:/download2.输入要下载的文件get /usr/hello.jar回车之后,就能将服务器中指定的文件下载到本地指定的目录下。
2021-03-10 14:26:43
9464
原创 JUC并发编程
1.JUC简介JUC其实是java.util 工具包2.线程和进程进程:一个程序,可以包含多个线程。Java默认有2个线程:mian、GC。Java开启线程的三个办法:Thread、Runnable、Callable。Java实际开不了线程,因为Java无法操作硬件,通过调用底层c++的本地方法start0创建线程。并发、并行并发:多线程操作同一个资源,一核 CPU 模拟出来多条线程;本质:充分利用CPU的资源;并行:CPU 多核 ,多个线程可以同时执行;线程的状态publ
2021-01-22 16:43:10
1115
原创 Git第一次提交代码步骤
先创建一个.gitignore文件,并加入以下内容/target*.class/.idea/.gitTest.iml.gitignore先初始化git init把需要提交的文件夹添加到本地git add Testgit add Test2...与服务端建立关系git remote add origin https://xxx.gitpush到远程git push -f origin master这样就OK了~...
2020-12-25 16:49:48
1867
原创 elasticsearch聚合时提示Fielddata is disabled on text fields by default或Set update_all_types to true to
执行以下es聚合语句:GET threats/attack/_search{ "aggs": { "srcIp": { "terms": { "field": "info.src_ip"} } }}报错:{ "error": { "root_cause": [ { "type": "illegal_argument_exception", "reason": "Fielddata is disabled
2020-12-15 15:23:52
1637
原创 Elasticsearch安装、增删改查、聚合和Kibanna
Elasticsearch具备以下特点:分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)Restful风格,一切API都遵循Rest原则,容易上手近实时搜索,数据更新在Elasticsearch中几乎是完全同步的基本概念索引(indices)-------------------------Databases 数据库类型(type)-----------------------------Table 数据表文档(Document)-----------
2020-12-10 15:53:04
1805
原创 Linux常用指令、硬链接、软链接
关机sync # 将数据由内存同步到硬盘中。shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:shutdown –h 10 # 计算机在10分钟后关机shutdown –h now # 立马关机shutdown –h 20:25 # 系统会在今天20:25关机shutdown –h +10 # 十分钟后关机shutdown –r now # 系统立马重启shutdown –r +10 # 系统十分钟后重启
2020-12-01 16:50:39
1218
原创 Redis(二)持久化和发布订阅
持久化RDB在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存里。Redis会单独创建( fork )一个子进程来进行持久化,会先将数据写入到一个二进制临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。默认的就是RDB ,一般情况下不
2020-12-01 10:50:58
1107
原创 Redis(三)缓存击穿、缓存穿透、雪崩详解及解决办法
缓存穿透用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发·现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中(秒杀! ) ,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。缓存空值,如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),仍然把这个空结果进行缓存。规范key的命名,并且统一缓存查询的入口,在入口处对key的命名格式进行检测,过滤掉不规范key的访问,这样可以过滤掉大部分
2020-12-01 10:47:03
1143
原创 Redis(一)基础、事务、配置文件详解、持久化、压力测试
基础知识Redis是一个开源( BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ,它支持多种类型的数据结构,如字符串(strings) ,散列(hashes) ,列表(lists) ,集合(sets) ,有序集合(sorted sets)与范围查询,bitmaps,hyperloglogs和地理空间( geospatial )索引半径查询。Redis内置了复制(replication),LUA脚本(Luascripting),LRU驱动事件( LRU eviction ),
2020-11-13 15:40:33
1227
原创 MySQL03--存储过程、游标、视图、触发器
1.存储过程创建存储过程:create procedure 名称(参数1,参数2...)begin.........end删除存储过程:drop procedure 存储过程;执行存储过程:cell 存储过程(参数1,参数2...);设置变量:declare username varchar(32) default ‘张三’;给变量赋值(set): set username = ‘李四’;给变量赋值(into):create procedure sp_
2020-11-09 16:56:28
1137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人