自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ

RabbitMQ什么是消息队列消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的消息队列常见实现与技术对比MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broke

2022-03-15 22:15:19 2564 1

原创 ES-DSL查询

DSL查询DSL查询分类查询所有:查询出所有数据(match_all)全文检索:利用分词器对用户输入内容分词,然后去倒排索引库中匹配match_querymulti_match_query精确查询:根据精确词条值查找数据,一般是查找keyword,数值,boolean等字段idsrangeTerm地理查询:根据经纬度查询Geo_distanceGet_bounding_box复合查询:复合查询可以将上述各种查询条件组合起来,合并查询条件booolfunction_

2022-03-09 09:28:54 6219

原创 java多线程的几种实现方式

写在之前深夜水文,聊聊多线程的不同实现方式吧继承Thread实现//继承Thread类,重写Run方法,调用start方法public class ThreadThread extends Thread{ @Override public void run() { System.out.println ("Thread实现"); } public static void main(String[] args) { ThreadThre

2022-03-01 23:30:55 418

原创 面试中的常见骗局

写在之前又是一年毕业季,又是一年就业季,城市套路深,我要回农村培训机构第一种就是说明了是培训机构,他会打电话告诉你,他们有几个月的岗前培训,培训结束以后可以保证薪资多少以空壳公司招人的培训机构这种基本上是打电话约面试,问你什么时候有时间去面试,然后以短信的形式通知你去面试格式就是这种常见套路两种:第一种:问你很难得问题,你回答不上来,就告诉你不符合他们的开发要求,但是他们有几个月的岗前培训,培训后可以上岗第二种:你回答上来了,让你回家等通知那么如何鉴别这种公司呢首先主动给你打电话的,不

2021-03-06 10:27:13 8329 5

原创 springboot项目集成log4j2

写在之前在开发环境中你可以不太注重日志,但是在生产环境中必须的收集好日志开发环境下出现了问题你可以随意的debug,但是在生产环境下不可能停掉服务器来处理bug,有效的方法就是分析日志log4j2依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactI

2021-03-04 14:33:23 469 1

原创 java抽象方法,静态方法,默认方法

