自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

武汉小喽啰

我是一枚奋斗在底层的小喽啰,看哪天绽放出一簇美丽的花朵,笑着扑向熊熊燃烧的焰火。。。

  • 博客(357)
  • 资源 (2)
  • 收藏
  • 关注

原创 常用的SpringBoot时间格式化

1.前端时间格式化function dateFormat(fmt, date) { let ret; const opt = { "Y+": date.getFullYear().toString(), // 年 "m+": (date.getMonth() + 1).toString(), // 月 "d+": date.getDate().toString(), // 日 .

2021-07-26 20:56:53 498 4

原创 10. docker——安装Tomcat、mysql、redis、MongoDB

1. 通用步骤1)搜索镜像2)拉取镜像3)查看镜像4)启动镜像5)停止容器6)移除容器2.安装tomcat2.1 操作步骤2.1.1docker hub上面查找tomcat镜像docker search tomcat2.1.2从docker hub上拉取tomcat镜像到本地docker pull tomcat2.1.3 检查 查看是否有拉取到的tomcatdocker images2.1.4使用tomcat镜像创建容器(也叫...

2021-05-02 23:58:56 352

原创 9. docker——DockerFile案例

1. Base镜像(scratch)Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的2. 自定义镜像mycentos 从dockerHub上拉取的centOs是不带vim与ifconfig的,我们可以自定义一个centOs,让其默认就只带这两个指令2.1编写在myDocker目录下,新建一个DockerFile文件,内容如下FROM centos# 指定作者MAINTAINER zdm<zoudmbean...

2021-04-29 22:11:42 461 1

原创 8. docker——容器数据卷

1. 简介先来看看Docker的理念:* 将应用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的* 容器之间希望有可能共享数据Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。这有点类似Redis里面的rdb和aof文件2 能干什么 卷就是目录或文件,存在于一个或多个容器中,由docker挂载到...

2021-04-29 22:11:20 232

原创 kubernetes(K8S)——2. 集群搭建

所有节点安装Docker、Kubeadm、Kubelet、Kubectl。Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker1.安装Docker1.1 卸载之前的dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotat...

2021-04-25 22:42:46 428 1

原创 7. docker——镜像

1. 概述 镜像是一种轻量级、可自行的独立软件包,用来打包软件运行环境和基于运行环境快发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。1.1UnionFS(联合文件系统) 是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。Union文件系统是Docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜...

2021-04-20 23:59:44 935 4

原创 CentOS系统命令行安装图形化

1. 前提条件1)确保虚拟机能上网2)确保yum命令已安装2.获取并且安装图形界面GNOME的程序包1)获取并安装CentOS 7默认的图形界面GNOME程序包。yum groupinstall "GNOME Desktop" "Graphical Administration Tools"安装完毕,如图:表示安装失败,该问题是由于文件fwupdate-efi 同grub2-common冲突所致,这里需要将该包通过yum update grub2-common命令进行更新.

2021-04-20 23:13:35 719

原创 kubernetes(K8S)——1. 环境准备

基础部分参看官网介绍,很详细:https://kubernetes.io/zh1. 快速体验(minikube)https://github.com/kubernetes/minikube/releases1.1 安装1)下载minikube-windows-amd64.exe改名为minikube.exe2)打开VirtualBox,打开cmd3)运行minikube start --vm-driver=virtualbox --registry-mirror=https://re

2021-04-19 23:32:11 161

原创 4. docker.——常用命令2

1. 启动守护式容器语法格式:docker run -d 容器名OPTIONS参数说明:有些是一个减号,有些是两个减号--name="容器新名字":为容器指定一个名称-d:后台运行容器,并返回容器ID,也即启动守护容器-i:以交互模式运行容器,通常与-t同时使用-t:为容器重新分配一个伪输入终端,通常与-i同时使用-P:随机端口映射-p:指定端口映射,有以下4种格式 ip:hostPort:containerPort ip::containerPort hostPort:

2021-04-13 22:09:03 302

原创 MySQL——锁机制

1. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。2. 锁的分类2.1 从对数据操作的类型(读/写)分2.1.1 读锁(共享锁)针对同一份数据,多个读操作可以同时进行而不...

2021-04-11 18:48:24 377

