自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

王小白来了

要么庸俗,要么孤独

  • 博客(46)
  • 收藏
  • 关注

原创 分布式日志收集(ELK+Kafka)

问题:为什么需要ELK+Kafka实现分布式日志收集?单纯使用EIK实现分布式日志收集缺点:当产生日志的服务节点越来越多,Logstash也需要部署越来越多,扩展不好。读取IO文件,可能会产生日志丢失。读取文件不是实时性,中间需要引入到Kafka,日志实时发布到Kafka,Logstash订阅并实时获取消息。面试题:Logstash数据来源有哪些?本地文件、Kafka、数据库、Mo...

2019-10-27 19:52:06 6585 5

原创 基于Docker搭建Maven私服

前言在大型互联网公司,都会在公司内部部署自己公司独立的Maven私服(只能公司内部访问),Maven私服作用可以管理微服务接口发布、第三方Jar包管理等;最近有空去网上找了些资料自己研究了下,并记录下来。Maven私服应用场景1. 微服务接口发布:        微服务开发中,实现对微服务接口发布。比如Du...

2019-05-04 23:47:50 1496 1

原创 SpringCloud Feign参数传递问题

前言:在SpringCloud中我们调用服务时往往会使用Feign客户端替代RestTemplate手动调用,我们只需要定义接口,接口上使用@FeignClient(“服务名”)注解即可,Feign会帮我们生成动态代理(使用JDK 的动态代理),生成的代理类,会将请求的信息封装,交给 feignClient 接口发送请求。1.Feign不支持GET方法传递POJO由于springMVC...

2019-03-15 20:49:26 3290

原创 Appium移动自动化测试教程

Appium移动自动化测试全部教程本篇教程适合哪些人看?Appium简介?1. Appium是什么2. Appium的特点环境准备1. 安装JDK2. 安装Android SDK3. 安装Appium Server功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowch

2021-05-09 13:38:39 8231 6

原创 分布式日志收集(ELK)

ELK简介:ELK=Elasticsearch+ Logstash + Kibana,是同一家公司开发的3个开源工具,可组合起来搭建海量日志分析平台,目前很多公司都在使用这种方式搭建日志分析平台进行大数据分析。参考:初识ES数据库Logstash介绍:Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到...

2019-10-27 18:17:31 1697 2

原创 Elasticsearch高级(Shards、高可用集群搭建)

TODO

2019-10-09 17:19:56 1518 1

原创 Elasticsearch进阶(倒排索引、高级查询_DSL语言查询与过滤、中文分词IK插件、文档映射)

1、ES9300端口号与9200区别9300端口:ES节点之间通讯使用,是tcp协议端口号9200端口:ES节点和外部通讯使用,暴露ES RESTful接口端口号2、Elasticsearch倒排索引原理全文检索检索底层采用排索 为什么?倒排索引比数据库中B-tree树查询效率还要快?倒排索引会对文档内容进行关键词分词,可以使用关键次直接定位到文档内容。正向索引正排表是以文档的...

2019-10-09 09:21:41 854

原创 Elasticsearch入门(ES,Kibana可视化界面安装)

Elasticsearch简介Linux环境安装Elasticsearch注意事项:需安装Java运行环境,因为Elasticsearch基于Java语言开发的。RAM至少需要1G以上,因为Elasticsearch启动默认1G运行内存下载安装包wget https://artifacts.elastic.co/downloads/elasticsearch/elasti...

2019-10-08 22:41:25 2129 1

原创 SpringBoot整合Elasticsearch

一、SpringBoot整合ElasticsearchSpringBoot整合Elasticsearch非常简单,Elasticsearch实现了JPA接口,我们只需要引入Elasticsearch的Maven依赖,然后像使用JPA那样操作即可。1. Maven依赖<parent> <groupId>org.springframework.boot</gr...

2019-10-08 14:33:53 269

原创 秒杀抢购系统的实现

什么是秒杀?秒杀是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。由于价格比价低廉,一上架就被抢购一空,有时只需要几秒钟,所以非常考验系统的并发能力。当然,秒杀常见形式有1元秒杀、低价限量秒杀(小米限量秒杀,12306分段限量秒杀)、低价限时限量秒杀(电商平台偏多)。秒杀业务分析1.正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单...

2019-10-08 09:20:42 2911 1

原创 Nginx实战解决高并发(静态资源缓存)