接口在了解抽象方法和默认方法之前需要先了解什么是接口接口是功能的集合,是一种数据类型接口里定义方法默认是public abstract(抽象方法),没有具体的实现,实现由实现类实现,且必须实现(静态方法和默认方法除外)抽象方法没有具体的实现,实现由实现类(或子类)实现,且必须实现定义interface InterfaceDemo{ //默认方法 public abstract void fun3(); void fun4();}因为接口里的方法默认是public abs

2021-02-22 11:35:14 2098

原创 TCP三次握手

三次握手第一次:客户端发送请求给服务端,确定服务端可以接收到消息第二次:服务端收到客户端的请求后,做出回应第三次:客户端发送请求给服务端,建立TCP连接最基础的是两次握手,那么为什么客户端还会向服务器发送一次请求呢?第三次握手是为了防止已经失效的客服端请求又被发送到了服务端,从而发生错误。假设没有第三次握手会怎样?客户端发送的第一次请求因为网络延迟等原因迟迟没有发送到服务端,因为服务端没有接受到客户端的请求,就不会给客户端回应,没有收到回应的客户端就再次给服务端发送了一个请求,等待网络通畅后,

2021-02-22 07:36:46 141

原创 http请求get与post的区别

http请求get与post的区别get与post是http请求的两个标准请求方式,也是使用最多的两种方式他们最直接的区别就是get请求将数据放在url中传输,而post请求是将数据放在request body中传输get方式传输数据,数据不安全,post相对安全然而get和post在本质上是没有区别的get和post都是http协议中的两种发送请求的方法什么是http请求?http是基于TCP/IP的关于数据如何在万维网中如何通信的协议。http的底层是TCP/IP,所以get和post请

2021-02-21 15:08:22 267

原创 javaList集合的两种赋值方式

写在之前在开发中难免会有entity,vo,dto之间的转换那么如何优雅快速的进行转换呢?当然你可以get在set显然不推荐这样做!对象转换使用BeanUtils工具类copyProperties方法像这样//将merchantDTO赋值给entity(相同的属性)BeanUtils.copyProperties(merchantDTO,entity);使用mapstruct转换首先在项目中引入依赖<!-- MapStruct代码生成器,对象转换 -->

2021-02-05 20:37:10 5943 1

原创 springboot项目自定义统一异常处理

什么是异常异常指的是在程序运行过程中发生的异常事件,通常是由外部问题(如硬件错误、输入错误)所导致的。在Java等面向对象的编程语言中异常属于对象java 中的异常java中Exception是所有异常的父类,在运行时发生的异常叫运行时异常用RuntimeException类表示运行时异常就是需要我们在程序中捕获并且处理的异常好的异常处理能帮助我们更好的定位错误发生的原因异常处理流程1、在服务层抛出自定义异常类型及不可预知异常类型。上图中BusinessException为系统的自定义异

2021-01-30 21:06:39 1096 1

原创 java获取百度网页内容

写在之前本文章不研究爬虫技术,只做java可以用于获取网页内容的介绍。认识RestTemplateRestTemplate是Spring提供的用于访问RESTful服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。RestTemplate默认依赖JDK提供http连接的能力 (HttpURLConnection),也可以通过替换为例如 Apache HttpComponents、Netty或OkHttp等其它HTTP 客户 端,OkHttp的

2021-01-22 10:30:42 882

原创 Swagger

Swagger出现的问题自从前后端分离以后,前端后端的开发就分离开来那么前端后端如何来交流呢?最早的解决办法就是写好开发文档以后前端后端在进行开发这样就又出现了一个问题,如果有需求被修改了那么怎样在能及时的在开发文档中修改,让前端后端都知晓呢?Swagger简介号称世界上最流行的Api框架RestFul Api文档自动生成工具=>文档与Api定义同步更新直接运行,可以在线测试Api接口集成springboot新建工程新建springboot工程,加入spring-web依

2021-01-12 10:56:25 171

原创 微服务(五):配置管理

Nacos配置管理什么是配置简单来说就是约定,例如商业活动中的合同,在签订合同后,双方严格按照合同来执行,配置也是如此应用程序在启动和运行的时候往往需要读取一些配置信息,然后按照配置信息来执行程序配置主要有以下几个特点:配置是独立于程序的只读变量:配置对于程序是只读的,程序通过读取配置来改变自己的行为,但是程序不应该去改变配置配置伴随应用的整个生命周期 置伴随应用的整个生命周期 配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。 比如:启动时需要读取

2021-01-05 19:10:32 824

原创 微服务系列(四):服务发现模型

服务发现数据模型Namespace隔离设计命名空间(Namespace)用于进行租户粒度的隔离,Namespace 的常用场景之一是不同环境的隔离,例如开发测试 环境和生产环境的资源(如配置、服务)隔离等。从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。例如,你可能有开发,测试和生产三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:从多个租户(用户)的角度来

2021-01-05 17:27:59 231 1

原创 微服务系列(三):Dubbo服务发现

Dubbo服务发现Dubbo是阿里巴巴公司开源的RPC框架,在国内有着非常大的用户群体,但是其微服务开发组件相对Spring Cloud 来说并不那么完善。Spring Cloud Alibaba微服务开发框架集成了Dubbo,可实现微服务对外暴露Dubbo协议的接口,Dubbo协议相 比RESTful协议速度更快。RPC:RPC是远程过程调用(Remote Procedure Call)的缩写形式,调用RPC远程方法就像调用本地方法一样,非 常方便Dubbo服务架构组件说明:1、客户端:前端

2021-01-05 16:20:23 204

原创 微服务系列(二)-nacos服务发现

Nacos服务发现Nacos简介服务发现产品对比目前市面上用的比较多的服务发现中心有:Nacos、Eureka、Consul和Zookeeper。对比项目NaosEurekaConsulZookeeper一致性协议支持AP和CP模型AP模型CP模型CP模型健康检查TCP/HTTP/MYSQL/Client BeatClient BeatTCP/HTTP/gRPC/CmdKeep Alive负载均衡策略权重/metadata/SelectorR

2021-01-05 16:02:21 678 1

原创 微服务系列(一)-服务发现

服务发现什么是服务发现在微服务架构中,整个系统会按职责能力划分为多个服务,通过服务之间协作来实现业务目标。这样在我们的代码 中免不了要进行服务间的远程调用,服务的消费方要调用服务的生产方,为了完成一次请求,消费方需要知道服务 生产方的网络位置(IP地址和端口号)。我们的代码可以通过读取配置文件的方式读取服务生产方网络位置,如下:我们通过Spring boot技术很容易实现:创建一个spring-boot父工程创建Service B(服务生产者)pom.xml如下<?xml versi

2021-01-04 20:03:22 222

原创 软件架构的演进

软件架构的演进软件架构的发展经历了从单体架构、垂直架构(分布式架构)、SOA架构到微服务架构的过程。单体架构Web应用程序发展的早期,大部分web工程师将所有的功能模块打包到一起并放在一个web容器中运行,所有功能 模块使用同一个数据库。 下图是一个单体架构的电商系统:特点:1、所有的功能集成在一个项目工程中。2、所有的功能打在一个war包部署到服务器。3、通过部署应用集群和数据库集群来提高系统的性能。优点:1、项目架构简单,前期开发成本低,周期短,小型项目的首选。2、开发效率高,模块之

2020-12-30 11:38:50 232

原创 策略模式

策略模式案例导入需求:设计一款植物大战僵尸的游戏现有两款僵尸,他们的属性如下属性外观移动方式攻击普通僵尸普通朝着一个方向移动咬旗手僵尸普通+手持旗子朝着一个方向移动咬设计出这两个僵尸类这种属性简单的类很好实现,只需要定义一个抽象类,把不同的属性抽离出来,相同的属性实现,子类来继承实现不同的属性//抽象类abstract class AbstractZombie{ //抽象方法 public abstract void displa

2020-12-29 08:54:46 190

原创 模版方法模式

模版方法模式模式定义定义一个操作的算法骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤实现需求:在数据库连接方面Oracle和Mysql除了驱动程序不一样,其他的都可以复用,并且步骤都是一致的import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;import com.sun.xml.internal.xsom.XSUnionSimpleType;/**

2020-12-29 08:54:05 123

原创 观察者模式

观察者模式模式定义定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象,当注意对象发生变化时,它的所有依赖者都会收到通知并更新应用场景当更改一个对象的状态可能需要更改其他对象,并且实际的对象集事先未知或动态更改时,请使用观察者模式优点1.符合开闭原则2.可以在运行时建立对象之间的关系实现//主题对象class Subject{ //容器 List<ObServer> container = new ArrayList<>();

2020-12-29 08:53:27 440

原创 装饰者模式

装饰者模式模式定义在不改变原有对象的基础上,将功能附加到对象上应用场景拓展一个类的功能或者给一个类添加附加职责优点不改变原有对象的情况下给一个对象拓展功能使用不同的组合实现不同的效果符合开闭原则实现/** * 需求 * 一个照相机拥有拍照功能,在不改变拍照功能的情况下添加美颜和滤镜功能 */public class DecoratorTest { public static void main(String[] args) { Component comp

2020-12-17 11:41:59 85 1

原创 适配器模式

适配器模式模式定义将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作应用场景当你希望使用某些现有类,但其他接口与你的其他代码不兼容时,请使用适配器模式当你希望重用几个现有的子类,这些子类缺少一些不能添加到超类中的公共功能时,请使用适配器模式优点符合单一指责原则符合开闭原则实现对象适配器模式package v1;/** * 对象适配器模式 * 需求: * 将家用220v电压转换成手机能使用的5v电压 */cl

2020-12-16 15:53:56 114

原创 原型模式

原型模式模式定义指原型实例指定创建对象的种类,并且通过拷贝这些原型创建一个新的对象换句话讲就是我们通常所说的复制粘贴,这就是原型模式的思想实现被克隆的对象实现Cloneable接口重写clone方法调用父类的clone方法public class PrototypeTest { public static void main(String[] args) throws CloneNotSupportedException { Product4 product4 = ne

2020-12-16 14:55:43 93

原创 享元模式

享元模式模式定义运用共享技术有效的支持大量粒度的对象优点如果系统有大量类似的对象,可以节省大量的内存及cpu资源实现import java.util.Map;import java.util.concurrent.ConcurrentHashMap;/** * 需求: * 在一张游戏地图中有无数的树,那么是不是每一颗树都是一个对象呢? * 显然不是!不同种类的树是不同的对象,同一种类的树是一个对象 * 只是一些属性不同而已 */public class FlyWeightTes

2020-12-16 14:55:16 106

原创 原生js配合canvas实现验证码的生成与验证

原生js配合canvas实现验证码的生成与验证<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style> *{ margin: 0; padding: 0; } #main{ display: flex; } #input{ width: 120px;

2020-12-16 10:05:32 274 2

原创 原型模式

原型模式模式定义指原型实例指定创建对象的种类,并且通过拷贝这些原型创建一个新的对象换句话讲就是我们通常所说的复制粘贴,这就是原型模式的思想实现被克隆的对象实现Cloneable接口重写clone方法调用父类的clone方法public class PrototypeTest { public static void main(String[] args) throws CloneNotSupportedException { Product4 product4 = ne

2020-12-15 19:59:21 89

原创 建造者模式

建造者模式应用场景需要生成的对象具有复杂的内部结构需要生成的对象内部属性本身相互依赖与不可变对象配合使用优点建造者独立,易拓展便于控制细节风险建造者模式public class BuilderTest { public static void main(String[] args) { ProductBuilder productBuilder = new SpecialConcreteProductBuilder(); Director d

2020-12-04 15:11:55 112

原创 spark scala练习

spark scala练习准备一个文件上传至hdfshello wordhello javahello pythonhello c++​ 启动spark-shellspark-shell获取到要计算的文件val file = spark.read.textFile("test.txt")统计该文件的行数 file.count()获取第一行的内容file.first()获取到特定的内容val lines = file.filter(line => line.co

2020-11-27 09:49:04 248

原创 css盒子模型

盒子模型页面上的任何元素都可以看成是一个盒子模型比如把一个div看成一个盒子那么这个div就拥有盒子外边距(margin)盒子边框(border)盒子内边距(padding)内容(content)如图(图片来自菜鸟教程)

2020-11-26 11:43:45 126

原创 spark提交计算任务到yarn

spark提交计算任务到yarnspark-submit --class org.apache.spark.examples.SparkPi --master spark://172.16.27.3:7077 --deploy-mode cluster $SPARK_HOME/examples/jars/spark-examples_2.12-3.0.1.jar 1000

2020-11-26 11:22:53 202

原创 工厂设计模式

工厂设计模式简单工厂模式/** * 简单工厂模式 */public class FactoryPattern { public static void main(String[] args) { //产品使用 Application application = new Application(); Product object = application.getObject("0"); object.method();

2020-11-25 19:23:40 127

原创 centos7安装spark

qspark的安装写在之前安装spark的机器已经安装好jdk和hadoopspark下载这里推荐清华大学开源镜像站选择合适的版本进行下载上传需要安装的机器解压tar -xvf 文件改名mv 文件 spark配置环境变量vim ~/.bash_profile添加如下#sparkexport SPARK_HOME=spark解压安装路径export PATH=PATH:PATH:PATH:SPARK_HOME/bin使环境生效source ~/.bash_pr

2020-11-25 09:26:33 376

原创 java native关键字

java native关键字初识nativejava.long.Objectpublic class Object { private static native void registerNatives(); static { registerNatives(); }}这个native究竟是什么意思呢?native介绍native是与C++联合开发的时候用的!java自己开发不用的!使用native关键字说明这个方法是原生函数,也就是这个方

2020-11-24 20:33:01 99

原创 单例设计模式(java与node实现)

单例设计模式什么是单例设计模式单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例具体实现(1)将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。(2)在该类内部产生一个唯一的实例化对象,并且将其封装为private static类型。(3)定义一个静态方法返回这个唯一对象。java语言实现懒汉模式延迟加载,当只有使用的时候才开始真正的实例化/** *

2020-11-24 20:11:56 187

原创 vue项目添加进度条效果

vue项目添加进度条效果nprogress简介这是一个小进度条插件。纳米级的进度条,涓涓细流动画告诉你的用户,一些事情正在发生!安装npm install --save nprogress或者使用淘宝镜像cnpm install --save nprogress使用在main.js中配置//NProgressimport NProgress from 'nprogress'import 'nprogress/nprogress.css'//定义拦截器axios.inter

2020-11-19 17:43:43 326

原创 CAP理论

CAP理论分布式系统的三个指标一致性可用性分区兼容性这三个指标无法同时做到,只能取其二,这个理论叫做CAP理论分区兼容性§分布式系统大多数都分布在多个子网络中,每个子网络都是一个分区,区间兼容性的意思就是通信可能会失败,一般来说分区容错无法避免,因此可以认为,CAP中P总是存在的,C和A只能选其一一致性©写操作之后的读操作,必须返回该值举例,用户A向GA发送一个请求将Vo的值改成了V1,那么下次用户无论访问的是那一台服务器都将返回V1但问题是GA的值修改了,GB的值还是V0,GA

2020-11-19 17:43:12 128

原创 Hbase(五) JavaApi操作Hbase

Hbase(五): JavaApi操作Hbase依赖<dependencies> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>0.98.17-hadoop2</version> </depend

2020-11-14 19:29:10 154

原创 Hbase(四):Hbase原理

Hbase(四):Hbase原理Hbase的工作方式region的分裂和结构hbase表中的数据按照行键的字典顺序排序hbase表中的数据按照行的的方向切分为多个region最开始只有一个region 随着数据量的增加 产生分裂 这个过程不停的进行 一个表可能对应一个或多个regionregion是hbase表分布式存储和负载均衡的基本单元 一个表的多个region可能分布在多台HRegionServer上region是分布式存储的基本单元 但不是存储的基本单元 内部还具有结构一个regio

2020-11-14 19:28:43 512

原创 Hbase(三)Hbase安装配置

Hbase(三):Hbase安装配置写在之前已经安装好jdk环境和hadoop完全分布式还需要安装zookeeper单机模式直接解压安装包tar -zxvf xxxxx.tar.gz​ 修改conf/hbase-site.xml,配置hbase使用的数据文件的位置,默认在/tmp/hbase-[username],此目录是linux的临时目录,可能会被系统清空,所以最好修改一下<property> <name>hbase.rootdir</nam

2020-11-14 19:28:07 290

空空如也

空空如也

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

TA关注的人

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