自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(231)
  • 资源 (19)
  • 收藏
  • 关注

原创 MYSQL-show Profile诊断SQL以及配置优化

mysql 配置优化细节以及使用show profile 工具诊断sql

2022-07-19 21:45:00 71

原创 List转成Set去重案例代码

package com.tuling.kafka.kafkaDemo.Command;import java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Set;/** * @USER: hx * @DATE: 2022/4/27 **/public class SetTest { private String name; private Stri.

2022-04-27 23:00:00 462

原创 Kafka关键参数介绍

acks:(一般来讲通过acks设置all,加上业务捕捉异常记录表,就能知道kafka生产者发送的情况)ACKS为 0:(消息发出去了,不管有没有落到磁盘上,就认为成功)我的kafkaProducer在客户端,只要把消息发送出去,不管那条数据有没有在哪怕Partition Leader上落到磁盘,就不管他了,直接认为这个消息发送成功。如果你采用这种设置的话,那么你必须注意的一点是,可能你发送出去的消息还在半路。结果呢,Partition Leader所在Broker就直接挂了,然后结果你的客户端

2022-04-14 22:30:00 1621

原创 ShadingShereJDBC使用遇到的坑

项目场景:spring boot引入shadingShere-jdbc正常启动,程序运行时SQL会报错问题描述::shadingshere 4.0.0-RC1 版本,使用此版本之前,程序一直运行正常,当我研究到shardingsphere的事务的时候,引入 sharding-transaction-spring 架包(3.1.0)版本,结果shadingshere-jdbc执行SQL时就报错了@Override public void run() { bytes = mmInStrea

2021-11-19 10:04:49 262

原创 ShardingSphere-Proxy

ShardingSphere-Proxy:服务端分库分表定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。 目前提供 MySQL 和 PostgreSQL(兼容 openGauss 等基于 PostgreSQL 的数据库)版本,它可以使用任何兼容 MySQL/PostgreSQL 协议的访问客户端(如:MySQL Command Client, MySQL Workbench, Navicat 等)操作数据,对 DBA 更加友好。...

2021-10-29 00:49:54 291

原创 ShardingSphere-JDBC

优点: 客户端分库分表-和业务代码无缝粘合引入jar配置即可定位为轻量级 Java 框架,在 Java 的 JDBC 层提供的额外服务。 它使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。适用于任何基于 JDBC 的 ORM 框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template 或直...

2021-10-29 00:48:09 161

原创 Spring声明式事务不生效场景

场景一Service方法抛出的异常不是RuntimeException或者Error类型,并且@Transactional注解上没有指定回滚异常类型。对应的代码例子为:@Servicepublic class UserServiceImpl implements UserService { private final UserMapper userMapper; public UserServiceImpl(UserMapper userMapper) {

2021-07-19 20:17:45 463 1

原创 logstash-es数据搬迁到es上

input { stdin{ } elasticsearch { type => "type类型和output的type类型保持一致" hosts => ["http://es输入数据ip:es输入数据端口"] user => "用户名" index => "es上的索引" password => "密码" #设置为true,将会提取ES文档的元数据信息,例如i.

2021-07-05 20:20:29 956 2

原创 ES集群配置

ES集群步骤:1,需要几个ES节点,安装几个ES服务,同一台机器设置对外暴露的Http端口和ES交互的TCP端口需要不一致2,每个ES服务如下增加ES配置,有中文说明,可自行更改​# ======================== Elasticsearch Configuration =========================## NOTE: Elasticsearch comes with reasonable defaults for most settings.#

2021-07-05 20:10:22 2294

原创 ELK启动命令

es启动命令,进入到elasticsearch安装根目录查找ES进程 ps -ef | grep elastic杀掉ES进程 kill -9 (进程号-pid)启动:./bin/elasticsearch -d kibana启动,进入到kibana安装目录 杀掉kibana进程: netstat -tunlp|grep kibana默认端口 找到pid kill -9 pid 启动前台命令:./kibana ...

2021-07-05 19:59:24 315

原创 ES集群同步原理

(1)、ES基本概念名词    Cluster  代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。    Shards  代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分..

2021-07-05 19:54:44 2098

原创 关于Elasticsearch的分片和副本

1,分片(Shard)Elasticsearch是一个分布式的搜索引擎,索引的数据也是分成若干部分,分布在不同的服务器节点中分布在不同服务器节点中的索引数据,就是分片(Shard)。Elasticsearch会自动管理分片,如果发现分片分布不均衡,就会自动迁移一个索引(index)由多个shard(分片)组成,而分片是分布在不同的服务器上的2,副本为了对Elasticsearch的分片进行容错,假设某个节点不可用,会导致整个索引库都将不可用。所以,需要对分片进行副本容错。每一个分片都会有对应的.

2021-07-05 19:44:58 903

原创 elasticsearch.yml配置说明

1.1、cluster.name: elasticsearch配置es的集群名称,默认是elasticsearch,es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。1.2、node.name:"Franz Kafka"节点名,默认随机指定一个name列表中名字,该列表在es的jar包中config文件夹里name.txt文件中,其中有很多作者添加的有趣名字。1.3、node.master: true指定该节点是否有资格被选举成为node,默认是tr.

2021-07-05 19:43:46 731

原创 MY.CNF参数说明

[mysqld]server-id=513306 # Mysql唯一标识,一个集群中唯一;port=3306 # 服务端口,默认3306user = mysql # 启动用户,建议用户mysqlbind_address= 0.0.0.0 # 绑定的IP地址,建议使用具体地址basedir=/mysql/...

2021-07-05 15:09:16 77

原创 MYSQL-IO过高解决方案

1、日志产生的性能影响:由于日志的记录带来的直接性能损耗就是数据库系统中最为昂贵的IO资源。MySQL的日志包括错误日志(ErrorLog),更新日志(UpdateLog),二进制日志(Binlog),查询日志(QueryLog),慢查询日志(SlowQueryLog)等。当然,更新日志是老版本的MySQL才有的,目前已经被二进制日志替代。在默认情况下,系统仅仅打开错误日志,关闭了其他所有日志,以达到尽可能减少IO损耗提高系统性能的目的。但是在一般稍微重要一点的实际应用场景中,都至少需要打开二进制日

2021-06-28 14:27:24 1009

原创 visualvm远程监控JVM配置

CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=你的ip"CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial="CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true"# 此处是JMX端口,不能和tomcat端口保持一致否则 tomcat 无法启动 visualvm

2021-05-28 17:07:22 173

原创 走进JVM调优

前面几篇介绍了JVM的堆空间的老年代和年轻代,以及JVM调优的一些参数,本文介绍如何对JVM下手调优。目前系统现象:1、系统响应速度大概为100ms;2、当系统QPS增长到40时,机器每隔5秒就执行一次minor gc,每隔3分钟就执行一次full gc,并且很快就一直full GC了;3、每次Full gc后旧生代大概会消耗400M,有点多了。解决方案:解决Full GC次数过多的问题 (1)降低响应时间或请求次数,这个需要重构,比较麻烦;——这个是终极方法,往往能够顺利的解..

2021-05-27 14:04:28 59

原创 JVM元空间(Metaspace)

一、从方法区(PermGen)到元空间(Metaspace)方法区(PermGen)JDK1.8以前的HotSpot JVM有方法区,也叫永久代(permanent generation)。 方法区用于存放已被虚拟机加载的类信息、常量、静态变量,即编译器编译后的代码。 方法区是一片连续的堆空间,通过-XX:MaxPermSize来设定永久代最大可分配空间,当JVM加载的类信息容量超过了这个值,会报OOM:PermGen错误。 永久代的GC是和老年代(old generation)捆绑在一起的,无

2021-05-27 13:58:31 2246 1

原创 年轻代和老年代的比例

在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存模型大致为:从图中可以看出:堆大小 = 新生代 + 老年代。其中,堆的大小可以通过参数 –Xms、-Xmx 来指定。默认的,新生代 ( Young ) 与老年代 ( Old ) 的..

2021-05-27 11:41:40 2063

原创 JVM常见配置汇总

堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5 -XX:MaxPermSize=n:设置持久

2021-05-27 11:40:57 37

原创 Jvm堆内存空间

年轻代:这里是所有新对象产生的地方.当年轻代内存空间被用完的时候就会触发垃圾回收.这个垃圾回收叫做Minor(年轻的) GC.年轻代被分为3个部分------Enden(终点)区和2个Survivor(幸存)区.1.大多数新建的对象都位于Eden区2.当Eden区满了就会Minor GC将不再被其他对象引用的对象进行销毁,然后把存活下来的对象移动到一个survior区.3.如果这个survior区也满了就会再次Minor GC,并将剩下存活的对象转移到另一个survivor区.这样在一段时间

2021-05-27 11:40:19 61 1

原创 Redis实现模糊删除

前言: 由于redis不支持模糊删除,因此特写了通过Java实现Redis的模糊删除功能。 要想通过redis实现模糊删除命令,可通过redis-cli -p 6444 keys "*:17" | xargs redis-cli del 说明: redis-cli (redis组件) xarg(shell脚本,使用需要安装组件包或者资源库,可百度自行了解) *:17 (模糊删除条件) -p 6444(redis端口号) @Ove...

2021-04-28 11:32:08 4644 3

原创 MySQL_Case When遇到的坑

关于insert into tableA (字段1....字段N) select * from tableB使用Case When 插入遇到的坑第一种 Case 后接 字段名 (可以查询tableB的数据出来,也可以插入tableA)case tddp.WINNING_BIDDERwhen '中国电信' then '12'when '中国移动' then '10'when ''中国联合网络通信' then '11'else ''end as TENDER_COMPANY,

2021-04-13 16:33:06 733

原创 MySQL快速复制一张表

复制一张表,方法有很多种。一、最简单的方法:create table t2 as select * from t1;二、逻辑导出:1、mysqldump逻辑导出mysqldump -h$host -P$port -u$user --add-locks=0 --no-create-info --single-transaction --set-gtid-purged=off test01 t2 --where='c1>4' --result-file=/mysql/backup/t2

2021-04-13 09:57:09 1073

原创 KafKa和RabbitMQ

1.应用场景方面RabbitMQ:用于实时的,对可靠性要求较高的消息传递上。kafka:用于处于活跃的流式数据,大数据量的数据处理上。2.架构模型方面producer,broker,consumerRabbitMQ:以broker为中心,有消息的确认机制kafka:以consumer为中心,无消息的确认机制(也有消息的确认机制)3.吞吐量方面RabbitMQ:支持消息的可靠的传递,支持事务,不支持批量操作,基于存储的可靠性的要求存储可以采用内存或硬盘,吞吐量小。kafka:内部采用消息的批量处

2021-03-11 11:27:45 116 2

原创 java - 解决es超过1万条无法查询的问题

在kibana客户端执行以下命令即可PUT es的索引名称/_settings{ "index":{ #设置该索引最大查询数量 "max_result_window":10000000 }}该配置的最大好处就是不用重启es

2021-01-20 11:02:14 986

转载 那些年我们踩过的坑,SQL 中的空值陷阱!

那些年我们踩过的坑,SQL 中的空值陷阱! 置顶 不剪发的Tony老师 2019-12-31 07:31:17 ...

2020-11-10 16:21:45 422

转载 删除存储过程非常慢,但是执行SQL很快问题分析

问题一:存储过程放在查询分析器中执行,大概耗时5秒左右即可成功执行,但是在网站中执行却会超时 1.    将该存储过程放到查询分析器中执行,大概耗时5秒左右即可成功执行,但是在网站中执行却会超时; 2.       经查阅资料,这里存储过程的执行计划是被缓存了,参数不同,还是按照老的执行计划查询,效率也会不同...

2020-11-05 16:22:01 414

原创 通过logstash将关系型数据库数据同步到ES

input { # 多张表的同步只需要设置多个jdbc的模块就行了 jdbc { # mysql 数据库链接,shop为数据库名 jdbc_connection_string => "jdbc:mysql://localhost:3306/库名称?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC" # 用户名和密码 jdbc_user => "root"...

2020-11-02 19:40:44 480

转载 mysql的sql_mode关于date的两个参数值NO_ZERO_DATE和NO_ZERO_IN_DATE

STRICT_TRANS_TABLES:  在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做任何限制 NO_ZERO_IN_DATE:  在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。 NO_ZERO_DATE: 在严格模式,不要将 '0000-0...

2020-10-26 18:42:46 2307

原创 SpringCloud之Zuul网关原理及其配置

Zuul简介  Zuul是spring cloud中的微服务网关。网关: 是一个网络整体系统中的前置门户入口。请求首先通过网关,进行路径的路由,定位到具体的服务节点上。  Zuul是一个微服务网关,首先是一个微服务。也是会在Eureka注册中心中进行服务的注册和发现。也是一个网关,请求应该通过Zuul来进行路由。  Zuul网关不是必要的。是推荐使用的。  使用Zuul,一般在微服务数量较多(多于10个)的时候推荐使用,对服务的管理有严格要求的时候推荐使用,当微服务权限要求严格的时候推荐使用

2020-07-15 11:09:34 524

原创 SpringCloud之Hystrix容错保护原理及配置

1 什么是灾难性雪崩效应?  如下图的过程所示,灾难性雪崩形成原因就大致如此:  造成灾难性雪崩效应的原因,可以简单归结为下述三种:服务提供者不可用。如:硬件故障、程序BUG、缓存击穿、并发请求量过大等。 重试加大流量。如:用户重试、代码重试逻辑等。 服务调用者不可用。如:同步请求阻塞造成的资源耗尽等。  雪崩效应最终的结果就是:服务链条中的某一个服务不可用,导致一系列的服务不可用,最终造成服务逻辑崩溃。这种问题造成的后果,往往是无法预料的。2 如何解决灾难性雪崩效应?  解决

2020-07-14 13:51:31 230

原创 SpringCloud——Feign实例及原理

一、实例1、配置feign添加依赖在maven的pom中添加feign <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> </dependency>配置启用在Application启动类中添加@En

2020-07-14 12:24:01 377

原创 eureka和zookeeper的区别

注册中心规则每一个微服务启动的时候,都需要去注册中心注册(eureka或zookeeper或其他)同类服务注册的服务名必须相同,不同类服务注册的服务名一定不能相同(订单服务部署5台服务器,那么这5台微服务在注册中心中注册的服务名必须一致,例如ORDER)(商品服务部署4台服务器,那么这4台微服务在注册中心中注册的服务名必须一致,例如GOODS)(订单服务和商品服务注册的服务名一定不能相同,不能同为ORDER,也不能同为GOODS)eureka是什么eureka作为分布式系统的注册中

2020-07-13 15:39:49 129

原创 Cloud Eureka概念、原理、心跳机制

Eureka是什么? Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。Eureka包含两个组件:Eureka Server和Eureka Client。 Eureka Server提供服务注册服务,各个节点启动后,会在Eu...

2020-07-13 14:48:31 2192

原创 StringBuilder和StringBuffer的区别(检查多线程环境下会触发的问题和异常)

StringBuilder和StringBuffer的区别在哪里? 当接触这个问题的时候,我们可能第一反应就是,StringBuilder是线程不安全的,StringBuffer是线程安全的为什么StringBuilder是线程不安全,StringBuffer是线程安全? 针对这个问题,大部分的人可能就无言以对了,我们只知道StringBuilder是线程不安全的,StringBuffer是线程安全的,却不知道为什么,所谓知其然,而不知其所...

2020-07-13 11:23:44 673

原创 浅谈设计模式-状态模式

Intent允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它所属的类。Class DiagramImplementation糖果销售机有多种状态,每种状态下销售机有不同的行为,状态可以发生转移,使得销售机的行为也发生改变。public interface State { /** * 投入 25 分钱 */ void insertQuarter(); /** * 退回 25 分钱 */ .

2020-07-07 19:17:52 80

原创 浅谈设计模式-策略模式

Intent定义一系列算法,封装每个算法,并使它们可以互换。策略模式可以让算法独立于使用它的客户端。Class DiagramStrategy 接口定义了一个算法族,它们都实现了 behavior() 方法。 Context 是使用到该算法族的类,其中的 doSomething() 方法会调用 behavior(),setStrategy(Strategy) 方法可以动态地改变 strategy 对象,也就是说能动态地改变 Context 所使用的算法。与状态模式的比较 ..

2020-07-07 17:03:06 81

原创 浅谈设计模式-单例模式

Intent 确保一个类只有一个实例,并提供该实例的全局访问点。Class Diagram 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。ImplementationⅠ 懒汉式-线程不安全 以下实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就...

2020-07-07 14:35:43 85

原创 浅谈设计模式-工厂模式

简单工厂Intent 在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。Class Diagram 简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。 这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。客户类往往有多个,如果不使用简单工厂,那么所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,例如增加子类,那...

2020-07-07 14:22:00 85

postgresql-42.3.0.jar

postgresql-42.3.0.jar

2022-05-19

visualvm插件集合.rar

visualvmGc和BTrac相关的依赖npm

2021-12-30

微信web开发者工具.rar

微信web开发者工具.rar

2019-11-27

Mysql可视化工具.rar

Mysql可视化工具.rar

2019-08-30

apache-tomcat-8.5.45-windows-x64.zip

apache-tomcat-8.5.45-windows-x64.zip

2019-08-27

robo3t-1.3.1-windows-x86_64-7419c406.rar

windows连接mongodb的可视化工具robo3t

2019-08-15

安装Python和Pychrarm步骤.docx

安装Python和Pychrarm步骤.docx

2019-08-13

hadoop+hive环境安装包.rar

hadoop+hive环境安装包.rar

2019-08-12

MySql数据库.rar

MySql数据库.rar,mysql安装

2019-08-06

反编译.rar

eclipse安装反编译工具的插件

2019-07-25

RabbitMQ安装.rar

RabbitMQ安装.rar配套在window64下的安装文件包,还包括了otp_win64_22.0。

2019-07-25

springboot利用拦截器打印各个接口的响应时间.rar

springboot利用拦截器打印各个接口的响应时间,快速统计各接口执行速度,方便接口优化。springboot利用拦截器打印各个接口的响应时间,快速统计各接口执行速度,方便接口优化。springboot利用拦截器打印各个接口的响应时间,快速统计各接口执行速度,方便接口优化。

2019-07-25

Navicat Premium.rar

Navicat Premium是一款可连接MYSQL,ORACLE,SQL SQL SERVEN的使用工具。Navicat Premium是一款可连接MYSQL,ORACLE,SQL SQL SERVEN的使用工具。Navicat Premium是一款可连接MYSQL,ORACLE,SQL SQL SERVEN的使用工具。Navicat Premium是一款可连接MYSQL,ORACLE,SQL SQL SERVEN的使用工具。

2019-07-25

Fiddler Web Debugger.rar

好用的捉包工具Fiddle

2019-07-24

redis-desktop-manager

在window平台下对redis缓存支持操作的.exe执行文件。新手学习redis的必备工具

2019-03-12

Apache httpd-2.2.25-win32-x86-no_ssl.msi

Apache配置反向代理,负责均衡,SSL必备中间件。It开发人员必知必会的东西,压缩包中包含安装包,教你部署以及认识负载均衡以及反向代理的doc文档。

2019-03-12

微信登录实例

微信登录,需要使用nginx反向代理!新手注意,新手注意

2017-10-06

Spring Boot示例

适用于spring boot新手,不错的示例!可以提升很多............................

2017-10-05

Maven多模块搭建SSM框架实例,注:在JDK1.8的环境下搭建的

Maven多模块搭建SSM框架实例--加深对Maven的理解,有助于技术的提升!

2017-10-05

空空如也

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

TA关注的人

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