前言:我们知道Nginx+Tomcat可以实现动静分离,但这并不是最好的解决方案,因为往往带宽会成为瓶颈。分析网站访问慢的真正原因?很多情况下往往是静态资源太大,而带宽不足,导致网站加载很慢。解决方案:一、 CDN内容分发(解决带宽不足)使用第三方OOS(对象存储),如七牛云,阿里云OOS等二、 减少与服务端的带宽传输(解决静态资源太大)1. 静态资源手动压缩例如js文件,我...

2019-09-30 17:36:05 3642

原创 LVS+Keepalived+Nginx实现主从双机热备(7*24小时运行)

简介:一、LVS是什么?LVS,全称Linux Virtual Server,是国人章文嵩发起的一个开源项目。在社区具有很大的热度,是一个基于四层(传输层)、具有强大性能的反向代理服务器。早期使用lvs需要修改内核才能使用,但是由于性能优异,现在已经被收入内核。LVS通过工作于内核的ipvs模块来实现功能,其主要工作于netfilter 的INPUT链上。而用户需要对ipvs进行操作...

2019-09-28 22:49:05 1484 2

原创 静态资源使用时间戳控制浏览器缓存

前言:我们访问一些网站的是时候,经常看到静态资源后面都有一个时间戳或日期之类的,其实是为了控制缓存,如图左:Http响应码304这里我们先谈下http响应码304,首先304状态码表示浏览器数据未发生改变,直接使用本地缓存。请求过程:浏览器向服务端请求资源,服务器会看是否携带Last Modified头,即上次修改时间,若没有则响应200;若有则比较 Last Modified和服...

2019-09-27 15:51:55 1466

原创 RabbitMQ实现分布式事务

前言

2019-09-27 15:25:43 1762

转载 基于Zuul,Feign的请求重试及全局幂等方案

概念解释请求重试,主要用来解决以下几方面问题:项目发布升级,服务单个节点重启时,部分经网关路由的请求出现连接拒绝、服务不可用的情况某个服务节点因内存溢出、硬件故障等原因down掉时的请求无响应情况连接池满、线程死锁造成的相应缓慢情况网络波动导致的部分节点无法连接情况单次请求经由路由转发后到达服务节点,如出现上述问题,可采用转发至服务集群中的其他节点的方式来提高服务健壮度。实现方...

2019-09-27 13:08:04 739

原创 Oracle创建dblink(实现跨数据库查询)

