- 博客(23)
- 收藏
- 关注

原创 什么是微服务?
1. 构建单体应用模型 - 什么是单体应用模型 1. 应用程序被作为一个单体进行打包和部署,尽管它有一个逻辑模块化架构。(容易开发,易于部署)2. 走向单体地狱 - 单体应用的局限性 1. 一个成功的应用程序随着时间的推移,将成为一个庞大、复杂的单体, 因此敏捷开发和交付问题将变得异常困难。而且应用程序越大,启动时间越长。...
2019-12-28 14:19:33
118
原创 SpringBoot启动流程原理
spring boot的启动流程一、初始化SpringAppliaction对象1. 设置应用的容器类型当前的web应用类型(webApplicationType)是在SpringApplication的构造函数中设置的,设置的逻辑在WebApplicationType.deduceFromClasspath中: return WebApplicationType.SERVLET;...
2020-03-04 00:42:54
456
原创 分布式锁详解
3. 分布式锁的场景与实现3.1 使用场景当客户下档时,我们调用库存中心进行减库存,那我们一般的操作都是: update store set num = $num where id = $id但是这种通过设置库存的修改方式,在并发量高的时候会存在数据库的丢失更新,比如a,b当前两个事务,查询出来的库存都是5,a买了3个单子要把库存设置为2,而b买了1个单子要把库存设置为4,那这个时...
2020-02-29 03:06:23
190
原创 消息中间件之RabbitMQ
一、概述1.1 核心概念1.1.1 JMSJMS:Java Message Service,java消息服务,是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。1.1.2 P2Pp2p:点对点发送,一个...
2020-02-25 22:13:26
210
原创 Schedule(定时任务)
虽然定时任务可以嵌⼊到web应⽤程序和WAR⽂件中,但下⾯演⽰⼀种更简单的⽅法创建了⼀个独⽴的应⽤程序。您将所有的内容打包在⼀个单⼀的、可执⾏的JAR⽂件中,⽤⼀个传统Java main()⽅法驱动。这也就是springboot的启动类。一、入门案例1.1 主程序package com.zqh;import org.springframework.boot.SpringApplica...
2020-01-03 23:07:08
1096
原创 ES导入MySql数据
1. logstash导入MySQL数据要使用logstash导入数据的时候,首先需要将mysql的驱动包(注意版本)加入到logstash的home目录下logstash-core\lib\jars下。在config目录下创建logstash-mysql.conf文件,配置如下:input { jdbc { jdbc_driver_class => "com.mysq...
2020-01-03 21:13:05
1754
原创 Elasticsearch与SpringBoot结合
1. 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency&g...
2019-12-30 23:43:22
271
原创 可重入锁与读写锁
一、 analysis与analyzeranalysis: 文本分析,是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入时将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。analyzer(分词器):由三部分组成:Charac...
2019-12-30 17:37:21
163
原创 Elasticsearch分词
一、 analysis与analyzeranalysis: 文本分析,是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入时将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。analyzer(分词器):由三部分组成:Charac...
2019-12-30 17:34:48
377
原创 Elasticsearch(一)
一、 简介 Elasticsearch是一个基于Apache Lucene™的开源引擎。无论在开源还是专用领域,Lucene可以被认为是迄今为止最先进、性能最好、功能最全的搜索引擎库。 但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。 Elasticse...
2019-12-30 17:33:46
145
原创 ELK环境搭建
spring boot与#### 一、 ELK阐述ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。Logstash是一个用...
2019-12-30 17:33:03
244
原创 volatile关键字
volitale关键字简介: volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。...
2019-12-28 14:29:53
156
1
原创 SpringBoot+Mybatis整合Redis实现二级缓存
一. redis与spring boot整合添加pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> ...
2019-12-28 14:28:32
349
原创 Linux下Redis集群
Liunx下安装Redis官网下载 wget http://download.redis.io/releases/redis-5.0.7.tar.gz解压进入redis-5.0.7目录下 tar -zxf redis-5.0.7.targz cd redis-5.0.7/执行make命令 make 如果在执行make命令时出现:Comm...
2019-12-28 14:27:56
160
原创 单例设计模式
什么是单例设计模式? 单例模式,是一种常见的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式的方法创建的类在当前进程中只有一个实例。 在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到...
2019-12-28 14:26:56
205
1
原创 设计模式七大原则(开口合里最单依)
七大原则 1. 开闭原则 一个软件实体,如;类、模块和函数应该面对修改关闭,面对扩展开放 2. 接口隔离原则(细化接口) - 客户端不要使用它不需要的接口 - 类间的依赖关系应该建立在最小的接口上(接口的功能尽可能单一) 3. 组合/聚合原则 在新对象中使用一些已有的对象,使之成为新...
2019-12-28 14:26:11
759
原创 Vue路由与Vuex
一、 VueRouterVue Router是Vue.js官方的路由管理器。它和Vue.js的核心深度集成,让构建单页面应用变得易如反掌1.1 安装npm install vue-router --save本次协同bootstrap开发,所以也安装了bootstrap,并指定3.3.7版本npm install bootstrap@3.3.7 --save1.2 配置路由信息 ...
2019-12-28 14:25:22
204
原创 Vue网络请求axios
四、网络请求 Vue2.X版本中,官方推荐的网络请求工具是axios。 npm install axios vue-axios --save4.1 配置全局请求地址 新建Base.vue文件,内容如下:<script> const BASE_URL = "http://localhost:8081" export default { B...
2019-12-28 14:24:46
133
原创 Vue组件化开发
一、 组件化编程组件化开发是在ES6中提出来的,可以提高页面的复用率,提高开发效率。它是一套模板化的代码,要有、1.1 编写App.vue和HelloWorld.vueHelloWorld.vue<template> <div> <!-- template的根节点,是必须的 --> <h1 class="title"&g...
2019-12-28 14:24:13
131
原创 Vue基础
一. 第一个VUE程序1.1 引入js<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>1.2 给dom元素定义id <div id="app"> {{msg}} </div> 注意:一定要有根元素包含1.3 vue...
2019-12-28 14:23:03
97
原创 Vue开发环境准备
1. 开发工具VUE开发环境个人推荐VS code,然后安装特定的插件即可开发,可用的插件如下:Vetur —— 语法高亮、智能感知、Emmet等EsLint—— 语法纠错Auto Close Tag —— 自动闭合HTML/XML标签Auto Rename Tag —— 自动完成另一侧标签的同步修改Path Intellisense —— 自动路劲补全HTML CSS Supp...
2019-12-28 14:22:01
137
原创 Api网关(Spring cloud Gateway)
1. Spring cloud Gateway网关什么是网关?网关就是网络请求的统一入口。gateway是spring cloud的第二代网关,未来会取代zuul,其性能是zuul的1.6倍左右,其内部是基于netty、reactor、webflux进行构建的。gateway需要从注册中心获取服务,然后通过网关来调用对应的服务。注意gate不在web环境下运行,也就是说不能打成war包放...
2019-12-28 14:21:16
217
原创 配置Docker容器环境
1. 修改ip和DNS为防止IP冲突,无法联网等问题,需预先设置好主机名、IP、DNS配置 1. 修改cloud.cfg防止重启后主机名还原 vi /etc/cloud/cloud.cfg # 该配置默认为false,修改为true即可 preserve_hostname: true 2. 修改主机名 # 修改主...
2019-12-16 17:50:59
639
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人