- 博客(155)
- 资源 (1)
- 收藏
- 关注
原创 Groovy 基本语法
类型转换:当需要时,类型之间会自动发生类型转换: 字符串(String)、基本类型(如int) 和类型的包装类(如Integer)类说明:如果在一个groovy 文件中没有任何类定义,它将被当做script 来处理,也就意味着这个文件将被透明的转换为一个Script 类型的类,这个自动转换得到的类将使用原始的groovy 文件名作为类的名字。groovy 文件的内容被打包进run 方法,另外在新产生的类中被加入一个main 方法以进行外部执行该脚本。
2023-06-04 22:05:20 952
原创 gradle快速入门
Gradle 是一款Google 推出的基于JVM、通用灵活的项目构建工具,支持Maven,JCenter 多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml 文件,转而使用简洁的、支持多种语言(例如:java、groovy 等)的build 脚本文件。官网地址:Gradle Wrapper 实际上就是对Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的Gradle问题。1.对方电脑没有安装gradle2.对方电脑安装过gradle,但是版本太旧了。
2023-05-28 13:36:37 6274 1
原创 mysql优化器使用方法
导入到一个命名为xx.trace的文件,然后用JSON阅读器来查看(如果没有控制台权限,或直接交由运维,让他把该 trace 文件,输出给你就行了。information_schema.optimizer_trace表。设置优化器追踪的内存大小。
2023-05-03 13:44:23 321 1
原创 [踩坑]elasticsearch-7.12.1 启动报错could not find java in bundled JDK at /opt/elasticsearch-7.12.1/jdk/bin
could not find java in bundled JDK at /opt/elasticsearch-7.12.1/jdk/bin
2023-02-04 20:12:12 1970
原创 Redo Log Undo Log 与 Bin Log介绍
在MySQL数据库中还有一种二进制日志(binlog),其用来进行POINT-IN-TIME(PIT)的恢复及主从复制(Replication)环境的建立。产生的,并且二进制日志不仅仅针对于InnoDB存储引擎,MySQL数据库中的任何存储引擎对于数据库的更改都会产生二进制日志。为了确保每次日志都写入重做日志文件,在每次将重做日志缓冲写入重做日志文件后,InnoDB存储引擎都需要调用一次。fsync的效率取决于磁盘的性能,因此磁盘的性能决定了事务提交的性能,也就是数据库的性能。,不进行fsync操作。
2022-09-12 22:53:59 399
原创 mysql索引一些思考
B+树索引的使用经验(大范围)已经知道数据库中存在两种类型的应用,OLTP和OLAP应用。在OLTP应用中,查询操作只从数据库中取得一小部分数据,一般可能都在10条记录以下,甚至在很多时候只取1条记录,如根据主键值来取得用户信息,根据订单号取得订单的详细信息,这都是典型OLTP应用的查询语句。在这种情况下,B+树索引建立后,对该索引的使用应该只是通过该索引取得表中少部分的数据。这时建立B+树索引才是有意义的,否则即使建立了,优化器也可能选择不使用索引。
2022-09-10 19:48:00 363
原创 rocketMQ之顺序消费
消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。顺序消费的原理解析,在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列);而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是不能保证顺序。但是如果控制发送的顺序消息只依次发送到同一个queue中,消费的时候只从这个queue上依次拉取,则就保证了顺序。当发送和消费参与的queue只有一个,则是全局有序;
2022-09-03 17:43:05 536
原创 rocketMQ之延时处理消息
当前 RocketMQ 不支持任意时间的延迟。生产者发送延迟消息前需要设置几个固定的延迟级别,分别对应1s到2h的1到18个延迟级,消息消费失败会进入延迟消息队列,消息发送时间与设置的延迟级别和重试次数有关。例如在电子商务中,如果提交订单,可以发送延迟消息,1小时后可以查看订单状态。如果订单仍未付款,则可以取消订单并释放库存。您应该会看到消息在其存储时间后大约 10 秒被消耗。
2022-09-03 17:36:46 608
原创 rocketMQ之批处理消息
批量消息发送能够提高发送效率,提升系统吞吐量。同一批批量消息的topic、waitStoreMsgOK属性必须保持一致,批量消息不支持延迟消息。批量消息发送一次最多可以发送 4MiB 的消息,但是如果需要发送更大的消息,建议将较大的消息分成多个不超过 1MiB 的小消息。
2022-09-03 17:35:22 413
原创 rocketMQ之消息的生产与消费
基本示例中提供了以下两个功能* RocketMQ可用于以三种方式发送消息:可靠的同步、可靠的异步和单向传输。前两种消息类型是可靠的,因为无论它们是否成功发送都有响应。* RocketMQ可以用来消费消息。### 1 添加依赖maven:```java org.apache.rocketmq rocketmq-client 4.3.0
2022-09-03 17:24:53 702
原创 rocketMQ安装与启动
一、下载https://rocketmq.apache.org/dowloading/releases/二、启动服务启动nameserveryy@ljdeMacBook-Pro rocketmq-all-4.9.4-bin-release % yy@ljdeMacBook-Pro rocketmq-all-4.9.4-bin-release % cd bin #进入启动目录yy@ljdeMacBook-Pro bin % sh mqnamesrv #启动nameserverJava Ho
2022-09-03 17:09:55 523
原创 Nmap基础入门
Nmap是一款开源、免费的网络探测、安全审计工具通过Nmap探测服务器存活以及开放的服务,以及对目标进行安全审计下载地址:Nmap官网:https://nmap.org原理示列:nmap扫描技术查看在命令行中,输入nmap -h来查看nmap自带的帮助信息。为了确保有一个成功的渗透测试或网络设备监控,必须需要知道目标系统中服务的指纹信息。服务指纹信息包括、和等。通过分析目标往Nmap发送的中某些、和,我们可以推断发送这些的等。nmap通过向目标主机发送多个与数据包并分析其响应来进行操作系统。一个
2022-06-11 21:16:14 1378
原创 EasyExcel快速入门
EasyExcel介绍Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版依赖POI的sax
2022-04-13 18:16:01 378
原创 MyBatis-Plus快速入门
1、简介MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。润物无声只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。效率至上只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。丰富功能热加载、代码生成、分页、性能分析等功能一应俱全。2、创建并初始化数据库2.1 创建数据库mybatis_plus2.2 创建 User 表其对应的数据库 Schema 脚本如下:
2022-04-08 11:25:14 836
原创 java jvm之直接内存释放过程
总结:使用了 Unsafe 对象完成直接内存的分配回收,并且回收需要主动调用 freeMemory方法ByteBuffer 的实现类内部,使用了 Cleaner (虚引用)来监测 ByteBuffer 对象,一旦 ByteBuffer 对象被垃圾回收,那么就会由 ReferenceHandler 线程通过 Cleaner 的 clean 方法调用 freeMemory 来释放直接内存解释:我们先看一个使用直接内存的案例public class Demo1_26 { static int _1
2022-02-19 15:47:46 2846
原创 Caused by: java.nio.file.NoSuchFileException: /Volumes/software/elasticsearch-6.4.3/plugins/ik/plugi
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: Could not load plugin descriptor for plugin directory [ik]Caused by: java.nio.file.NoSuchFileException: /Volumes/software/elasticsearch-6.4.3/plugins/ik/plugin-descriptor.prope
2022-02-06 16:40:42 822
原创 Kafka quick start (Mac指令)
1.安装软件官网链接点击上述链接选择上述推荐版本下载选择推荐链接下载即可2.修改配置文件找到zookeeper.properties和server.properties分别改成本机存放日志信息的目录即可3.简单实用官方笔记点击下述链接官方网址下面是我的使用操作存放路径(看自己情况)cd /Volumes/software/work/kafka_2.13-3.1.0mac运行路径(看自己的情况)/Volumes/software/work/kafka_2.13
2022-02-04 21:12:04 253
原创 google captcha验证码生成工具使用教程 样式配置
1、引入依赖<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version></dependency>2、编写配置类通过源码分析可知,captcha主要是由Producer接口创建而成而DefaultKaptcha又实现了Produ
2022-01-20 20:22:49 2977
原创 The JAVA_HOME environment variable is not defined correctly,this environment variable is needed to r
今天使用mvn命令的时候发现如下报错The JAVA_HOME environment variable is not defined correctly,this environment variable is needed to run this program于是用java -v 命令查看jdk环境是否配置好出现的却是openjdk的环境,并非本人所配环境但当我使用vim ~/.bash_profile的时候却发现环境配置并没有问题于是我想看看是不是文件没重新加载于是使用source
2022-01-16 15:46:21 4471
原创 tar: Error opening archive: Failed to open ‘/Users/yy/Library/Caches/Homebrew/downloads/b05be3b2072f
今天更新Homebrew时报错,在网上找到了解决方案,分享一下报错内容tar: Error opening archive: Failed to open ‘/Users/yy/Library/Caches/Homebrew/downloads/b05be3b2072f164b661133e84dd55a9b916d8b488b9dbd955584cf0c9a13186c–pcre2-10.37_1.big_sur.bottle.tar.gz’Error: ‘git’ must be installe
2022-01-11 18:40:51 2170
原创 WebMagic快速入门
一、WebMagic介绍WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。1.1 WebMagic的四个组件1
2022-01-09 14:41:12 4282
原创 布隆过滤器详解(BloomFilter)以及其实现介绍
一、 三种去重方式1.HashSet使用java中的HashSet不能重复的特点去重。优点是容易理解。使用方便。缺点:占用内存大,性能较低。2.Redis去重使用Redis的set进行去重。优点是速度快(Redis本身速度就很快),而且去重不会占用爬虫服务器的资源,可以处理更大数据量的数据爬取。缺点:需要准备Redis服务器,增加开发和使用成本。3.布隆过滤器(BloomFilter)使用布隆过滤器也可以实现去重。优点是占用的内存要比使用HashSet要小的多,也适合大量数据的去
2022-01-09 14:23:49 729
原创 Java爬虫之HttpClient与Jsoup详解
一、HttpClient网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议访问网页。这里我们使用Java的HTTP协议客户端 HttpClient这个技术,来实现抓取网页数据。所需依赖<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>h
2022-01-06 15:03:41 847
原创 RabbitMQ快速入门
1. 消息中间件概述1.1. 什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。开发中消息队列通常有如下应用场景:1、任务异步处理将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中介,生产方通过MQ
2021-09-30 17:10:07 142
原创 Linux 安装rabbitmq
1. 安装依赖环境在线安装依赖环境:yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz2. 安装Erlang上传链接: https://pan.baidu.com/s/1zeQZcW62QfsTNOuh0pzzoQ 提取码: gp1merlang-22.0.7-1.el7.x86_64.
2021-09-28 22:40:25 185
原创 手拉手教你如何用docker部署mysql redis nginx tomcat
Docker 应用部署一、部署MySQL搜索mysql镜像docker search mysql拉取mysql镜像docker pull mysql:5.6创建容器,设置端口映射、目录映射# 在/root目录下创建mysql目录用于存储mysql数据信息mkdir ~/mysqlcd ~/mysqldocker run -id \-p 3307:3306 \--name=c_mysql \-v $PWD/conf:/etc/mysql/conf.d \-v $P
2021-09-15 22:53:51 162
原创 docker保姆级教程
一、初识docker1.Docker概念Docker 是一个开源的应用容器引擎诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。容器是完全使用沙箱机制,相互隔离容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Editi
2021-09-15 22:45:08 1694 1
原创 Docker 私有仓库搭建使用教程
Docker 私有仓库一、私有仓库搭建# 1、拉取私有仓库镜像 docker pull registry# 2、启动私有仓库容器 docker run -id --name=registry -p 5000:5000 registry# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功# 4、修改daemon.json vim /etc/docker/daemon.json
2021-09-15 22:36:33 757
原创 Docker Compose安装使用教程
Docker Compose一、安装Docker Compose# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docke
2021-09-15 22:33:48 387
原创 dockerfile关键字
Dockerfile关键字作用备注FROM指定父镜像指定dockerfile基于那个image构建MAINTAINER作者信息用来标明这个dockerfile谁写的LABEL标签用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看RUN执行命令执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN [“command” , “param1”,“p
2021-09-15 22:20:31 150
原创 Config,Bus, Stream,Sleuth+Zipkin详解
一、Config 分布式配置中心1.概述Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护。好处:集中管理配置文件不同环境不同配置,动态化的配置更新配置信息改变时,不需要重启即可更新配置信息到服务2.config快速入门config server:使用gitee创建远程仓库,上传配置文件搭建 config server 模块application.yml配置启动类配置导入 config-server
2021-09-11 10:18:35 161
原创 springcloud之Ribbon,Feign,Hystrix,Gateway介绍
一、Ribbon1.Ribbon概述Ribbon是 Netflix 提供的一个基于HTTP和TCP的客户端负载均衡工具。Ribbon主要有两个功能:简化远程调用负载均衡服务端负载均衡负载均衡算法在服务端由负载均衡器维护服务地址列表客户端负载均衡负载均衡算法在客户端客户端维护服务地址列表2.Ribbon远程调用Ribbon 可以与 简化 RestTemplate 的远程调用3. Ribbon 负载均衡Ribbon 负责均
2021-09-09 22:00:24 998
原创 Spring Cloud Gateway 内置的过滤器工厂
Spring Cloud Gateway 内置的过滤器工厂内置的过滤器工厂这里简单将Spring Cloud Gateway内置的所有过滤器工厂整理成了一张表格。如下:过滤器工厂作用参数AddRequestHeader为原始请求添加HeaderHeader的名称及值AddRequestParameter为原始请求添加请求参数参数名称及值AddResponseHeader为原始响应添加HeaderHeader的名称及值DedupeResponseHea
2021-09-09 21:59:14 400
原创 Turbine聚合监控
Turbine聚合监控一、搭建监控模块1. 创建监控模块创建hystrix-monitor模块,使用Turbine聚合监控多个Hystrix dashboard功能,2. 引入Turbine聚合监控起步依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch
2021-09-09 21:35:09 300
原创 初识springcloud以及其代理详解
一.初识springcloud1.架构演变2.什么是微服务架构"微服务”一词源于 Martin Fowler的名为 Microservices 的博文,可以在他的官方博客上找到http://martinfowler.com/articles/microservices.html微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间一般通过 HTTP 的 RESTfuL API 进行通信协作。被拆分成的每一个小型服务都
2021-09-09 10:02:59 375
原创 Euraka配置详解
Euraka配置详解Eureka包含四个部分的配置instance:当前Eureka Instance实例信息配置client:Eureka Client客户端特性配置server:Eureka Server注册中心特性配置dashboard:Eureka Server注册中心仪表盘配置Eureka Instance实例信息配置Eureka Instance的配置信息全部保存在org.springframework.cloud.netflix.eureka.EurekaInstanceCo
2021-09-08 11:46:38 455
原创 事务并发、传播性、隔离级别
事务并发、传播性、隔离级别(重难点)导读:本节重点在于多线程并发环境下的事务处理、和数据库在并发环境下的表锁和行锁。案例:在新增图书的时候,肯定需要先新增作者。SpringMVC声明式事务事务分两种:编程式事务、声明式事务Connection connconn.setAutoCommit(false)conn.commit() conn.rollback()导包<dependency> <groupId>org.springframework<
2021-09-08 11:22:17 235
原创 SpringBoot进阶
01-内容SpringBoot自定配置SpringBoot事件监听SpringBoot流程分析SpringBoot监控SpringBoot部署02-SpringBoot自动配置-Condition-1Condition是Spring4.0后引入的条件化配置接口,通过实现Condition接口可以完成有条件的加载相应的Bean@Conditional要配和Condition的实现类(ClassCondition)进行使用ClassConditionpublic class Cla
2021-09-04 12:04:56 362
原创 SpringBoot快速入门
01-内容Spring概述、快速入门SpringBoot配置SpringBoot整合02-SpringBoot概述SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率SpringBoot功能1) 自动配置Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个
2021-09-03 10:14:11 284
基于Servlet实现的学生成绩管理系统
2020-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人