前言在分布式架构中,往往会经常遇到跨数据库查询的场景,即两个有关联的表不在一个数据库中。一般的解决方案有:分别查询两张表的数据,然后进行组装 (弊端:麻烦,复杂查询条件无法实现分页查询 优点:实时保证数据一致性)定时job,定时将两张表数据合并保存到一张表中或者MongoDB数据库中,然后从这张表或MongoDB中进行查询 (弊端:无法实时保证数据一致性,定时job出错无法保证数据...

2019-09-27 11:49:55 4140

原创 IDEA一键部署SpringBoot到Docker

一、前言目前基于SpringBoot的微服务和Docker容器非常火,平时我们不使用Docker时部署应用一般都是打成jar包后上传至服务器,再启动;使用Docker后我们也是先上传jar包到服务器,使用Dockerfile构建镜像后,然后使用docker run命令启动一个容器;我们发现以上步骤非常麻烦,特别是开发中,为了快速在测试环境验证我们的程序,这样重复的步骤就显得十分繁琐,对于这个问题...

2019-09-03 00:45:32 653

原创 SpringBoot整合EasyPoi实现导入导出Excel

一、前言平时我们写代码时常常需要一些导入导出的操作,一般都是用Apache的poi,但是发现很繁琐,总是在Copy… ,无意间发现一款简单粗暴的神器EasyPoi,导入导出很方便,而且支持多种格式的导入导出,下面介绍下基于@Excel注解导入导出Excel的步骤。码云地址 :easypoi-spring-boot-starter教程:EasyPoi二、 功能Excel自适应xls...

2019-08-24 00:06:31 11289 9

原创 Java Remote Debug(IDEA实现远程调试)

参考博客:优化你的springboothttps://blog.csdn.net/wanglei9876/article/details/82145682https://blog.csdn.net/helllochun/article/details/40890277

2019-07-30 23:10:30 2177 3

转载 host文件位置和作用介绍

什么是HOST文件:Hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析,如果发现是被屏蔽的IP或域名,就会禁止打开此网页!Host...

2019-06-24 15:51:54 187

原创 SpringBoot项目打包成jar后,下载Excel文件打开失败

前言笔者在SpringBoot项目中,有个下载Excel模板的需求,项目在idea中跑起来后,文件下载成功并且打开正常。当项目打包成jar后部署到测试环境,下载下来的模板无法打开,针对这个问题,特此记录。解决方案:废话不多说,直接上代码,这种方式亲测有效。...

2019-06-24 10:07:19 3158 7

原创 Apollo配置中心环境搭建(Linux)

简介Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。目前支持以下客户端: Java客户端不依赖任何框架,能够运行于所有Ja...

2019-06-16 14:14:21 4251

原创 RabbitMQ解决消息幂等性问题

前言关于MQ消费者的幂等性问题,在于MQ的重试机制,因为网络原因或客户端延迟消费导致重复消费。使用MQ重试机制需要注意的事项以及如何解决消费者幂等性问题以下将逐一讲解。1. RabbitMQ自动重试机制消费者在消费消息的时候,如果消费者业务逻辑出现程序异常,这个时候我们如何处理?使用重试机制,RabbitMQ默认开启重试机制。实现原理:@RabbitHandler注解 底层使用A...

2019-06-11 00:38:51 21406 14

原创 网站跨域的五种解决方案

前言什么是跨域:跨域:即浏览器请求域名与Ajax请求的域名不一致。它是由浏览器的同源策略造成的,是浏览器的一种安全机制!同源策略:域名、协议、端口均相同。场景:一般浏览器发送Ajax请求的使用经常遇到,由于浏览器同源策略的限制,导致无法接受到响应结果。解决方案1. 使用JSONP(仅支持Get)利用了使用src引用静态资源时不受跨域限制的机制。主要在客户端搞一个回调做一些参数接...

2019-06-10 21:12:04 1327

原创 RabbitMQ入门(简介、搭建环境、五种工作模式)介绍

重复消费

2019-06-09 16:45:47 388

原创 SpringBoot整合RabbitMQ

前言工作模式:基础RabbitMQ的发布/订阅(pub/sub)工作模式,其他工作模式大同小异。交换机类型:扇形交换机(Fanout Exchange)我们需要创建一个生产者和一个消费者项目,消费者项目包含邮件消费者和短信消费者。...

2019-06-05 22:23:49 215 1

原创 使用ActiveMQ中间件方式发送邮件

前言在大型互联网公司中,一般都会搭建内部的消息服务平台,处理公司内部的各种消息服务,比如:发送邮件、发送短信、微信推送等,公司内部消息平台再去调用第三发消息平台。消息服务平台的接口有两种:同步和异步,同步需求一般是需要返回调用第三方平台是否成功,否则都采用异步的。公司内部消息服务平台调用内部消息服务平台,使用消息中间件发送消息一般都会做消息模板,调用的时候传模板id图片来源:蚂...

2019-05-19 01:35:37 1630

原创 SpringBoot整合ActiveMQ

一、ActiveMQ介绍1. ActiveMQ持久化机制ActiveMQ作为一个消息中间件,提供了持久化机制功能,并且是实时持久化的。当持久化机制开启后,ActiveMQ中间件服务器宕机时,保证队列中的消息不会被丢失。SpringBoot整合ActiveMQ默认开启了持久化机制。2. ActiveMQ可靠消息机制JMS默认是自动签收消息的,消费者获取到消息后,无论消费者对该消息处...

2019-05-19 00:09:50 269

原创 消息中间件介绍

消息中间件介绍1. 消息中间件产生的背景在网络通讯中,Http请求默认采用同步请求方式,基于请求与响应模式。在客户端与服务器进行通讯时,客户端调用服务端接口后,必须等待服务器端完成处理后返回结果给客户端才能继续执行,这种情况属于同步调用方式。如果服务器端发生网络延迟、不可达(宕机)的情况,可能客户端也会受到影响。一般来说我们会做好服务降级、熔断、隔离、限流等,这些虽然是微服务必做的,但这...

2019-05-18 15:32:31 953

原创 SpringBoot项目打包成jar后获取classpath下文件失败

前言公司的一个SpringBoot项目中,有需要下载文件模板的需求,按理来说分布式项目文件都应该上传到文件服务器,但是由于文件不是太多于是就放在了classpath下,在本地开发的时候发现都能正常下载文件,但是打包成jar上传到Linxu测试环境上就报错,找不到classpath路径。原因原因是项目打包后Spring试图访问文件系统路径,但无法访问JAR包中的路径。我们使用Resou...

2019-05-17 20:47:35 18562 4

原创 Docker安装教程(CentOS 7.3)

前言Docker已经成为了最火的容器技术,相比虚拟机它是一款更加轻量级的容器技术,我里我们讲解下如何在Linxu上安装Docker。Docker简介Docker官方网址: https://docs.docker.com/ 英文地址Docker中文网址: http://www.docker.org.cn/ 中文地址Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初...

2019-05-15 23:20:24 905

原创 Docker常用命令

前言接触Docker有段时间了,从最开始的安装Docker到后面运行容器,到构建自己应用程序的镜像运行,今天将一些常用的命令进行整理,除了以后自己忘记了可以看看,还希望能帮助到大家,若有不对之处还望不吝指点,谢谢!Docker启动、重启、关闭命令Docker服务自动重启设置systemctl enable docker.service启动Dockersystemctl st...

2019-05-15 22:46:05 250

原创 Nginx+Tomcat实现动静分离

前言1. 什么是网站动静分离架构模式?网站中的动静分离其实就是将动态资源和静态资源分离处理。传统网站架构模式:jsp、html、img、css、js全部存放在一个服务器上,把静态资源和动态资源共同放到一台服务器上。大型互联网公司中前端与后端开发是分离,静态资源和动态资源不会部署到同一台服务器上,静态资源部署在一个服务器上(html、css、img、js …),动态资源部署在一个服务器上(...

2019-05-13 00:11:29 4600

原创 使用Zuul管理整个微服务接口文档

前言:在微服务架构中,除了与前端联调之外,我们各个服务之间也存在着调用接口的情况,这时候就需要提供一份API (接口文档),提供给其他调用你的服务的人使用。而往往我们接口更新后,而没来得及更新文档或忘记更新文档,这时候就造成接口与接口文档不一致的问题,人家按旧的接口文档调用你的服务,导致无法正确调用接口,这时候我们可以使用Swagger来帮我们动态生成API文档,还支持网页中直接测试调用接口...

2019-05-12 12:24:22 1850

原创 SpringCloud实现Zuul集群(负载均衡)

前言:在微服务架构中,有一个组件可以说是必不可少的,那就是微服务网关,微服务网关处理了负载均衡,缓存,路由,访问控制,服务代理,监控,日志等。API网关在微服务架构中正是以微服务网关的身份存在。一般在微服务架构中,网关都是部署多个服务的,以实现负载均衡和保证高可用。一、使用 Nginx+Zuul 实现网关集群1.互联网公司中网关都是集群     ...

2019-05-11 22:29:28 21453 12

原创 基于Docker搭建GitLab

前言企业中,我们往往需要搭建公司内部的代码管理仓库,今天就谈一下基于Docker搭建GitLab,GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,搭建前我们需要先对Docker有所了解。一、基于Docker部署GitLab环境搭建配置要求:建议虚拟机内存2G以上,若下载慢可以配置阿里云镜像加速1. 下载镜像文件docker ...

2019-05-05 23:08:34 3941 5

原创 Jenkins+Docker+Git 自动化部署图文教程

前言:通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,如有不足,还请多多指点,谢谢!Docker的优点:Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是Docker的最大优...

2019-05-03 20:45:26 14227 18

转载 SpringBoot 使用Swagger2打造在线接口文档(附汉化教程)

序言:编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率。此外,本教程还额外提供了UI汉化教程,去除阅读官方英文界面的烦恼。(目前Swagger汉化教程是找不到的,因为官方手册实在写得太烂。。)SpringBoot + Swagger2 UI界面-汉化教程1.默认的英文界面...

2019-04-05 23:41:44 373

原创 SpringBoot整合Ehcache

**链接:**https://note.youdao.com/web/#/file/WEBb01d3695480e66d2e10ac97e13d23576/note/WEB9eae9b4b94ebae7a8f3ea1b484fa4239/

2019-04-05 19:39:27 2025

原创 外部jar包引入到本地maven仓库中

前言:在开发中我们常常需要引入一些外部jar包,通常是在项目建立一个lib目录放jar包,然后导入到项目中。通常我们的项目使用的Maven构建的,我们怎么将外部的jar包引入到本地仓库中,然后在pom.xml中引用呢?话不多说,直接上命令1. 进入Maven 的bin目录下,按住shift键右击,点击在此处打开命令窗口。注:若配置maven环境变量,可以任意位置执行打开命令行窗口。2. 执...

2019-04-01 20:10:40 1626

空空如也

空空如也

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

TA关注的人

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