自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用Elasticsearch的Java-API实现SQL的group by查询

上一篇我们总结了如何将MySQL的数据实时同步到Elasticsearch中,这一篇我们来总结一下当数据同步到Elasticsearch中后,如何使用Java API对Elasticsearch进行复杂查询,但实际工作中还没有遇到过特别复杂的SQL如何转化到Elasticsearch中,当然遇到这种情况一种解决方式是将数据库的查询结果直接存到一张表中,然后在Elasticsearch建立对应的索引,再对该索引进行查询;当然更直接的就是编写复杂的Java代码实现查询,这种情况我也还没有遇到。前面我们已经讲过

2021-04-16 16:56:32 1167 2

原创 使用阿里开源神器canal将MySQL数据实时同步到Elasticsearch

最近工作中需要使用Elasticsearch作为搜索引擎实现海量数据的搜索功能,以前也对Elasticsearch做过介绍了,包括使用Docker快速部署Elasticsearch进行学习,这是第一次在工作中使用到,需要会的东西也相应的更全面一些,包括复杂的条件查询,分页查询等,这部分Elasticsearch的操作会放到后面的博客中进行专门介绍,包括使用kibana开发者工具快速操作Elasticsearch。在学会Elasticsearch的API之后,不禁就会思考Elasticsearch的数据源从哪

2021-04-07 14:59:28 460

原创 初识Java多线程

要理解Java多线程,首先要区分进程和线程的概念。进程每个进程是一个应用程序,都有独立的内存空间。在同一个操作系统中,可以同时启动多个进程。线程线程是一个进程中的执行场景,一个进程可以启动多个线程。那么多线程有什么作用呢?多线程不是为了提高执行速度,而是提高应用程序的使用率,给人的感觉是多个线程在同时并发执行。创建线程创建线程一共有三种方式,在这里我们总结一下常用的两种:继承 Thread类创建一个类,通过继承Thread类来开辟一个线程,然后在main()方法中h创建子类对象,调用star

2021-01-15 09:07:40 185

原创 2019年度总结

No.1❤终于有时间来总结一下这一年的经历了,其实博客从去年年底就已经搭好了,只不过当时被一些其他的事牵绊住,一直没有写。今年其实是我的本命年,总的来说还是挺顺利的,也因为我付出了比别人更多的努力,这一点我问心无愧,我总算相信有多少付出就会有多少回报。今年9月1日还是我退伍两周年的日子,我发现部队带给我的东西都快被生活打磨没了,还是很怀念那个有着坚定意志的自己。No.2❤在年初的时候就定下目标,一定要到上海闯一闯,反正我是孑然一身,无牵无挂,有什么困难是自己不能克服的呢。现在也总算基本完成了这个目标,

2021-01-14 11:10:43 147

原创 2020年我的回顾

说太多抱怨的话已经没有意义了,我感觉这一年几乎所有人或多或少都被新冠疫情影响到生活,甚至有人为此丧命。到11月中旬之前,其实我的整个2020年的生活都挺顺利的,顺利地毕业,虽然和往常相比少了毕业的仪式感;顺利入职,能够很好地完成工作;顺利转正,得到领导的认可。一切从6月开始都按照正常的节奏在走,也许是刚进入社会的我过的太舒服了,生活需要磨练我,11月中旬蛋壳公寓也就是我租房的平台,传出暴雷的消息,一开始我很震惊,没想到这种事会来到自己身上,然后就是极度的焦虑,这种状态持续了一个月,这期间工作完全没有状态,每

2021-01-14 10:33:29 114

原创 SpringBoot项目的快速搭建并启动

通常我们创建Spring的项目都需要先创建Maven工程,然后再引入各种Spring的依赖,这样的步骤我们早已经习惯了,不过在使用过Spring Boot之后,我们发现以前创建项目的步骤实在是太过繁琐了。现在我们来向大家介绍Spring Boot提供的目前最便捷迅速的构建Spring项目的方式。使用Spring Initializer快速创建Spring Boot项目如何创建首先File–>New Project,选择Spring Initializer,点击Next。然后输入Group和A

2021-01-14 09:41:37 398 3

原创 SpringBoot配置文件的优先级

