自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叶梦

程序员的笔记

转载 Log4j.properties配置详解

1 入门示例1.1 新建一个Java工程,导入包log4j-1.2.17.jar,整个工程最终目录如下1.2 src同级创建并设置log4j.properties### 设置###log4j.rootLogger = debug,stdout,D,E### 输出信息到控制抬 ###log4j.appender.stdout = org.apache.log4j.Conso...

2020-04-02 15:19:25 766

原创 Java简单整合Kafka实现生产者和消费者

1 准备此处准备只做说明,具体准备可查阅相关资料实现(1)准备zookeeper服务,可以是集群,也可以是单机:https://blog.csdn.net/qq_15092079/article/details/105079769;(2)准备kafka服务,可以是集群,也可以是单机:https://blog.csdn.net/qq_15092079/article/detail...

2020-03-25 17:53:00 286

原创 Zookeeper集群搭建(入门基础)

1 概述1.1 zookeeper的角色zookeeper 集群通常是用来对用户的分布式应用程序提供协调服务的,为了保证数据的一致性,对 zookeeper 集群进行了这样三种角色划分:leader、follower、observer分别对应着总统、议员和观察者。总统(leader):负责进行投票的发起和决议,更新系统状态。 议员(follower):用于接收客户端请求并向客户端返回...

2020-03-25 10:59:23 92

原创 nodejs下载安装(基础)

这种卡住的原因,一般都是由于下载源不在国内导致的,故我们可以更改下下载方式。如果是在中国,那么可以使用这个源:淘宝 NPM 镜像:#可能会需要sudo命令,通过最高权限来下载安装(sudo) npm install cnpm -g --registry=https://registry.npm.taobao.org然后,我们就可以用 cnpm 命令来安装我们需要的模块了,从reg...

2020-03-19 16:46:39 142

原创 Mac Updating Homebrew...卡住了

在Mac中使用brew install命令安装软件时出现 Updating Homebrew... 卡住的问题,原因是本机与镜像源的网络不通,或网速很慢。我们要做的是,只需要确保已安装homebrew,更新镜像源就可以了。我们执行 brew 命令安装软件的时候,跟以下 3 个仓库地址有关:brew.git、homebrew-core.git 和 homebrew-bottles。通过以...

2020-03-07 11:33:06 455 2

原创 日志文件自动切割(tomcat-daemon.out)

目录1 背景2 正文2.1 准备条件2.2 日志切割脚本1 背景Tomcat 在使用 jsvc 以守护进程的方式启动时(daemon.sh ),tomcat自身将会生成另外一个日志文件(catalina-daemon.out),而不是之前的catalina.out,而且catalina-daemon.out日志不会自动切割,会无限增大。本文就是说明如何定时每天切割日志,...

2020-01-08 11:10:05 157

原创 Kafka安装部署,快速入门

目录1 简介2 kafka安装3 自带zookeeper配置和启动4 kafka配置和启动4.1 配置4.2 启动服务5 测试6 问题解决1 简介它最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linked...

2020-01-06 18:02:00 120

原创 Elasticsearch集群部署(从入门到进阶)

目录1 概念1.1 Cluster 集群1.2 Node 节点1.3 Shard 分片2 集群搭建2.1 准备环境2.2 集群配置2.3 启动集群和测试3 集群管理1 概念此处以 Elasticsearch 7 为示例说明,以下说到的各种配置参数和名字都是以Elasticsearch 7 的为准。Elasticsearch是一个实时的分布式搜索分...

2019-12-28 16:56:08 168

原创 Spring service层的事务探究(Transaction rolled back because it has been marked as rollback-only)