原创 MySQL——批量插入数据脚本

往表中插入50万记录1. 建表CREATE DATABASE bigData;USE bigData;-- 1. dept表CREATE TABLE dept ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, dname VARCHAR(20) NOT NULL DEFAULT "", loc VARCHAR(13) NOT NULL DEFAULT

2021-04-11 18:48:07 1319

原创 MySQL查询——查询截取分析

开发中发现某一个SQL比较慢,通常排查方式如下:分析:1. 观察,至少跑一天,看看生产的慢SQL情况。2. 开启慢查询日志,设置阈值,比如超过5s的就是慢SQL,并将它抓取出来3. explain+慢SQL分析4. show profile5. 进行SQL数据库服务器的参数调优(运维经历orDBA做)总结:1)慢查询的开启并捕获2)explain+慢SQL分析3)show profile查询SQL在mysql服务器里面的执行细节和生命周期情况4)SQL数据库服务器的参数调优

2021-04-11 18:47:45 205

原创 MySQL查询——索引优化

1. 索引优化1.1 单表优化

2021-04-11 18:47:20 144

原创 MySQL基础

1. mysql主要架构1.1 主要配置文件1)二进制日志log-bin:其主要作用用于主从复制2)错误日志log-error:默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等3)查询日志log:默认关闭,记录查询的SQL语句,如果开启会降低mysql的整体性能,因为记录日志需要消耗系统资源4)数据文件 frm文件:存放表结构 myd文件:存放表数据 myi文件:存放表索引1.2 mysql的逻辑架构1)连接层:最上层是一些客户端的...

2021-04-11 18:46:56 219

原创 幂等性

1. 什么是幂等性 接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生副作用。例如;支付场景,用户购买了商品支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性2. 哪些情况需要防止用户多次点击按钮用户页面回退再次提交微服务相互调用,由于网络问题,导致请求失败,feign出发重试机制其他业务情况3. 什么情..

2021-04-08 23:32:39 160

原创 分布式事务——最终一致性的保证

分布式事务可以使用seata实现,但是,对于高并发的场景,使用seata会感觉稍慢,尤其是对一致性要求不那么高的业务完全可以不需要使用seata,这时候,我们可以考虑最终一致性的方案。通过消息队列机制来保证最终一致性,即可。思想:在MQ中新建两个队列,一个死信队列,一个普通队列,让同一个交换机绑定这两个队列,死信队列不处理任何消息,只是用于存放过期的消息,当指定的时间到了,自动路由到普通队列,在某个服务中单独监听这个队列的消息并处理该消息。实现步骤:1. 准备工作1)引入MQ<!

2021-04-01 21:50:03 1082

原创 分布式事务——seata简单使用

1. 本地事务1.1 事务的基本性质数据库事务的几个特性:原子性、一致性、隔离性或独立性、持久性简称ACID1)原子性;一系列的操作整体不可拆分,要么同时成功,要么同时失败2)一致性:数据在事务前后,业务整体一致3)隔离性:事务之间互相隔离4)持久性:一旦事务成功,数据一定会落盘在数据库在以往的单体应用中,我们多个业务操作使用同一事务连接操作不同的数据表,一旦有异常,我们可以很容易的整体回滚1.2 事务隔离级别1) READ UNCOMMITTED(读未提交):该隔离级别的事务会

2021-03-28 17:53:59 2602 4

原创 6. docker——安装rabbitMQ

1. 查看镜像进入docker镜像仓库官网,https://hub.docker.com,搜索rabbitMQ,选中tags,如图:然后点击manager,如图:2. 直接使用如下命令安装docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management注意:1)如果本地没有.

2021-03-14 17:04:14 127

原创 SpringSession——redis

官方参考手册:https://docs.spring.io/spring-session/docs/2.2.1.RELEASE/reference/html5/#samples整合redis手册:1. 项目整合1.1 依赖<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artif.

2021-03-07 11:24:44 2000

原创 分布式session

1.分布式session不共享不同步问题传统的session工作流程该流程的问题是:不能跨不同域名共享。2.Session共享问题解决方案2.1session复制优点:web-server(Tomcat)原生支持,只需要修改配置 文件缺点: 1)session同步需要数据传输,占用大量网络带宽,降 低了服务器群的业务处理能力 2)任意一台web-server保存的数据都是所有webserver的session总和,受到内存限制无法水平扩展 更多的we...

