自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Linux安装jdk1.8和配置环境变量

第一步:创建jdk安装目录mkdir -p /usr/local/src/jdk第二步:查看安装程序命令:rpm -qa | grep -i jdk第三步:命令下载jdk包 这里的jdk路径可以根据自己需要填写wget --no-check-certificate --no-cookies --header “Cookie: oraclelicense=accept-secureba...

2019-07-02 23:53:19 194

原创 Lucene实现全文检索简单例子

Lucene是基于java的一个api工具包,也是最原始的全文检索实现方式,现在流行的es其底层其实就是基于Lucene的。如何使用Lucene实现全文检索呢?创建索引7步走:1、指定索存放位置也就是索引的存放位置2、创建一个自定义的分词器,因为默认的分词器是不支持中文词的3、创建indexWriterConfig(参数分词器)4、创建IndexWriter5、创建Document ...

2019-07-02 23:49:37 390

原创 docker将容器制作成镜像并上传到阿里云镜像仓库

我们有时候服务需要拷贝到多个服务器,或者备份版本,这个时候就可以将服务容器制作成镜像上传私有仓库,需要的时候去私有仓库下载即可。制作镜像-a 作者 -m 备注 78e2274b24d3容器CONTAINER_ID tomcat02新的镜像名 v1为镜像tagdocker commit -a ‘wz’ -m ‘this is a tomcat docker-demo’ 78e2274b...

2019-06-26 22:54:54 2651

原创 Dockerfile定制jdk镜像

有时候我们需要定制镜像但是如果一直用命令来生成就显得比较繁琐,所以这个时候就需要dockerfile。下面我们就来定制个基于centos镜像的jdk镜像首先我们需要下载一个centos镜像,然后创建一个目录dockerfile的目录将jdk放进去mkdir dockerfile然后创建Dockerfile文件,与jdk同目录FROM centos MAINTAINER wz WOR...

2019-06-26 22:52:23 1564

原创 使用Docker搭建Tomcat运行环境

1 准备宿主系统准备一个 CentOS 7操作系统,具体要求如下:我个人用的是阿里云的一个云服务器必须是 64 位操作系统2 安装Dockeryum install docker可使用以下命令,查看 Docker 是否安装成功:docker version若输出了 Docker 的版本号,则说明安装成功了,可通过以下命令启动 Docker 服务:systemctl start d...

2019-06-25 22:50:16 180

原创 Docker(1)

1、docker是什么?Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。2、docker的几个优点...

2019-06-25 22:40:42 82

原创 springboot整合activeMQ简单例子

1.去官网下载最新版activeMQ,http://activemq.apache.org/download.html然后解压压缩包,运行activemq.bat文件,浏览器访问http://127.0.0.1:8161/2、新建一个springboot项目引入依赖,<dependencies> <dependency> <...

2019-06-10 22:45:52 122

原创 分布式session共享几种解决办法

Session是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理。单机的服务肯定是不会有session问题的,但是如果是个分布式的话就会出现一个问题,就是一台台机器的session如何与其他机器共享?1.复制法:这种是最容易想到的,就是每台出现session操作的时候都同步到其他服务中,缺点就是服务一多就特别消耗内存。2、固定法:其实就是在哪个服务的session就保存在哪个服...

2019-06-09 22:34:18 452

原创 几种线程安全的Map

Java中平时用的最多的map就是hashmap但是它却是线程不安全的。那除了hashmap还有哪些常见的线程安全的map?1.hashtableMap<String,Object> hashtable=new Hashtable<String,Object>();这是所有人最先想到的,那为什么她是线程安全的?那就看看她的源码,我们可以看出我们常用的put,get,...

2019-05-30 23:40:26 62207 3

原创 java中常用的几种线程池

1. 为什么使用线程池主要是为了防止资源的不足,因为频繁的创建和销毁线程是需要大量资源的。尤其是:线程执行时>线程创建时间+线程销毁时间,这个时候是会堆积大量的线程的。线程池其实就是类似于数据库连接池都是为了减少创建和销毁,提高资源的利用率。2. 使用线程池的风险1、死锁:任何的多线程都是有可能发生时死锁的情况,就是线程之间在互相等待2、 资源不足:这个原因主要是线程池太大造成,正常...

2019-05-29 23:16:04 3442

原创 springboot整合RabbitMQ

一 RabbitMQ的介绍    RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache).,kafka等;二、消息中间件的应用场景1、异步处理:在某些场景下我们其实有些操作是不需要同步执行的,异步的话就可以加快通讯效率,这个时候我们就可...

2019-05-28 23:13:19 126

原创 Windows下安装RabbitMQ

RabbitMQ安装步骤一、安装Erlang由于RabbitMQ采用Erlang实现的,需要建立在Erlang OTP平台上,所以我们在安装RabbitMQ之前需要先安装Erlang,就像我们在windows上编写java代码需要先安装java虚拟机一样。如果不安装Erlang是安装不了RabbitMQ的,不信的可以试试。步骤1:前往官网下载,英文网站进不去的可以通过中文官网进去下载:er...

2019-05-27 12:02:44 85

