JAVA学习
文章平均质量分 69
云间歌
暂无
展开
-
解决Elasticsearch集群开启账户密码安全配置自相矛盾的坑
一、采坑过程最近在配置elasticsearch生产可用的集群环境时,集群搭建完成后,为了安全,启用es集群的安全配置,根据官方文档Set up minimal security for Elasticsearch这一节来配置集群账户密码,然后就出现了开启安全模式后,./bin/elasticsearch-setup-passwords auto ,./bin/elasticsearch-setup-passwords interactive 两个命令均无法访问。提示集群健康状态无法检查,实际上就是集群本原创 2022-01-13 10:58:24 · 14069 阅读 · 5 评论 -
你还在用普通磁盘挂载模式吗,扩容太难,LVM也许更好使,centos7.8配置lvm并挂载
centos7.8配置lvm并挂载1 lvm是什么 LVM(Logic Volume Manager)即逻辑卷管理器,是linux系统用户对硬盘分区管理的一种机制。创建初衷是为了解决硬盘设备在创建完分区后不易修改分区的问题,LVM技术是在硬盘分区和文件系统之间加了一个逻辑层,他提供了一个抽象的卷组,可以把多个硬盘进行卷组合并,这样一来,用户就不用担心物理硬盘设备的底层架构布局,可以轻松实现对硬盘分区的动态调整。简而言之就是动态添加、缩减空间,而不会影响原有数据。2 lvm原理及常用命令PV(Ph原创 2021-09-15 12:13:22 · 520 阅读 · 0 评论 -
一次mysql查询过慢的优化记录
在生产环境中有一个功能,加载数据超过了30秒,于是开始启动优化之路。优化过程大致为:数据同步到本地进行测试找出慢查询的语句查询语句在本地与服务器上分别执行进行对比分析慢查询的原因提出优化解决方案1 数据同步到本地进行测试第一步做的是将数据同步到本地进行测试,毕竟在生产环境中进行测试还是不可取的。本次数据库数据量有12G左右,使用mysqldump来进行数据备份,并通过ftp或者共享文件夹的方式下载到本地恢复。备份数据命令:#进入mysql安装目录bin目录下:mysqldump -原创 2021-07-02 15:58:38 · 152 阅读 · 0 评论 -
OpenSSH 安全漏洞(CVE-2021-28041)修复(升级OpenSSH至最新版本(8.6p1))
CVE-2021-28041漏洞描述:OpenSSH(OpenBSD Secure Shell)是Openbsd计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH before 8.5 存在安全漏洞,攻击者可利用该漏洞在遗留操作系统上不受约束的代理套接字访问。解决办法:升级OpenSSH至最新版本(8.6p1)1. 下载OpenSSH下载地址: https://openbsd.hk/原创 2021-06-04 16:26:20 · 24213 阅读 · 18 评论 -
OpenSSH 命令注入漏洞(CVE-2020-15778)修复
OpenSSH 命令注入漏洞(CVE-2020-15778)修复最近安全部门丢了一堆服务器漏洞扫描结果过来,开发运维都得干的我火急火燎又开始去修补漏洞去了。1. 漏洞介绍 OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。OpenSSH 8.6p1及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造原创 2021-06-04 09:35:10 · 26193 阅读 · 18 评论 -
tomcat catalina.out日志切割处理方案
使用logrotate进行日志自动切割,简单配置即可实现自动切割tomcat、应用程序产生的日志。其中,我们普通java程序在linux中使用nohup指令执行后,所有的输出会追加到nohup.out这个文件中,如果不进行切割,此文件就会越来越大,查询日志就变得很困难。目前一般linux发行版都自动安装了logrotate工具,一般不需要自行安装。如果没有自带,可以使用yum等命令进行安装。配置流程在/etc/logrotate.d/目录下创建一个文件,如tomcat_catalina,写入以下内原创 2021-06-03 17:02:09 · 3157 阅读 · 0 评论 -
ELK单机版安装部署
ELK单机版安装部署环境:centos7elasticsearch安装版本:7.13.0下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.0-linux-x86_64.tar.gz添加用户及用户组groupadd elkuseradd elk -g elk -p elk@2021#root用户是不能直接启动elasticsearch的,需要新建用户,并且使用新建的用户启动es上传到原创 2021-06-03 16:53:01 · 1253 阅读 · 2 评论 -
JAVA Stomp客户端无法接收太大的数据的解决和挣扎
最近在使用stomp java客户端,使用的是spring-websocket包。连接服务端的方法如下:public ListenableFuture<StompSession> connect(String url, StompHeaders stompHeaders) throws InterruptedException, ExecutionException { st...原创 2019-05-28 10:00:20 · 4659 阅读 · 2 评论 -
java基础-手动实现ArrayList
对于java开发者来说,大概用得最多的容器就是ArrayList了。所以掌握ArrayList的底层实现,还是比较重要的。一般面试的时候也是常见的问题。 废话不多说,直接上代码。注释也很详细。首先是定义一个List接口。这样我们后面可以实现ArrayList,也可以实现LinkedList。一、定义List接口package com.zwh.linert...原创 2018-12-28 10:58:29 · 774 阅读 · 0 评论 -
java学习笔记-设计模式之原型模式
昨天主要学习了建造者模式,今天学习的是创建型模式中的最后一个:原型模式。创建型模式,其实就是用来帮助我们创建对象的。无论是单例模式,工厂模式还是建造者模式,还有今天的原型模式。每一种模式都有自己的战场。原型模式就主要适用于:new初始化一个实例过程繁琐、访问控制导致创建实例比较耗时的时候,就可以考虑使用原型模式。通过原型模式,可以快速克隆一个全新的实例出来,并且克隆出的对象与原来的对象的值...原创 2018-11-27 23:50:57 · 168 阅读 · 0 评论 -
java学习笔记-设计模式之建造者模式
前情回顾在前几天学习了单例模式、简单工厂模式、工厂方法模式和抽象工厂模式之后,今天主要学习的是建造者模式。首先回顾一下工厂模式简单工厂模式:主要将实例的创建集中在一个工厂中。调用者只需要传入相应参数,即可创建出对应实例。对于普通开发者来说,简单工厂模式使用较多优点:工厂中处理了复杂的实例创建逻辑,调用者只需要传入参数即可。造福于调用者缺点:需要对实例创建进行扩展时需要修改工厂...原创 2018-11-26 22:49:57 · 215 阅读 · 0 评论 -
java学习笔记-设计模式之适配器模式
适配器模式主要用于将两个由于不兼容而不能在一起工作的两个类通过适配器可以一起工作,比如通过USB转VGA的转接头,使没有VGA接口的电脑可以通过USB接口,通过转接头转接连上投影仪。特别是在老系统升级中,此类使用会比较多。适配器模式主要包含三个角色:Target(目标类):目标类定义客户所需的接口,可以是一个抽象类或接口,也可以是具体类。 Adapter(适配器类):它可以调用另一个...原创 2018-11-28 23:49:48 · 141 阅读 · 0 评论 -
java学习笔记-设计模式之从工厂方法到抽象工厂模式
之前学习了工厂模式中的简单工厂模式及工厂方法模式。这两种模式对于产品的创建来说特别方便。本次要说的抽象工厂模式。抽象工厂模式相对简单工厂模式及工厂方法模式复杂了许多。本次以用户和部门作为例子,一步一步从工厂方法加深到抽象工厂模式。首先,将添加用户和删除用户接口中,因数据库连接可能是MySQL,也可能是Oracle或者其他。所以我们用MySQLUserOperation来实现User接口,代表从...原创 2018-11-24 23:42:50 · 120 阅读 · 0 评论 -
java学习笔记-设计模式之工厂方法模式
一、简介 在上一节的学习中,主要学习了简单工厂模式。简单工厂模式比较适合于提前能够考虑到大部分可能的情况,否则扩展时,就不太符合OCP原则。扩展时需要修改工厂类,但其实在一般项目中,简单工厂模式反而是使用比较多的。原因就在于工厂方法模式虽然符合OCP原则,扩展方便,扩展不需要修改工厂类,但会为每一种情况添加一个新类,最终导致产生出太多的类。二、实现工厂方法模式的实现过程如...原创 2018-11-24 19:11:43 · 205 阅读 · 0 评论 -
java学习笔记-设计模式之简单工厂模式
一、简介简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式。主要实现创建者和调用者的分离。核心本质:-实例化对象,用工厂方法代替new操作。-将选择实现类、创建对象统一管理和控制,从而将调用者跟...原创 2018-11-24 12:23:27 · 171 阅读 · 0 评论 -
java学习笔记-设计模式之五种单例模式实现效率测试
在前两天的学习中主要对单例模式完成了五种实现,并针对反射及反序列化漏洞进行防止,最后对五种实现模式的效率进行测试。五种最终实现单例模式代码如下:1、懒汉式实现单例模式:package com.zwh.gof23.singleton;import java.io.Serializable;/** * 懒汉式到单例模式(防序列化及反射漏洞) * @author zwh * ...原创 2018-11-24 10:01:17 · 260 阅读 · 0 评论 -
java学习笔记-设计模式之单例模式如何防止反射及反序列化漏洞
在前一篇文章中,对单例模式列举了五种实现方式。其中枚举模式拥有出生光环,天生就没有反射及反序列化漏洞。针对其他四种实现方式,在本篇文章中对懒汉式单例模式实现进行反射及反序列化漏洞测试。一、通过反射破解懒汉式单例模式重新创建测试类TestClientNew,通过反射获取到类,使用newInstance进行初始化。代码如下(详细看注释):package com.zwh.gof23.sin...原创 2018-11-22 21:28:26 · 985 阅读 · 1 评论 -
java学习笔记-设计模式之单例模式五种实现方式
一、简介单例模式的核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。常见案例:回收站优点:1、单例模式只生成一个实例,降低系统性能开销。2、方便资源共享常见单例模式:饿汉式:线程安全、效率高、不能延迟加载,当全程没使用到该实例时,浪费系统资源。懒汉式:线程安全(加锁)、调用效率相对饿汉式低,可以延迟加载。:双重检测锁式:由于jvm内部底层模型...原创 2018-11-21 22:04:45 · 194 阅读 · 0 评论