- 博客(19)
- 收藏
- 关注
原创 RabbitMQ入门
多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息将消息按照规则路由到与之绑定的队列不能缓存消息,路由失败,消息丢失FanoutExchange的会将消息路由到每个绑定的队列描述下Direct交换机与Fanout交换机的差异?Fanout交换机将消息路由给每一个与之绑定的队列Direct交换机根据RoutingKey判断路由给哪个队列。
2024-10-13 17:23:24
1733
原创 使用Nexus搭建Maven私服教程 & 向nexus上传下载
nexus仓库有3种类型:hosted,宿主仓库,部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部分。Releases:公司内部发布版本仓库、 Snapshots :公司内部测试版本仓库proxy,代理仓库,用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私服自动去中央仓库下载 jar 包或者插件。一般我们用来代理阿里云中央仓库。group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓库组。
2023-05-15 17:56:40
6139
原创 Linux 中的 sed 命令
sed 命令的基本格式如下:[root@localhost ~]# sed [选项] [脚本命令] 文件名sed命令常用选项及含义:-e :直接在命令行模式上进行sed动作编辑,此为默认选项;-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作;-i :直接修改文件内容;-n :默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽启动输出,需使用 print 命令来完成输出。-r :支持扩展表达式;
2023-04-12 13:51:47
742
原创 G1 垃圾收集器原理详解
JVM 团队设计出 G1 收集器的目的就是取代 CMS 收集器,因为 CMS 收集器在很多场景下存在诸多问题,缺陷暴露无遗,具体如下:(1)CMS收集器对CPU资源非常敏感。在并发阶段,虽然不会导致用户线程停顿,但是会占用CPU资源而导致引用程序变慢,总吞吐量下降。CMS默认启动的回收线程数是:(CPU数量+3) / 4。
2023-04-11 15:32:07
619
原创 Linux系统本地配置启动两个tomcat,并实现简单的nginx负载平衡
笔者在自己的Linux环境中部署了端口号为8080 与8081的tomcat,后面的weight是权重的意思,权重占比越高,nginx就有越高的可能性代理到对应的网址。配置完成,记得在nginx的sbin目录下./nginx -s reload重新加载一下nginx服务。开启tomcat8080端口的服务器,访问nginx 9880 端口,出现代理的tomcat 网址。这是因为当nginx服务器发现访问8081页面失败,就会立刻转而访问8080服务端口。只开启tomcat的8080,关闭8081。
2023-04-10 10:28:53
400
原创 Linux用户访问所属组权限的目录出现Permission denied
原因:NFS协议的RPC报文,标准最多带有16个群组的消息,超过部分会舍弃,所以存储侧协议层收到的RPC报文中,不会含有group17的信息,从而导致鉴权失败。经过分析于问题复现,发现在将该用户A加入B、C 两个组前,该用户已经加入了16 个组,因为nas挂载限制的原因,一个用户最多可以加入16个组。将一个用户A添加到了B、C两个组里,然后访问目录组权限为B、C的目录,出现了。那如果没有nas挂载限制,一个用户可以加入多少个组,答案是32个。,但明明这用户在这两个组里。
2023-04-07 17:53:31
612
原创 Linux巡检脚本
转载于别人的Linux巡检脚本,可以很好的入门运维#!/bin/bash# @Author: HanWei# @Date: 2020-03-16 09:56:57# @Last Modified by: HanWei# @Last Modified time: 2020-03-16 11:06:31# @E-mail: han_wei_95@163.com#!/bin/bash#主机信息每日巡检IPADDR=$(ifconfig eth0|grep 'inet addr'|awk
2023-04-07 16:38:43
292
原创 一篇文章彻底搞懂GC
垃圾收集(Garbage Collection)简称为「GC」,它的历史远比Java语言本身久远,在1960年诞生于麻省理工学院的Lisp是第一门开始使用内存动态分配和垃圾收集技术的语言。要想实现自动垃圾回收,首先需要思考三件事情:前面介绍了JVM的五大内存区域,程序计数器占用内存极少,几乎可以忽略不计,而且永远不会内存溢出,GC不需要对其进行回收。
2023-04-07 15:50:54
2364
原创 Linux上部署多个 Tomcat 服务器
第二个 Tomcat 将 catalina.sh 中的 CATALINA_BASE 和 CATALINA_HOME 批量替换成在 /etc/profile 中配置的第二个 tomcat 对应的信息。6、到这里,就已经配置完成了,在每个tomcat的 /bin 目录,我们依次启动这两个tomcat,输入命令:ps -ef |grep tomcat 查看进程。3.修改 /etc/profile文件,在文件的末尾加上两个tomcat的路径配置。切换目录:cd /usr/local/tomcat8081/bin。
2023-04-07 08:37:32
1375
原创 Java代理模式 JDKProxy和CGLibProxy
Java代理模式代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的
2020-11-07 18:41:45
177
原创 JAVA 对文件的操作、流(Stream)、文件(File)和IO,含实例
对文件的操作通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。File(String pathname)public String getAbsolutePath();//返回抽象路径名的绝对路径名字符串。public boolean mkdirs();//创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。public boolean mkdir()//创建此抽象路径名指定的目录。//返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。publi
2020-10-29 19:52:47
551
原创 滴答滴答 ——Java计时器
Java计时器作用:计时器也就是用来计时的东西。当你需要隔一段时间去干一件事的时候就可以用到它,比如:当某拼夕夕网站的抢购在一段规定的时间内需要结束时。比如某宝的页面需要在一段规定的时间里刷新页面时。当你设置的闹钟在规定时间将你叫醒。实现原理:Thread.sleep(long millis);调用此方法可以让线程实现millis时间长度的睡眠。代码显示:package com.dxc.simple_dida.core.core;public interface ISimpleDiDa
2020-10-25 13:55:05
371
原创 关于抽象类的学习
用关键字abstract修饰一个方法,并且只“声明”而不具体实现这个方法,就可以生成一个抽象方法。包含至少一个抽象方法的类,且用abstract修饰,称为抽象类。下面给用代码具体讲述package com.mec.about_abstract.core;public abstract class Shape { protected String name; public Shape(String name) { this.name = name; } public abstra
2020-05-14 14:39:51
528
原创 递归实现反转单链表
反转单链表。例如链表为:1->2->3->4。反转后为4->3->2->1链表的结构体定义如下:typedef struct Node{ int data; Node *next;} Node, *List;
2020-03-13 16:14:50
751
1
原创 顺序表及其基本操作
顺序表详解顺序表存储逻辑关系为“一对一”的顺序。在存储数据之前,要提前申请好一块足够大小的物理空间。顺序表初始化使用顺序表存储数据之前,除了要申请足够大小的物理空间之外,为了方便后期使用表中的数据,顺序表还需要实时记录以下 2 项数据:1、顺序表申请的存储容量;2、顺序表的长度,也就是表中存储数据元素的个数;因此我们要自定义顺序表,C语言代码如下:typedef int ElemT...
2020-03-09 12:45:44
471
1
原创 线性表详解
线性表的讲解我们先定义用户自定义类型typedef int USER_TYPE; // 用户也可根据具体情况,替换int类型。typedef struct LINEAR { USER_TYPE *data; //声明了一个名为data的长度不确定的数组,也叫“动态数组” int capacity; //空间容量 int count; //有效元素个数}LINE...
2020-02-23 15:29:24
199
1
原创 C语言八皇后问题----递归精讲
C语言八皇后问题棋盘是8*8的,所以定义一个8的宏,方便后面的使用,如果以后更改棋盘大小,也只需要更改宏定义就好了,很方便。代码如下:#define WIDTH 8定义一个8*8(棋盘大小为8),值全为0的二维数组,,后面每放一个皇后,其二维数组上的值对应改变为1(0表示无皇后,1表示有皇后)。代码如下:chessBoard[WIDTH][WIDTH] = {0};放置皇后的原则...
2019-11-30 00:34:52
1712
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人