2021-03-07 11:24:15 305

原创 CompletableFuture异步编排实战

1. 自定义线程池1.1 引入属性配置文件提示坐标<!-- spring的提示工具 添加该坐标这样在properties配置文件中就可以读取到并提示 @ConfigurationProperties 标注的配置类中的信息了--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-pro

2021-02-25 14:38:59 240

原创 多线程——CompletableFuture异步编排

1. 创建异步对象CompletableFuture提供了4个静态的方法来创建一个异步操作1.1 没有返回值1)public static CompletableFuture<Void> runAsync(Runnable runnable)2)public static CompletableFuture<Void> runAsync(Runnable runnable,Executor executor)例如:public class Completa

2021-02-25 14:38:43 660 1

原创 11. ElasticSearch实战3——检索服务-SearchRequest构建-检索

1. 检索根据DSL语句构建检索条件1.1 DSL语句GET gulimall_product/_search{ "query": { "bool": { "must": [ { "match": { "skuTitle": "华为" } } ], "filter": [ { "term": {

2021-02-21 16:48:10 3039 2

原创 10. ElasticSearch实战2——检索服务-保存索引

重点在检索,保存简单的记录一下,方便之后查看1. 配置类import org.apache.http.HttpHost;import org.elasticsearch.client.HttpAsyncResponseConsumerFactory;import org.elasticsearch.client.RequestOptions;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.

2021-02-19 15:10:59 298

原创 9. ElasticSearch实战1——复杂的DSL语句

1. 新建es映射关系PUT product{ "mappings" : { "properties" : { "attrs" : { "type" : "nested", "properties" : { "attrId" : { "type" : "long" }, "attrName" : { "t

2021-02-19 15:05:09 401

原创 Spring Cache——redis

1. 简介 Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术,并支持使用JCache(JSR-107)注解简化开发。Cache接口为缓存的组件规范定义,包含缓存的各种操作集合,Cache接口下spring提供了各种xxCache的实现,如RedisCache、EhCache、ConcurrentMapCache等。 每次调用需要...

2021-02-18 18:26:04 1315

原创 高并发下的开发2——分布式锁Redisson

Redisson就是一个redis的java客户端。参看文档:https://github.com/redisson/redisson/wiki1. 整合步骤1.1 引入依赖<!-- https://mvnrepository.com/artifact/org.redisson/redisson --><dependency> <groupId>org.redisson</groupId> <artifactId&gt

2021-02-16 17:30:23 201

原创 性能压测

1. 性能指标1)响应时间(Response Time:RT):响应时间指用户从客户端发起一个请求开始到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间2)HPS(hits per second):每秒点击次数,单位是次/秒3)TPS(Transaction per second);系统每秒处理交易数,单位是笔/秒4)QPS(Query per second):系统每秒处理查询次数,单位是次/秒。 对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=Q...

2021-02-15 21:09:34 438

原创 高并发下的开发1

1. 高并发下缓存失效问题1.1 缓存穿透1)概念指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义2) 风险利用不存在的数据进行攻击,数据库瞬时压力增大,最终导致崩溃3)解决方案将null结果缓存,并加入短暂过期时间1.2 缓存雪崩1)概念缓存雪崩是指在我们设置缓存的key采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全

2021-02-15 21:08:05 159

原创 4. docker.——常用命令

1. 帮助命令1)查看版本docker version2)查看docket详情docker info3)docker帮助命令docker --help2. 镜像命令2.1 列出本机镜像docker images2.1.1 表头选项说明REPOSITORY:表示镜像仓库员TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间SIZE:镜像大小同一个仓库源可以有多个TAG,代表这个仓库源的不同个版本,我们使用REPOSITOR

2021-02-09 23:03:17 393

原创 使用Vagrant安装软件

1. 安装docker1.1 使用1.1.1 根据docker官网安装手册,先卸载1.1.2 安装相关依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm21.1.3设置仓库sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo1.2 安装do...

2021-02-02 22:37:24 201

原创 使用Vagrant快速创建虚拟机与相关设置

1. 安装Linux虚拟机下载并安装VirtualBox,要开启CPU虚拟化技术,如图:安装完成之后的界面如图:通用的做法是我们下载相关Linux镜像,点击新建,新建虚拟机即可,现在我们使用vagrant来快速创建虚拟机。操作步骤:1)下载安装vagrant并安装2)...