1 背景代码在一个service层的事务方法中捕获并解决另一个事务方法抛出的异常,想要以一个正常信息返回到事务外,即controller层。示例代码如下:controller层代码@Controllerpublic class TestController { @Resource private TestService testService; @R...

2019-11-29 17:25:20 61

原创 Elasticsearch的数据备份与恢复

1 序言Elasticsearch默认配置是数据持久化的,就是ES会定时地把缓存数据刷新到硬盘,从而达到数据持久化地效果。在生产环境中,ES的数据持久化是必须的,防止出现断电时数据的丢失。当然,除了数据持久化外,我们也是得做到数据备份的,防止出现数据损坏时无法恢复数据的情况。下面开始介绍ES的数据备份和恢复。2 ES环境在开始ES的数据备份和恢复之前,我们得确保服务器的ES环...

2019-09-27 14:10:49 2557

原创 通过Java代码简单的建立与数据库的连接

通过java代码简单的连接数据库,以此检查数据库是否可以远程连接。import java.sql.Connection;import java.sql.DriverManager;public class Test { public static void main(String[] args) { // TODO Auto-gener...

2019-06-21 15:35:05 4624

原创 maven学习笔记(从入门到实战)

前言Maven项目对象模型(POM,Project Object Model的简称),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。只要是通过maven来管理的项目,都可以上传到相应的maven服务器上,让其他项目调用或者依赖。说到被其他项目调用和依赖,这里就要了解下pom.xml文件了,这是maven管理项目的每个项目的核心文件。这里举个例子,若我们自己通过mav...

2019-04-29 20:24:32 108

原创 Java jdk的安装

引言这里相信大家都应该很清楚jdk为何物了,这里就不多说了,网上一搜一大把,我这也只是为了做一个笔记而已。好了,废话不多说,下面来进入主题。 安装说明将下载好的软件包保存到服务器上:目录为/usr/softwares,也可以建立其他文件夹保存。 JDK:jdk-8u181-linux-x64.tar.gz  安装1)  拷贝软件包  [root@172-30-4-...

2019-01-12 10:09:46 101

原创 Linux系统的tomcat以daemon模式启动

目录1 序言2 安装jsvc3 添加开机自启服务3.1 debian系统为准3.1.1 对 daemon.sh 脚本做修改:3.1.2 添加服务3.1.3 开启服务3.2 centos系统为准3.2.1 对 daemon.sh 脚本做修改:3.2.2 添加服务3.2.3 开启服务1 序言Jsvc 是专为 Java 应用程序开发的一个工具包,其目标...

2018-11-01 15:46:02 2473

原创 MySQL Cluste(进阶篇)—集群配置

前言之前,写了一篇文章——MySQL Cluste(入门篇)—分布式数据库集群搭建。我们也大致了解到mysql cluster的基本概念和搭建的简单操作,知道mysql分布式数据库的高可用性和高冗余。当然,入门篇的配置是一些典型的默认配置,也基本上符合大部分的系统要求。下面,本篇主要讲的是一些比较常用和系统要求比较高的集群配置,以mysql-5.7.23和ndb-7.6.7为准。本文mys...

2018-09-20 14:53:06 467

原创 MySQL Cluste(入门篇)—分布式数据库集群搭建

目录前言1 概述1.1 分布式数据库集群1.2 数据库的分布式和主从的区别2 环境说明2.1 系统环境2.2 软件环境3 安装MySQL Cluster4 配置安装管理节点4.1 拷贝命令4.2 配置文件4.3 启动管理节点5 配置安装数据节点5.1 配置my.cnf文件5.2 安装mysql数据库5.2.1 更改权限5.2.2 ...

2018-09-13 20:26:07 8664 4

原创 Linux openssl 生成证书的详解

目录前言1 概念2 环境3 创建根证书CA4 颁发证书4.1 在需要证书的服务器上,生成证书签署请求4.2 在根证书服务器上,颁发证书5 测试5.1 读取test.pfx文件5.2 读取test.cer文件前言最近,被分配了一个任务,完成数字证书管理系统的开发,一开始我是一脸懵逼的,因为以前我对于什么数字证书都没了解过,可谓了一片空白,也不知其是用来...

2018-08-28 20:55:03 31984 10

原创 spring session通过redis存储,实现session共享

目录前言1 准备工作1.1 spring框架的jar包1.2 spring session的相关jar包2 具体步骤2.1 创建项目2.2 spring mvc的配置2.3 spring session的配置2.4 web.xml的配置3 测试3.1 创建jsp测试文件3.2 开始测试前言web开发中session一直都是做分布式集群应用时需...

2018-08-22 15:04:18 13139 5

原创 mysql数据库的主从同步,实现读写分离

目录前言1 分别在两台centos 7系统上安装mysql 5.72 master主服务器的配置2.1 配置文件my.cnf的修改2.2 创建从服务器的用户和权限2.3 重启mysql服务2.4 查看主服务器状态3 slave从服务器的配置3.1配置文件my.cnf的修改3.2 重启mysql服务3.3 连接master主服务器3.4 启动slav...

2018-08-14 20:55:57 44563 11

原创 Linux系统安装mysql数据库

目录前言1 下载mysql2 解压文件3 配置文件4 安装初始化mysql5 修改密码6 设置远程访问7 设置开机自启动8 配置环境变量前言最近闲着没事,则把mysql的详细安装步骤在这里写一遍,以防后面又忘了。MySQL 是最流行的关系型数据库管理系统,在WEB应用方面 MySQL 是最好的RDBMS(Relational Database Man...

2018-08-13 16:40:48 2568

原创 Tomcat集群搭建(nginx+tomcat+redis)

目录前言1 nginx与apache的区别2 软件安装2.1 安装说明2.2 nginx安装2.2.1 依赖包安装2.2.2 nginx安装2.2.3 测试2.3 redis安装3 集群配置3.1 nginx配置3.2 测试3.2.1 创建测试项目3.2.2 发布项目3.2.3 测试集群4 session共享4.1 相关jar包下...

2018-08-10 17:00:22 852 1

原创 Linux常用命令笔记

目录1 下载相应的命令软件:1.1 下载unzip,zip1.2 下载rz,sz1.3 下载安装网络工具(包括ifconfig、netstat等网络命令)1.4 下载安装lsof2 创建软链接,以直接使用命令3 快捷命名相应的命令4 tar命令,解压、压缩和打包5 echo命令6 创建sh执行文件7 查看进程8 用户命令9 配置java环境变量...

2018-08-08 20:45:54 549

原创 Tomcat集群搭建(APACHE+MOD_JK+TOMCAT配置)

目录1 集群1.1 什么是集群1.2 集群的特性1.3 集群的分类1.4 Tomcat集群配置的优缺点1.5 Apache+Tomcat1.6 环境说明2 软件安装2.1 安装说明2.2 JDK安装2.3 Apache安装2.3.1 apr的安装2.3.2 apr-util的安装2.3.3 pcre的安装2.3.4 apache的安装...

2018-08-08 20:40:12 600

转载 ElasticSearch全文搜索引擎-入门篇

目录前言1 安装2 基本概念2.1 Node 与 Cluster2.2 Index2.3 Document2.4 Type3 新建和删除 Index4 中文分词设置5 数据操作5.1 新增记录5.2 查看记录5.3 删除记录5.4 更新记录6 数据查询6.1 返回所有记录6.2 全文搜索6.3 逻辑运算7 参考链接8 ...

2018-08-04 15:28:42 234

转载 HTTP和HTTPS的区别

       超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为...

2018-08-04 14:18:43 74

转载 resin4.0.53安装部署文档(Linux)

1.下载安装包wget http://caucho.com/download/resin-4.0.53.tar.gz122.解压安装tar xzvf resin-4.0.53.tar.gzcd resin-4.0.53./configure --prefix=/data/resin-4.0.53make && make install123453.配置resin.prop...

2018-07-06 17:24:44 288

原创 深度优先和广度优先搜索

目录前言1 深度优先搜索2 广度优先搜索3 深度优先和广度优先的比较前言最近面试,被问到了深度优先和广度优先搜索,这个我似曾相识,曾经大学的时候学到过,但是由于这几年的工作都未接触到,所以就已经忘的差不多了。这里必须重拾旧货,重新认识下深度优先搜索和广度优先搜索算法了。1 深度优先搜索思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然...

2018-06-25 17:59:25 539

原创 判断素数最有效的算法

目录定义1 常规方法判断2 最有效方法判断3 测试定义约数只有1和本身的整数称为质数,或称素数。 1 常规方法判断根据定义,因为质数除了1和本身之外没有其他约数,所以判断n是否为质数,根据定义直接判断从2到n-1是否存在n的约数即可。Java代码如下: /** * 判断是否为素数/质数的常规方法 * 判断n是否为素数,根据定义直接判断从2到n-...

2018-06-25 17:22:27 16751

转载 什么是死锁和如何解决死锁

一、资源的分类系统中有许多不同类型的资源,需要采用互斥访问方法并且不可被抢占的资源,也就是临界资源。1.按使用次数分类(1)可重用性资源每一个可重用资源中的单元只能分配给一个进程使用,不允许多个进程共享。进程是用资源顺序:1 请求资源,如果请求失败进程阻塞或循环等待。2 使用资源。3释放资源。系统中的可重用资源数目都是相对固定的程序运行时不能增加或删除。(2)消耗性资源他是临时资源,有进程运行动态...

2018-06-25 16:09:39 836

转载 MySQL数据库优化的八种方式

1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样...

2018-06-24 22:08:01 97

转载 redis和memcache区别

Memcache和Redis区别:Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcache相比一个最大的区别。Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcache只是简单的K/V缓存。他们的扩展都需要做集群;实现方式:redis对master-slave、Memcache对Hash。在100k以上的数据中,Memcache性能要高于Redis。如果要...

2018-06-24 17:09:29 84

转载 进程与线程

今天我们来说说进程与线程,其实说到进程,我们不免会先想起程序,而说到线程,我们不免会想起多线程。那么,这几个之间到底存在着怎样的关系呢?下面让我们来看看。一、说说概念1、进程(process)狭义定义:进程就是一段程序的执行过程。广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。...

2018-06-24 14:58:52 49

转载 java NIO与IO的区别

当学习了Java NIO和IO的API后,一个问题马上涌入脑海:我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异、它们的使用场景,以及它们如何影响您的代码设计。Java NIO和IO的主要区别下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。IO                NIO面向流            面向缓...

2018-06-24 14:17:21 133

转载 堆和栈的概念和区别

在说堆和栈之前,我们先说一下JVM(虚拟机)内存的划分:      Java程序在运行时都要开辟空间,任何软件在运行时都要在内存中开辟空间,Java虚拟机运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进行管理。      JVM内存的划分有五片:       1.   寄存器;       ...

2018-06-24 13:00:24 64

转载 tomcat配置的优化

1、内存优化:优化内存,主要是在bin/catalina.bat/sh 配置文件中进行。linux上,在catalina.sh中添加:JAVA_OPTS="-server -Xms1G -Xmx2G -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:MaxPermSize=256m -XX:PermSize=128M ...

2018-06-24 12:11:49 142 1

转载 jvm内存讲解以及优化

1、jvm内存管理机制:  1)堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使...

2018-06-24 12:00:09 124

原创 框架与设计模式

目录1 struts2的设计模式1.1 MVC模式(复合模式)1.2 command命令模式1.3 proxy代理模式1.4 单例模式1.5 adatper适配器模式1.6 责任链模式2 spring mvc的设计模式3 spring的设计模式3.1 工厂模式3.2 单例模式3.3 适配器模式3.4 代理模式3.5 装饰者模式3.6 观察...

2018-06-23 23:07:10 394

转载 springmvc与struts2的区别(并发多线程)

首先对于spring的IOC来说,对象是由Spring来帮我们管理,也就是在Spring启动的时候,在Spring容器中,由Spring给我们创建的,Spring会帮我们维护,一般都是单例的,也就是一个对象。spring生成对象默认是单例的。通过scope属性可以更改为多例。第一部分:验证Spring生成对象默认是单例的。下面我们来一个网上的例子验证一下:&lt...

2018-06-23 16:19:45 646

转载 tomcat(6.0以上)的配置参数说明

配置文件server.xml<Server port="8005" shutdown="SHUTDOWN">  <!-- 属性说明      port:指定一个端口,这个端口负责监听关闭Tomcat的请求      shutdown:向以上端口发送的关闭服务器的命令字符串  -->      <Listener className="org.apache.catali...

2018-06-23 13:13:39 199

转载 ejb与ssh的区别

SSH(Struts,Spring,Hibernate) Struts取代了servlet,实现了mvc,对获取和传递的参数进行了封装和管理,控制跳转。Spring进行业务流转,主要对实例进行了托管,各类中无需自己new实例(pojo[实体类]除外),降低了耦合性。Hibernate进行数据库操作的封装。EJB(企业级JavaBean)是一个用来构筑企业级应用的服务器端可被管理组件, 设计...

2018-06-23 12:00:45 380

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