原创 Logstash实现mysql同步数据到elasticsearch

我们之前实现了elasticsearch的整合,但是elasticsearch本身就是为了解决关系型数据库中的数据搜索问题,本身其实严格来说是没有数据的,那么我们如何做到将数据库中的数据同步到elasticsearch中呢?其实同步mysql数据到elasticsearch中的方法很多:go-mysql-elasticsearch,binlog等等。我们今天用的是Logstash,个人觉得比较简...

2019-05-25 00:05:47 311

原创 基于TransportClient整合

1、什么是ElasticSearch?ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。2、整合ElasticSearch...

2019-05-23 22:48:38 3428 2

原创 springboot整合mongodb

1、介绍:MongoDB是介于关系型数据库和非关系型数据库中间的一个产品,是非关系型数据库中最丰富的,最像关系型数据的。2、与redis对比Redis:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,在set,hash等数据结构的存储。Redis支持数据的备...

2019-05-21 22:42:40 319

原创 springboot+redisson实现分布式锁

1、为什么要用分布式锁?在一些高并发的场景中,比如秒杀,抢票,抢购这些场景,都存在对核心资源,商品库存的争夺,控制不好,库存数量可能被减少到负数,出现超卖的情况,或者 产生唯一的一个递增ID,由于web应用部署在多个机器上,简单的同步加锁是无法实现的,给数据库加锁的话,对于高并发,1000/s的并发,数据库可能由行锁变成表锁,性能下降会厉害。这个时候就需要用分布式锁了实现分布式锁的方式很多,我们...

2019-05-18 23:43:37 1010

原创 springboot整合redis

redis是目前市面上相对用的最多kv数据库,一般都是用来做缓存作用。那么springboot如何整合redis呢?1、引入maven依赖,我这里用的是默认版本,具体用哪个版本根据个人需要<dependency> <groupId>org.springframework.boot</groupId> <a...

2019-05-17 23:37:03 140

原创 Mybatis分页插件PageHelper的简单实现

对于使用Mybatis时候有事很烦的就是分页了,要limit还要count算出总页数啥的,因此就有了我们今天的PageHelper插件可以非常便捷的实现分页。我们之前已经搭建了一个简单的springboot+mybatis+mysql的框架,那就在这个基础上做个分页,老规则首先引入依赖: <dependency> <groupId>com.github.p...

2019-05-15 22:57:28 179

原创 springboot+mybatis+mysql整合SSM项目

要搭建一个用springboot+mybatis+mysql的简单框架还是非常简单的,我们先整理下思路:1、首先我们要创建一个springboot的项目2、既然用了mybatis自然需要注入他的依赖,mysql的驱动,我们是一个web项目自然也少不了web依赖3、依赖啥的都搞定了自然就是mybatis的配置了,我们之前已经知道mybatis是需要两个xml文件的一个是config.xml,一...

2019-05-14 23:05:29 324

原创 手写Linklist,ArrayList,HashMap

