自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot 配置文件参数加密

springboot 加密参数

2023-01-05 17:24:19 173

原创 jar 包比较工具

jar对比工具

2022-07-28 18:08:17 1777 2

原创 获取迭代器中的长度

导入import com.google.common.collect.Iterators;public static void main(String[] args) { ArrayList<Integer> integers = new ArrayList<>(); for (int i = 0; i < 1000; i++) { integers.add(i); } Iterator

2021-10-09 16:02:06 1229

原创 判断当前时间是否在指定范围时间内,支持跨天判断时间

/** * 判断当前时间是否在指定范围时间内 * * @param businessTime 时间段 12:00--13:00 * @return true-在 false-不在 */ public static Boolean judgeTheTimeRange(String businessTime) { try { String[] times = businessTime.split("--");

2021-08-23 18:02:29 511

原创 springboot如何连接hbase并实现简单查询

application.yml添加配置 hbase: zookeeper: quorum: zkip parent: /hbase(默认) client: username:用户名 password:密码创建config@org.springframework.context.annotation.Configurationpublic class HbaseConfig { private static final Logger log =.

2021-08-23 17:23:41 1835

原创 javassist插入集合以及遍历集合

package io.ct.java.agent;import javassist.ClassPool;import javassist.CtClass;import javassist.CtMethod;import java.io.ByteArrayInputStream;import java.lang.instrument.ClassFileTransformer;import java.lang.instrument.IllegalClassFormatException;imp

2020-10-15 10:58:00 526

原创 javaagent和javassist对controller的代码进行修改

Instrumentation的所有方法void addTransformer(ClassFileTransformer transformer, boolean canRetransform)//注册ClassFileTransformer实例,注册多个会按照注册顺序进行调用。所有的类被加载完毕之后会调用ClassFileTransformer实例,相当于它们通过了redefineClasses方法进行重定义。布尔值参数canRetransform决定这里被重定义的类是否能够通过retransformC

2020-10-14 10:27:44 906

原创 Windows安装mysql-5.7.28详细教程

一、软件下载链接:https://pan.baidu.com/s/1HPqi9-sZlBOgEJM9OM_Jkg提取码:dasx二、解压与配置解压将压缩包解压到D盘:如D:\public\mysql-5.7.28-winx64\mysql-5.7.28-winx64my.ini文件 和 data文件夹解压在刚解压好后是没有的,需要手动添加(1)创建my.ini文件,配置内容如下:[mysql]default-character-set=utf8[mysqld]port = 330

2020-09-26 16:53:35 964 1

原创 redis的数据同步

redis数据同步这一块主要是跟mysql数据同步吧,mysql数据可能会发生变动,那么redis就要跟数据库的数据保持一致我们实际去使用的时候,是在数据发生变动的地方,比如增删改的时候,新奇一个线程,然后将变动的数据更新到redis中,根据不同的场景需求,也可以在数据变动时,把redis里的数据删掉,下一次用户查询的时候,发现redis中没有数据,就会重新去数据库加载一遍,这样也可以实现同步的效果...

2020-08-17 13:51:29 346 1

原创 redis缓存雪崩和缓存穿透、缓存预热、缓存降级

redis缓存雪崩和缓存穿透、缓存预热、缓存降级缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存还没有存入到redis的期间比方说:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期,所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。解决办法:加最多的解决方案就是锁,或者队列的方式来保证不会有大量的线程对数据库一次性进行读写,从而避免失效时大量的并发请求落到底层存储系统上。还有

2020-08-17 13:49:20 146

原创 redis知识简介

redis简介Redis是一个非关系数据库,我们项目中主要用它来存储热点数据的,减轻数据库的压力,单线程纯内存操作,采用了非阻塞IO多路复用机制,就是单线程监听,我们项目中使用springdata-redis来操作redis我们项目中使用redis的地方很多,比方说首页的热点数据,数据字典里的数据等都用热地说存储来提高访问速度redis呢有5种数据类型,string、list、hash、set、zset,我们常用的有string、list和hash,一些简单的key-value类型的都存储在strin

2020-08-14 10:16:32 126

原创 nginx知识点简介

介绍一下nginxNginx 是一个高性能的 HTTP 和反向代理服务器,具有反向代理和负载均衡以及动静分离等功能我先来说说反向代理功能吧反向代理是指以代理服务器来接受用户的请求,然后将请求,分发给内部网络上的服务器,并将从服务器上得到的结果返回给用户,此时代理服务器对外就表现为一个反向代理服务器。 反向代理总结就一句话就是:代理端代理的是服务端。反向代理的话,只需要配置对应的server模块就行了,里面配置上server_name和对应监听的端口,然后在配置location路径转发规则就行,当然也

2020-08-14 10:13:34 83

原创 RabbitMQ 宕机了怎么处理

RabbitMQ 宕机了怎么处理RabbitMQ 提供了持久化的机制,将内存中的消息持久化到硬盘上,即使重启 RabbitMQ,消息也不会丢失。持久化队列和非持久化队列的区别是,持久化队列会被保存在磁盘中,固定并持久的存储,当 Rabbit 服务重启后,该队列会保持原来的状态在RabbitMQ 中被管理,而非持久化队列不会被保存在磁盘中,Rabbit 服务重启后队列就会消失。非持久化比持久化的优势就是,由于非持久化不需要保存在磁盘中,所以使用速度就比持久化队列快。即是非持久化的性能要高于持久化。而持久化的

2020-08-14 10:12:34 3547

原创 rabbitmq如何保证消息不被重复消费

如何保证消息不被重复消费我们可以在生产者端,发送消息时,数据的变动部分,进行md5加密处理,同时配置上一个唯一id,每次发送的数据的唯一id是递增的,相当于版本号的功能,在消费者端,收到消息之后,首先去数据库匹配一下md5值如果数据库中记录的当前记录已经被消费,那么就不进行消费,如果发现数据库没有记录当前消息,或者记录的状态没有被消费,那么才会重新消费该消息...

2020-08-14 10:12:04 1331

原创 rabbitmq如何保证消息确定消息发送成功,并且被消费成功,有什么保障措施

如何保证消息确定消息发送成功,并且被消费成功,有什么保障措施解析:这里不用背,这里的问法会有很多中,这道题中问了两部分第一部分是确保发送成功,还可以被问成:消息发送失败了怎么办,或者如何保证消息可靠传输第二部分是确保消费成功,还可以被问成:消息消费时,发生异常了,消息已经被消费了,怎么办等首先,需要确保消息被发送成功,rabbitmq中提供了事物和confirm的机制,事物的话,就类似于数据库的事物,开启,执行,提交,如果过程中发生任何异常,就会触发回滚机制,我们可以在回滚中加入一些逻辑处理,重

2020-08-14 10:11:37 3270 1

原创 介绍一下rabbitmq

介绍一下rabbitmqRabbitMQ是Erlang语言开发的基于AMQP的一款消息中间件,核心思想是生产者不会将消息直接发送给队列,消息在发送给客户端时先发送给交换机,然后由交换机转发给对应的队列。对路由(Routing),负载均衡(Load balance)、数据持久化都有很好的支持。它里边有5种数据传递方式第一种是简单模型,一个生产者,一个队列,一个消费者,队列只能被一个消费者监听,所以生产者将消息发给队列之后,只能有一个消费者收到消息第二种是工作模型,一个生产者,一个队列,多个消费者,队列

2020-08-14 10:10:37 192

原创 es内部存储的存储结构

es内部存储的存储结构es内部默认就是分布式的存储结构,每当创建一个索引库的时候,我们需要指定当前索引库的分片数和副本数,分片数就是把数据分布式的存放在分片上,所有分片的数据加起来就是整个索引库的数据量,分片数越多,数据存放的越分散,搜索的时候,es会检索每个分片的伤的数据一起返回。副本数是指在数据进入索引库的时候,同时需要备份的数量,如果副本数量越多,那么需要消耗的存储空间就会越多,过多的话会造成空间浪费,一般生产中使用的时候都用的默认的配置,就是5个分片,2个副本。...

2020-08-14 10:08:38 3484

原创 ElasticSearch中什么是桶(bucket)?什么是度量(metrics)?

什么是桶(bucket)?什么是度量(metrics)?​ 桶,是按照某种方式对数据进行分组,每一组数据在ES中称为一个桶,例如我们根据国籍对人划分,可以得到中国桶、英国桶,日本桶……或者我们按照年龄段对人进行划分:010,1020,2030,3040等。分桶的方式有很多,比如按日期阶梯分组、按数值阶梯分组、按词条内容分组、按数值和日期范围分组等。​ 度量,分组完成以后,我们一般会对组中的数据进行聚合运算,例如求平均值、最大、最小、求和等,这些在ES中称为度量。度量有求平均值、求最大最小值、求百分比、

2020-08-14 10:07:55 759

原创 hystrix介绍

hystrix介绍hystrix在微服务架构中充当熔断器的功能,它提供了资源隔离、限流、熔断、降级、运维监控等功能,在微服务架构中通常会有多个微服务之间相互调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。熔断器的原理很简单,如同电力过载保护器。它可以实现快速失败,如果它在一段时间内侦测到许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器,直接

2020-08-14 09:33:59 113

原创 Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别

Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别1、ZooKeeper保证的是CP,就是一致性和容错,Eureka保证的是AP,就是可用性和容错。ZooKeeper在选举期间注册服务瘫痪,虽然服务最终会恢复,但是选举期间不可用的,只有等到选举结束之后,所有数据同步之后才能使用。Eureka各个节点是平等关系,只要有一台Eureka就可以保证服务可用,而查询到的数据并不是最新的,自我保护机制会导致Eureka不再从注册列表移除因长时间没收到心跳而应该过期的服务。Eurek

2020-08-14 09:33:38 512

原创 负载均衡的意义是什么

负载均衡的意义是什么我觉得负载均衡的主要意义就是,避免单一应用由于并发等原因,导致应用宕机从而导致系统整体无法使用,多负载同时工作,可以很好的解决高并发的问题,实现服务的高可用。在我们项目中,服务的接入层由nginx管理,用户请求经过nginx之后,根据相应的域名,转发到对应的服务器去,由于nginx只负责请求转发,没有业务逻辑处理,所以效率上非常高。nginx支持的负载均衡策略有很多,我们在nginx.conf中配置upstream模块即可。首先是轮训,默认的就是这种方式第二种权重的方式,就是根

2020-08-13 16:19:38 1921

原创 什么是Springcloud以及服务注册和服务发现是什么意思,springcloud是如何实现的

什么是SpringcloudSpring Cloud 是一系列框架的集合,它利用 Spring Boot 的开发便利性简化 了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。他的设计目的是为 了简化 Spring 应用的搭建和开发过程。该框架遵循“约定大于配置”原则,采用特定的方 式进行配置,从而使开发者不用定义大量的 XML 配置。Spring Cloud 并不重复造轮子,而是将市 面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句话说: Spring Cloud

2020-08-13 16:18:41 2286

原创 springboot自动配置原理以及如何理解springboot中的starters?

如何理解springboot中的starters?Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要加入springboot-starter-data-jpa启动器依赖就能使用了。Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。springboot自动配置原理这个就得从springboot项目的核心注解

2020-08-13 16:17:37 797

原创 springboot项目有哪几种运行方式

springboot项目有哪几种运行方式打包用命令或者放到容器中运行用 Maven/Gradle 插件运行直接执行 main 方法运行

2020-08-13 16:16:48 2352

原创 为什么要用springboot及springboot的优点

为什么要用springbootSpring Boot 优点非常多,如:一、独立运行Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。二、简化配置spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。三、自动配置Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添

2020-08-13 16:13:43 2256

原创 什么是springboot以及Spring Boot 的核心注解

什么是springbootSpringBoot是Spring项目中的一个子工程,其实人们把Spring Boot 称为搭建程序的脚手架。其最主要作用就是帮我们快速的构建庞大的spring项目,并且尽可能的减少一切xml配置,做到开箱即用,迅速上手,让我们关注与业务而非配置。...

2020-08-13 16:12:47 606

原创 Windows下安装使用nginx

链接:https://pan.baidu.com/s/1z8k3zA4gpP0vaIHAU0gutA提取码:x64g直接解压打开就可以使用使用方法找到文件nginx-1.16.1\conf\nginx.conf配置nginx.conf里面的server模块

2020-08-13 15:21:19 61

原创 mybatis工作原理、使用mybatis的原因、mybatis的功能构架

一、baimybatis的工作原理:MyBatis 是支持普通 SQL查询du,存储过程和高zhi级映射的优秀持久层框架dao。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFa

2020-08-13 15:10:41 243

原创 Elasticsearch简单使用入门

Elasticsearch简单使用入门1.操作索引1.1.基本概念Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。对比关系:索引(indices)--------------------------------Databases 数据库 类型(type)-----------------------------Table 数据表 文档(Document)----------------Row 行 字段(Field

2020-08-13 15:07:20 258

原创 elasticsearch导入数据

1.创建应该springboot工程2.引入依赖 <!-- elasticsearch --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dep

2020-08-10 11:39:31 281

原创 根据数字查询对应的英文字母

根据数字获取对应的字母public static char saltDemo(Integer salt){ salt=salt%26; if (salt==0){ salt=26; } int i=96+salt; char c=(char)i; System.out.println(c); return

2020-08-10 11:23:19 804

原创 根据传入的时间获取星期

根据传入的时间获取星期输入 public static String format(Date date){ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String format = dateFormat.format(date); SimpleDateFormat eeee = new SimpleDateFormat("EEEE");

2020-08-10 11:12:46 161

原创 java基本数据类型之解决float和double精度问题

解决float和double精度问题 import java.math.BigDecimal; /** * 进行BigDecimal对象的加减乘除,四舍五入等运算的工具类 * @author ameyume * */ public class demo { public static void main(String[] args) { double d1=2.1;

2020-08-10 10:59:53 237

原创 安装elasticsearch、kibana以及ik中文分词器

链接:https://pan.baidu.com/s/1WSYFXSDBiegwm3nQcQJg7A提取码:sj32安装elasticsearch1.新建一个用户esuser出于安全考虑,elasticsearch默认不允许以root账号运行。创建用户:useradd esuser设置密码:passwd esuser切换用户:su - esuser2.上传安装包,并解压我们将安装包上传到:/home/esuser目录解压缩:tar -zxvf elasticsearch-6.2.4.ta

2020-08-08 18:38:00 206 1

数据库的安装及安装图解

安装mysql-5.5.27-winx64.msi数据库及其详细的安装过程,测试mysql-5.5.27-winx64.msi是否安装成功,其中发生的一些问题

2020-08-14

空空如也

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

TA关注的人

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