Spring Boot支持两种配置文件的形式,一种是application.properties,另一种是application.yml。最近在配置过程中遇到了配置文件优先级的问题,现在来总结一下。Spring Boot配置文件properties和yml的优先级首先来讲一下yml文件与properties文件语法上的不同,以设置应用端口为例:properties文件示例(application.properties):server.port=80YAML文件示例(application.ym

2021-01-14 09:38:07 278

原创 SpringBoot自定义配置属性

自定义配置属性Spring Boot提供了许多的配置,但通常情况我们需要自定义的配置应用自己的系统中,例如你需要配置一个默认的用户名密码做为系统的登录用。首先创建一个实体类,作为配置注入用,并使用@ConfigurationProperties注解进行批量注入,也可以使用Spring底层注解@Value的方式一个一个注入达到同样的效果。@ConfigurationProperties注解@Component@ConfigurationProperties(prefix = "person")pub

2021-01-14 09:36:52 572

原创 SpringBoot嵌入式Servlet容器自动配置原理

以前的web应用开发我们采取的方式是项目完成后打包成war包,然后配置tomcat启动运行项目,而Spring Boot默认使用的是嵌入式的tomcat,那我们需要如何配置嵌入式的Servlet容器呢?定制修改Servlet容器相关配置修改和server有关的配置我们可以到项目的配置文件中直接对server的属性进行修改。在ServerProperties中我们能够看到所有可以进行配置的属性。编写一个WebServerFactoryCustomizer:web服务器工厂定制器在Spring

2021-01-14 09:35:37 185

原创 SpringBoot自动配置原理

Spring Boot项目快速搭建的核心就在于自动配置的原理,在自动配置的基础上,我们在创建项目的时候就可以选择包含哪些依赖,极大地提高了构建项目的效率。而要熟练掌握Spring Boot的使用,就必须要理解自动配置的原理,我们还从Spring Boot启动的时候加载的主配置类说起。原理Spring Boot应用启动时加载主配置类@SpringBootApplicationpublic class SpringBootHelloQuickApplication { public static

2021-01-14 09:34:10 153

原创 SpringBoot嵌入式Servlet容器启动原理

嵌入式Servlet容器启动原理前面我们总结了Spring Boot中嵌入式Servlet容器自动配置原理,也提到了Spring Boot2.0版本中使用ServletWebServerFactoryConfiguration替换了EmbeddedServletContainerAutoConfiguration,那么什么时候创建嵌入式的Servlet容器工厂以及什么时候获取嵌入式的Servlet容器并启动Tomcat呢?我们进入到ServletWebServerFactoryConfiguration中

2021-01-14 09:30:48 159

原创 初识MapReduce开发

年底了,回过头来才发现这一年年初确立的写博客的习惯也被各种琐事耽误了,一年也才写了20多篇,不过年初确立的奔赴上海的目标也总算是实现了,期间有过连拿offer的欢喜,也有初到职场的迷茫,本想一一记录下来的,也没能做到,现在趁一些空闲时间抓紧补补最近新学的东西。说实话,Java后端开发还没有真正实践,就开始学习大数据相关的知识了,虽说大数据也会用到Java写一写MapReduce运算,但整个Hadoop生态圈用到的组件实在是很多,不仅仅是写代码这么简单了,例如使用Spark分布式计算框架就能将以前需要写很多

2021-01-14 09:21:45 167

原创 使用Docker部署HBase并使用Java-API连接

HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,但是也有很多不同之处。HBase利用Hadoop HDFS作为其文件存储系统,它利用Hadoop MapReduce来处理HBase中的海量数据,使用Zookeeper作为协

2021-01-14 09:18:34 2072 3

原创 Oracle存储过程语法及常用函数总结

从去年底到现在4个月了,原本早就想对实习期间学习到的知识进行总结,一直拖到现在,中间又是工作的事,又是毕设系统的开发,自己的时间分配确实也有不合理的地方,不能很好地平衡工作和生活,毕竟也是自己第一次实习,还是有许多不足之处需要总结的。今天就对在项目组实习期间使用到的技术进行总结,写的不到位的地方还请大家批评指正????。实习期间主要接触到的是数据库相关的内容,涉及到少量的数据清洗,绝大部分还是属于数据抽取以及轻微的加工。我主要负责是的Oracle数据库存储过程的开发,SQL语句功底是做任何开发必不可少的,

2021-01-13 10:33:24 1081

原创 消息中间件的概念以及应用场景

消息中间件的概念消息中间件最常用在异步处理请求、应用解耦以及流量削峰。其中异步处理主要是降低系统的响应时间,将原来每一步相连的操作进行异步处理,实例如下。应用解耦主要是使用在微服务架构中,将每一个独立的系统抽取成一个服务,进而他们共同去访问一个消息队列,降低应用之间的耦合度。流量削峰的应用场景是秒杀业务的处理,主要的思想是生产者和消费者的关系,生产者生产指定数目的库存,速度最快的消费者将其消费完,然后消息队列中就全部清空,剩下的没有得到产品的消费者请求失败即秒杀失败。消息服务中的两个重要概念

2021-01-13 10:32:14 633

原创 SpringBoot整合Redis中间件进行缓存

首先理解缓存的概念,缓存通常用于什么场景呢,比如说你正在刷微博,这时候突然出现一个热点事件,比如某"多人运动事件",由于是焦点话题,一传十,十传百,查看该话题的人会越来越多,如果将该条热点消息放在数据中,每次查看该消息都需要和数据库进行一次交互,而使用微博的人群庞大,数据库承担的压力就会非常大,这也就是微博经常在出现热点消息时就崩的原因。因此当出现热点新闻的时候,及时将该消息放入缓存中存储,后面的人再访问该消息就无须再查询数据库,极大地减轻了数据库的压力。使用Redis中间件进行缓存Redis的特点R

2021-01-13 10:30:24 195

原创 RabbitMQ的简介以及原理

Rabbit简介RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现,是现在市面上应用比较广泛的消息队列中间件。它包含通用的两种消息转发模式,一是点对点,二是广播。AMQP中的消息路由AMQP中的消息的路由过程和JMS有一些差别,AMQP中增加了Exchange和Binding的角色。具体流程如下,首先生产者(Producer)将消息发布到交换器(Exchange)上,由交换器(Exchange)根据路由规则决定将消息派发到哪一

2021-01-13 10:28:56 345

原创 SpringBoot整合RabbitMQ消息队列

RabbitMQ前面已经介绍过原理以及工作机制,现在我们利用SpringBoot进行消息队列的操作。创建RabbitMQ环境同样的,为了测试方便,我们在这里直接使用docker部署RabbitMQ,使用下面的命令在docker hub中查找RabbitMQ的版本。docker search rabbitmq为了便于直观看到RabbitMQ中的情况,我们使用带"-management"后缀的版本,这种版本自带web管理界面,能更好的帮助我们理解RabbitMQ的执行流程。docker pull r

2021-01-13 10:27:13 144 1

原创 SpringBoot整合Elasticsearch全文搜索引擎

也参考了一些博主写的整合的内容,发现他们使用的Elasticsearch版本都比较旧,实际我在整合的过程中,SpringBoot2.2做了很好的适配,因为前面我使用的Elasticsearch版本为6.8.9,也能直接使用,但在这里我还是将对应的版本关系贴出来供参考。Spring Data ElasticsearchElasticsearch3.1.x6.2.23.0.x5.5.02.1.x2.4.02.0.x2.2.01.3.x1.5.2由于E

2021-01-13 10:25:17 248

原创 Elasticsearch的介绍与Docker部署并测试API

在接触Elasticsearch之前,我对分布式搜索这块也是一脸懵,不过在快速上手之后就掌握了目前全文搜索引擎No.1的基本使用。现在来总结一下它的一些基本概念以及使用docker快速部署并测试步骤。Elasticsearch的概念Elasticsearch是一个分布式搜索服务,提供RESTful API,很多语言都可以通过RESTful API以及9200端口和Elasticsearch进行通信、操作,你可以通过HTTP方法GET、POST、PUT、DELETE进行数据的操作。Elasticsearc

2021-01-13 10:23:39 244

原创 分布式架构Zookeeper-Dubbo介绍

随着互联网技术的发展,网站的规模在不断地扩大,单一应用架构已经不再能满足需求,由于架构的原因,系统中某一处如果要进行修改,整个应用就需要重新部署,代价非常大。而在分布式架构中就能很好地解决上述问题,每一个模块就拆分为一个单独的服务,当模块的访问量变大时,就可以将同一个服务部署到不同的机器中同时运行。RPC框架当不同的模块之间出现调用关系时就会用到RPC(Remote Procedure Call),当前最主流的两个框架一个是Dubbo,一个是SpringCloud。这里我们主要介绍Dubbo,Dubbo

2021-01-13 10:20:59 109

原创 SpringBoot-Dubbo-ZooKeeper整合总结

上一篇我们总结了分布式架构Dubbo+ZooKeeper的工作机制,今天我们来总结一些干货,其中我踩了很多坑都会在这篇里总结出来,以下SpringBoot+Dubbo+ZooKeeper的整合亲测可用,我会将这个Demo放到Github上,欢迎大家来提issue。构建ZooKeeper环境前面提到ZooKeeper是服务的注册中心,调用者需要在注册中心订阅服务提供者的信息,并在调用时根据注册中心提供的地址列表根据负载均衡机制进行,因此首先我们需要将ZooKeeper的环境部署出来,这边我们依然使用Doc

2021-01-13 10:19:20 103

原创 SpringCloud的分布式整体解决方案

前面我们介绍了Dubbo+ZooKeeper的分布式架构方案,但与Spring Cloud相比,Dubbo+ZooKeeper还是缺少了很多关键的组件,它只实现了服务的注册与调用,而Spring Cloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局锁,leader选举,分布式session,集群状态)中快速构建的工具,使用SpringCloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。Spring Cloud与Dubb

2021-01-13 10:16:17 165

原创 Spring-Cloud分布式服务实现

上一篇总结了Spring Cloud的工作流程,和Dubbo相比,Spring Cloud使用Eureka作为服务的注册中心,我们这篇来实现一个简单的Spring Cloud生产者、消费者操作。Eureka的启动使用Eureka作为注册中心,和ZooKeeper类似,需要单独启动Eureka Server,我们创建一个空工程,然后创建三个Spring Boot的module分别作为注册中心,服务提供者,服务消费者。首先创建Eureka并启动,第一步引入相关依赖。<!-- 引入Eureka的依赖

2021-01-12 10:41:16 172

原创 大数据路线图

2021-01-12 10:37:50 431

原创 Vue的父组件调用子组件方法

正式工作两个月整了,这期间学了很多前后端开发的技能,还包括应用运维相关的知识,其中我负责了研发项目组整个开发环境的迁移包括Oracle数据库整体迁移、jenkins自动化部署迁移,从这篇分享开始,我将总结这两个月以来学会的相关内容。没想到第一篇要分享的竟然是前端的内容,在进入项目组之前我所会的只是一些原生的html、js,目前前台最流行的两大框架Vue和React基本没接触过,正式接过来需求之后,因为研发项目组前端人员紧张,我就不得不硬着头皮顶上去前后台一人包,还好刚开始接的需求不是特别复杂,前台页面本来

2021-01-12 10:35:57 1953

原创 Java使用POI操作Excel

在工作中遇到需要使用Excel导入数据到数据库中的需求,因此需要使用Java解析Excel文件,并把解析完成后的每一条记录循环插入到数据库中,同时还需要对Excel文件中每一列的数据做格式校验,校验完成后才执行插入的操作。因为是前台上传Excel,后台接口中需要接收对应的文件,然后将其转换为Workbook对象,交由业务层进行解析。 /** * 批量导入 * @return * @throws Exception */ @RequestMapping("

2021-01-12 10:34:57 92

原创 Java使用POI导出Excel文件

上一篇我们说到Java使用POI操作Excel,对Excel文件进行解析,并将数据导入到数据库中,今天这篇来分享一个Java封装的工具类,将数据库查询到的数据进行Excel形式的导出。具体的说明都在工具类的注释中,调用该工具类的方法需要传几个参数,一个是导出文件的标题,一个是数据库查出的数据集合,还有一个输出流对象,然后调用该方法就能导出Excel文件。public static void exportExcptDetails(String sheetTitle, List<Map<S

2021-01-12 10:33:45 256 1

原创 Oracle数据库整体迁移并采用定时任务备份

项目过程中遇到云服务器切换的问题,因为之前的服务器资源被其他服务占用过多,因此需要将项目中用到的相关组件全部迁移到另一台新的服务器中,这中间遇到了很多问题,首先数据库迁移就是第一个遇到的问题,不仅是新的Oracle数据库安装,还需要将老数据库中的所有数据包括存储过程、索引、包等全部转存到新数据库。Oracle数据库安装其实能够搜索出很多教程,但我这次推荐百度经验的一篇,我实际按流程操作过一遍的,当然其中也会遇到一定的问题,具体地址:https://jingyan.baidu.com/article/908

2021-01-12 10:31:27 402

原创 文件上传结合SpringCloud的Feign进行服务调用

工作中一直使用的是SpringCloud,其中的多个组件的使用也已经有一段时间了,包括对组件的配置文件的编写,今天要讲的是SpringCloud中的一个远程服务调用的组件,使用Feign之后,我们调用Eureka注册的其他服务,在代码中就像各个service之间相互调用那么简单。那至于为什么要调用其他服务的接口,就是微服务架构的内容了,今天我讲的是我们项目中独立出来的文件上传模块,我们在项目中将其做成一个通用的接口,使得其他服务中有相同需求时,可以直接调用该服务的接口进行文件上传以及文件管理。Feign简

2021-01-12 10:27:38 295

原创 Jenkins实现前后端自动化部署

在工作中第一次接触Jenkins,开始的时候只知道在提交代码到Git服务器后,需要在Jenkins管理页面点击对应的项目进行构建,后来在项目迁移服务器的时候学习了如何配置前后端自动化构建的流程,也对Jenkins有了更多的了解,这篇就对Jenkins的启动以及配置项目做一个总结。Jenkins启动以及配置首先可以到Jenkins官网去查看Jenkins的jar包下载方式,地址放在这里:https://www.jenkins.io/download/Jenkins安装我采用的是CentOS的Linux

2021-01-12 10:25:34 438 2

原创 利用Jenkins一键多台服务器部署SpringCloud应用

利用Jenkins一键多台服务器部署SpringCloud应用上一篇我们总结了安装启动Jenkins,并使用Jenkins部署前后端项目,工作中还遇到了某一个SpringCloud服务负载压力过大,需要多台机器部署的情况,由于我在项目中负责了整个搭建的过程,因此在这边来做一个总结。配置原理及效果展示首先我们要知道我们利用的是SpringCloud中的Eureka注册中心实现的负载均衡,具体操作是在两台不同的服务器中部署相同的一个服务,并且两个服务都注册到同一个Eureka上,Eureka会将注册的服务

2021-01-12 10:22:29 1185 1

原创 构建ELK日志搜索运维平台

新年第一篇博客,也是新年的第一个工作日,今天上班阅读(摸????)了不少的技术文章,突然发现自己Java领域的技术路线图根本没有走完,技术栈还有很大的填补空间,想着今年是提升自己技术的重要时间点,如果止步于此,今后的职业发展会受到很大的限制,不能仅仅只满足于工作够用,况且互联网技术本身迭代更新的速度非常快(毕竟开源大佬边工作边开发新技术),互联网人需要不断的学习新技术才能保证自己不被时代淘汰。大数据相关的技术路线进度缓慢,还有Java后端部分的权限控制、单点登录校验等内容都是今年需要完成的学习任务,甚至于面

2021-01-12 10:17:01 281

原创 关于idea下SSM项目配置发生“Error:Exception getting JDBC Driver”的问题解决办法

今天在配置SSM项目连接数据库时发生了这个问题:我是在使用Mybatis-plugin这个插件自动生成dao、service等文件时发生的错误,我手动写java代码进行连接数据库,发生这样的报错因为是连接的我的本地的数据库,所以会有这样的规定(我猜测,我看网上视频教程里都没有加),所以在数据库url后添加?useSSL=false改完后,生成代码成功...

2018-08-26 18:24:07 1951

原创 关于idea下配置SSM项目发生如Error:Could not create connection to database server.的问题的可能的原因

我是一个SSM入门级选手,近一段时间都在进行SSM的配置练习,今天在使用mybatis-plugin这个插件自动生成dao、test、bean文件时,发生了这个错误,我尝试过写java代码手动生成,但还是出现了这个Error,总结下来是很简单的问题。首先,这是个数据库连接的错误,我之前使用的mysql-connector版本和本机安装的mysql版本不匹配我本机安装的mysql版本...

2018-08-26 18:12:48 5127

空空如也

空空如也

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

TA关注的人

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