上面是我个人画的简单的原理图,通过上面的图片我们基本也是可以看出几个集合底层到底是什么。所以要手写一个简单自己的集合也是非常简单的,手写思路:1、创建一个接口然后定义需要实现的方法2、现实接口然后编写每个方法的简单逻辑3、测试成果这是我个人写的代码目录,还是很简单的1、HashMap:public interface EasyMap<k,v> {int size(...

2019-05-11 23:19:51 475

原创 手写一个 Mybatis 框架

Mybatis框架流程简介 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190430135808394.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXh...

2019-04-30 14:17:46 165

原创 springcloud(3)feign、hystrix、ribbon

前面我们用zuul解决了路由器和过滤器问题,接下来就是服务之间的相互通讯问题了,虽然用url可以处理,但是这样终究还是不方便的,下次修改地址又要改对应的配置文件所以有了feign声明性REST客户端:FeignFeign是一个声明式的Web服务客户端。这使得Web服务客户端的写入更加方便 要使用Feign创建一个界面并对其进行注释。它具有可插入注释支持,包括Feign注释和JAX-RS注释。F...

2019-04-29 17:08:25 1309

原创 springcloud(2)路由和过滤器ZUUL

路由器和过滤器:Zuul路由在微服务体系结构的一个组成部分。例如,/可以映射到您的Web应用程序,/api/users映射到用户服务,并将/api/shop映射到商店服务。Zuul是Netflix的基于JVM的路由器和服务器端负载均衡器。Netflix使用Zuul进行以下操作:认证洞察压力测试金丝雀测试动态路由服务迁移负载脱落安全静态响应处理主动/主动流量管理Zuul的规...

2019-04-29 09:34:31 131

原创 springcloud服务注册与发现

使用Eureka实现服务治理作用:实现服务治理(服务注册与发现)简介:Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。而Spring Cloud Netflix项目是Spring Cloud的子项目之一,主要内容是对Netflix公司一系列开源产品的包装,它为Spring Boot应用提供了自配置的Netflix OSS整合。通过一些简单...

2019-04-26 14:07:33 136

原创 分布式事务的解决方案

1、简述分布式现在已经非常流利,好处很多,但是其中也是有很多的坑,比如事务。讲到事务我们就联想到了数据库事务的几个特性之一的一致性。如果是我们正常的单一系统的事务执行是没什么问题,但是如果是涉及多个分布式服务的事务就会存在一种问题,其中一个或者多个服务事务提交失败,这个时候就需要将所有相关服务的事务进行回滚,那么这个时候该怎么做呢?如果让我们去实现,那么既然是事务不一致,那就把事务放到一个事务...

2019-04-25 09:33:12 212

原创 List去重问题

1、大家都知道set集合是么有重复的,所以将list集合转换成set集合就会自动去除重复元素。当然也可以循环list去重这种比较简单的方法。public static List remove(List list) {HashSet h = new HashSet(list);list.clear();list.addAll(h);return list;}2、但是我们会发现,如果li...

2019-04-24 09:42:33 333

原创 大话HashMap原理

1、HashMap概念HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。HashMap储存的是键值对,HashMap很快。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。(因为他支持null值和null键所以我们很多时候不用hashtable,hashtable不支持)。2、HashMap原理这是网上找的一个原理图,从图可...

2019-04-24 09:24:30 161

原创 不使用synchronized和lock,如何实现一个线程安全的单例

C类:可以使用饿汉模式实现单例。如:public class Singleton {private static Singleton instance = new Singleton();private Singleton (){}public static Singleton getInstance() {return instance;}}B类:除了以上两种方式,还有一种办法...

2019-04-23 17:53:44 138

原创 MySQL 中随机抽样:order by rand limit 的替代方案

最近由于需要大概研究了一下MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。 MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3....

2019-04-23 16:05:39 1923

原创 手写一个简易版Tomcat

我们一般需要把Web应用打成WAR包部署到Tomcat中,在我们的Web应用中,我们要指明URL被哪个类的哪个方法所处理(不论是原始的Servlet开发,还是现在流行的Spring MVC都必须指明)。由于我们的Web应用是运行在Tomcat中,那么显然,请求必定是先到达Tomcat的。Tomcat对于请求实际上会进行下面的处理:1、提供Socket服务Tomcat的启动,必然是Socket...

2019-04-23 15:17:31 246

原创 策略模式

策略模式介绍:http://www.runoob.com/design-pattern/strategy-pattern.html个人还是比较喜欢用代码说话,通俗易懂:1、首先我们先定义个策略抽象类:这是一个人的策略抽象类,我们知道每个人都会有不同的地方,比如打球、游泳等;所以这个人的抽象类里面我定义了一个打球的策略接口,一个游泳策略接口,赋予set方法方便替换每个人行为2、定义策略接口...

2018-12-03 16:04:24 112

原创 OSS上传、下载、判断文件是否存在

package com.creditcard.merch.service.common;import com.alibaba.fastjson.JSON;import com.aliyun.oss.ClientException;import com.aliyun.oss.OSSClient;import com.aliyun.oss.OSSException;import com.al...

2018-11-28 18:13:37 7116

原创 java创建二维码,二维码和背景图片合成,二维码设置圆角

package com.creditcard.merch.util;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.awt.geom.RoundRectangle2D;import java.awt.image.BufferedImage;import java.io.File;import j...

2018-11-28 18:06:22 3452 2

原创 eclipse提示输入用户名和密码,怎么解决

使用eclipse时弹出框要求输入用户名和密码,如何去除 方法如下: Window -&gt; Preferences General -&gt; Security -&gt; Secure Storage -&gt; Content 然后展开左边的树选择相关内容,随后点击 “delete”按钮...

2018-08-17 09:00:10 7598

原创 Cannot change version of project facet Dynamic Web Module to 3.0.

1、打开项目所在目录下的.settings文件夹 2、修改项目的设置,打开项目.settings目录下的org.eclipse.wst.common.project.facet.core 3、 版本号修改为3.0,其他版本类似 4、重启eclipse或者 maven→ Update Project...

2018-08-15 16:55:13 81

原创 Struts2拦截器

一、Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的 拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器。 比如:应用要求用户登陆,且必须为指定用户名才可以查看系统中某个视图资源;否则,系统直接转入登陆页面。对于上面的需求,可以在每个Action的执行实际处理逻辑...

2018-08-10 14:31:19 127

原创 过滤器、拦截器、监听器

1.过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面...

2018-08-10 14:28:41 88

原创 dropload上拉加载插件中遇到的一个坑

由于 salesTit这个样式一直导致初始化加载出现问题,后来更改样式名字解决了这个问题

2018-07-27 16:23:44 1111

转载 RabbitMQ简单入手

一、RabbitMQ介绍   RabbitMQ是一款基于AMQP(消息队列协议),由Erlang开发的开源消息队列组件。是一款优秀的消息队列组件,他由两部分组成:服务端和客户端,客户端支持多种语言的驱动,如:.Net、JAVA、Erlang等。RabbitMQ安装部署   以上对RabbitMQ简介,接下来我们通过实际搭建消息队列服务实践。RabbitMQ服务端能运行于Window、Li...

2018-07-27 15:48:40 247

空空如也

空空如也

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

TA关注的人

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