2021-02-02 22:37:04 314

原创 8. ElasticSearch——整合SpringBoot

1. 前言 1.1 java发送es通常有两种方式1.1.1 通过9300 TCP端口要通过9300发送es,就需要与es建立一个长连接,该操作,在有api与之对应:spring-data-elasticsearch:transport-api.jar,但是我们在java中一般不会通过该端口操作,原因如下1)springboot版本不同,transport-api.jar不同,不能适配es版本2)7.X已经不建议使用,8以后就要废弃3)ES集群节点之间的通信也是使用...

2021-02-02 22:36:17 792

原创 7. ElasticSearch——分词(自定义扩展词库)

IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。1. nginx新建词库1)在nginx新建一个文件夹es,将ik所需要使用的资源放在里面如图:2)在es目录下,新建一个文件fenci.txt,将需要分词的内容放在该文件中。cd esvi fenci.txt输入如下词语保存3)将es移动到html目录下,因为nginx默认访问的是html目录mv es ./html/4)访...

2021-02-02 22:36:00 788

原创 6. ElasticSearch——分词

1.

2021-02-02 22:35:43 345

原创 5. ElasticSearch——映射mapping

1. 概述Mapping是用来定义一个文档(document),以及它所包含的属性(field)是如何存储和索引的,比如,使用mapping来定义:1)哪些字符串属性应该被看作全文属性(full text fields)2)哪些属性包含数字、日期或者地理位置3)文档中的所有属性是否都能被索引(_all配置)4)自定义映射规则来执行动态添加属性2. 映射类型 ElasticSearch6 开始去掉了映射类型type的概念。 关系型数据库中两个数据表示是独立的...

2021-02-02 22:35:21 120

原创 4. ElasticSearch——aggregations聚合分析

聚合提供了从数据中分组和提取数据的能力,最简单的聚合方法大致等于sql group by和sql聚合函数。在ES中,如果有执行搜索返回his()命中结果,并且同时返回聚合结果,把一个响应中的所有his(命中结果)分隔开的能力。这是非常强大且有效的,我们可以执行查询和多个聚合,并且在一次使用中得到各自的(任何一个的)返回结果,使用一次简洁和简化的API来避免网络往返。语法:"aggregations":{ "<aggregation_name>":{ "<ag...

2021-02-02 22:34:59 667 1

原创 3. ElasticSearch全文检索——检索进阶

1. 测试数据准备官方GitHub有给我们提供测试数据,https://github.com/elastic/elasticsearch/edit/master/docs/src/test/resources/accounts.json进入,将数据复制,然后在Kibana上执行批量操作,如图:查看索引信息API官网参考地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-s

2021-02-02 22:34:38 422

原创 2. ElasticSearch全文检索

1. 初步检索1.1 _cat查看节点信息_cat请求都为GET请求1)/_cat/nodes:查看所有节点2)/_cat/health:查看es健康状况3)/_cat/master:查看主节点4)/_cat/indices:查看所有索引 。类似mysql中的show databases1.2索引一个文档(保存数据)要保存一条记录,就需要告诉ES要“保存在哪个索引的哪个类型下,指定用哪个唯一标识”1)请求方式:PUT/POST2)例如:给custom.

2021-02-02 22:34:20 141 1

原创 1. 认识ElasticSearch

1. 简介1.1 概述 Elasticsearch是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。Elasticsearch在Apache Lucene的基础上开发而成,其以其简单的rest风格API、分布式特性、速度和可扩展性而闻名,是Elastic Stack的核心组件; Elastic stack是适用于数据采集、充实、存储、分析和可视化的一组开源工具,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,...

2021-02-02 22:33:54 255

cas-4.0.0.tar.gz

CAS软件包,直接可以使用。

2020-04-04

JAVA笔记.docx

java基础笔记

2020-04-03

空空如也

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

TA关注的人

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