自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 JVM之垃圾回收和调优思路

文章目录GC的基础知识1.什么是垃圾2.如何定位(找到)垃圾3.常见的垃圾回收算法4.JVM内存分代模型(用于分代垃圾回收算法)5.常见的垃圾回收器常见垃圾回收器组合参数设定:(1.8)JVM调优第一步,了解JVM常用命令行参数PS GC日志详解调优前的基础概念:什么是调优?调优,从规划开始优化环境解决JVM运行中的问题一个案例理解常用工具jconsole远程连接jvisualvm远程连接jprofiler (收费)arthas在线排查工具GC算法的基础概念CMSCMS的问题CMS日志分析G1G1日志详解案

2020-11-03 16:16:30 1028 1

原创 JVM运行时数据区和指令集

Runtime Data Area and Instruction Setjvms 2.4 2.5指令集分类基于寄存器的指令集基于栈的指令集Hotspot中的Local Variable Table = JVM中的寄存器Runtime Data AreaPC 程序计数器存放指令位置虚拟机的运行,类似于这样的循环:while( not end ) {​ 取PC中的位置,找到对应位置的指令;​ 执行该指令;​ PC ++;}JVM StackFrame - 每个方法对应

2020-11-03 16:08:33 263

原创 JVM之关于对象大小的实验

使用JavaAgent测试Object的大小对象大小(64位机)观察虚拟机配置java -XX:+PrintCommandLineFlags -version普通对象对象头:markword 8ClassPointer指针:-XX:+UseCompressedClassPointers 为4字节 不开启为8字节实例数据引用类型:-XX:+UseCompressedOops 为4字节 不开启为8字节Oops Ordinary Object PointersPadding对齐,8的

2020-11-03 16:00:21 204

原创 硬件层数据一致性、关键字synchronized和volatile的底层实现细节

文章目录硬件层数据一致性乱序问题如何保证特定情况下不乱序硬件层数据一致性协议很多intel 用MESIhttps://www.cnblogs.com/z00377750/p/9180644.html现代CPU的数据一致性实现 = 缓存锁(MESI …) + 总线锁intel cpu x86 用的是MESI缓存一致性协议modify exclusive shared invalid 缓存的四种状态,CPU之间会相互通知缓存的状态读取缓存以cache line为基本单位,目前64bytes位于

2020-11-03 15:43:47 979

原创 JVM之类的加载

加载过程Loading双亲委派,主要出于安全来考虑LazyLoading 五种情况–new getstatic putstatic invokestatic指令,访问final变量除外–java.lang.reflect对类进行反射调用时–初始化子类的时候,父类首先初始化–虚拟机启动时,被执行的主类必须初始化–动态语言支持java.lang.invoke.MethodHandle解析的结果为REF_getstatic REF_putstatic REF_invokesta..

2020-11-03 15:30:55 706

原创 JVM之字节码文件浅析

JVM1:JVM基础知识什么是JVM常见的JVM2:ClassFileFormatclass文件标识4个字节,cafebabe最小版本 最大版本常量池当前类父类访问限制修饰符接口数属性方法额外属性3:类编译-加载-初始化hashcode锁的信息(2位 四种组合)GC信息(年龄)如果是数组,数组的长度4:JMMnew Cat()pointer -> Cat.class寻找方法的信息5:对象1:句柄池 (指针池)间接指针,节省内存2:直接指针,访问速

2020-11-03 15:26:34 96

原创 mycat的安装及基本使用

文章目录1、mycat的安装1、环境准备2、mycat的安装3、配置mycat4、启动mycat5、登录验证2、读写分离1、一主一从(主从复制的原理之前讲解过了,需要的同学自行参阅文档)2、一主一从验证3、双主双从4、双主双从验证3、数据切分1、垂直切分2、水平切分3、总结4、mycat的配置文件讲解1、搞定schema.xml文件1、schema标签2、table标签3、childTable标签4、dataNode标签5、dataHost标签6、heartbeat标签2、搞定server.xml文件3、r

2020-11-03 10:34:39 187

原创 mycat的基本介绍及核心概念

文章目录1、前置知识1、分布式系统2、分布式数据库3、分布式数据库的实现原理4、OLTP和OLAP5、关系型数据库和NoSQL2、mycat的基本介绍1、mycat是什么2、mycat的原理3、应用场景4、为什么使用mycat5、数据库中间件对比3、mycat的核心概念1、逻辑库2、逻辑表3、分片表4、非分片表5、ER表6、全局表7、分片节点(dataNode)8、节点主机(dataHost)9、分片规则10、全局序列号11、多租户1、独立数据库2、共享数据库,隔离数据架构3、共享数据库,共享数据结构1、

2020-11-03 10:26:50 674

原创 mysql优化之覆盖索引

覆盖索引1、当发起一个被索引覆盖的查询时,在explain的extra列可以看到using index的信息,此时就使用了覆盖索引mysql> explain select store_id,film_id from inventory\G*************************** 1. row *************************** id: 1 select_type: SIMPLE table: inventory

2020-11-02 10:54:26 432

原创 mysql之分区表的底层原理

分区表的底层原理​ 分区表由多个相关的底层表实现,这个底层表也是由句柄对象标识,我们可以直接访问各个分区。存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表的索引知识在各个底层表上各自加上一个完全相同的索引。从存储引擎的角度来看,底层表和普通表没有任何不同,存储引擎也无须知道这是一个普通表还是一个分区表的一部分。​ 分区表的操作按照以下的操作逻辑进行:​ select查询​ 当查询一个分区表的时候,分区层先打开并锁住所有的底层表,优化器先判断是否可以

2020-11-02 10:52:11 316 2

原创 mysql之范围分区

范围分区​ 范围分区表的分区方式是:每个分区都包含行数据且分区的表达式在给定的范围内,分区的范围应该是连续的且不能重叠,可以使用values less than运算符来定义。​ 1、创建普通的表CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DA

2020-11-02 10:49:15 421

原创 mysql核心原理之主从复制

文章目录0、为什么需要主从复制?1、什么是mysql的主从复制?2、mysql复制原理原理:也就是说:注意:具体步骤:3、mysql主从形式(一)一主一从(二)主主复制(三)一主多从(四)多主一从(五)联级复制4、mysql主从同步延时分析0、为什么需要主从复制?1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。2、做数据的热备

2020-11-02 10:44:39 89

原创 mysql实践:主从复制安装配置

文章目录1、基础设置准备2、安装mysql数据库3、在两台数据库中分别创建数据库4、在主(node1)服务器进行如下配置:5、配置从服务器登录主服务器的账号授权6、从服务器的配置7、重启主服务器的mysqld服务8、重启从服务器并进行相关配置1、基础设置准备#操作系统:centos6.5#mysql版本:5.7#两台虚拟机:node1:192.168.85.111(主)node2:192.168.85.112(从)2、安装mysql数据库#详细安装和卸载的步骤参考对应的文档3、在两

2020-11-02 10:40:48 61

原创 mysql优化之执行计划详解

文章目录执行计划中包含的信息​ 在企业的应用场景中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。​ 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。​ 官网地址: https://dev.mysql.com/doc/refman/5.5/en/explain-output.html执行计划中包含的信息ColumnMeaningidThe S

2020-11-02 10:38:10 63

原创 mysql实验:事务测试

实验1、打开mysql的命令行,将自动提交事务给关闭--查看是否是自动提交 1表示开启,0表示关闭select @@autocommit;--设置关闭set autocommit = 0;2、数据准备--创建数据库create database tran;--切换数据库 两个窗口都执行use tran;--准备数据 create table psn(id int primary key,name varchar(10)) engine=innodb;--插入数据insert i

2020-11-02 10:29:30 300

原创 mysql核心知识点之读写分离

文章目录1、读写分离的介绍2、读写分离的配置1、硬件配置2、首先在master和slave上配置主从复制3、进行proxy的相关配置4、进行连接1、读写分离的介绍​ MySQL读写分离基本原理是让master数据库处理写操作,slave数据库处理读操作。master将写操作的变更同步到各个slave节点。​ MySQL读写分离能提高系统性能的原因在于:​ 1、物理服务器增加,机器处理能力提升。拿硬件换性能。​ 2、主从只负责各自的读和写,极大程度缓解X锁和S锁争用。​ 3、

2020-11-02 10:26:45 70

原创 mysql核心知识点之锁机制

文章目录1、MySQL锁的基本介绍2、MyISAM表锁注意:总结1、MySQL锁的基本介绍​ 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。​ 相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的

2020-11-02 10:23:49 83

原创 MYSQL5.7安装详细步骤

文章目录0、更换yum源1、查看系统中是否自带安装mysql2、删除系统自带的mysql及其依赖(防止冲突)3、安装wget命令4、给CentOS添加rpm源,并且选择较新的源5、安装下载好的rpm文件6、安装成功之后,会在/etc/yum.repos.d/文件夹下增加两个文件7、修改mysql-community.repo文件8、使用yum安装mysql9、启动mysql服务并设置开机启动10、获取mysql的临时密码11、使用临时密码登录12、修改密码13、修改远程访问权限14、设置字符集为utf-8

2020-11-02 10:19:38 140

原创 MySQL之其他

文章目录视图变量存储过程和函数存储过程函数流程控制结构分支结构循环结构视图一、含义mysql5.1版本出现的新特性,本身是一个虚拟表,它的数据来自于表,通过执行时动态生成。好处:1、简化sql语句2、提高了sql的重用性3、保护基表的数据,提高了安全性二、创建create view 视图名as查询语句;三、修改方式一:create or replace view 视图名as查询语句;方式二:alter view 视图名as查询语句四、删除drop view 视图1

2020-11-01 19:04:31 78

原创 MySQL之事务操作

一、含义事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行二、特点(ACID)A 原子性:一个事务是不可再分割的整体,要么都执行要么都不执行C 一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态I 隔离性:一个事务不受其他事务的干扰,多个事务互相隔离的D 持久性:一个事务一旦提交了,则永久的持久化到本地三、事务的使用步骤 ★了解:隐式(自动)事务:没有明显的开启和结束,本身就是一条事务可以自动提交,比如insert、update、delete显

2020-11-01 18:53:26 77

原创 MySQL之库、表操作

文章目录库的管理表的管理数据类型常见的约束库的管理一、创建库create database 【if not exists】 库名【 character set 字符集名】;二、修改库alter database 库名 character set 字符集名;三、删除库drop database 【if exists】 库名;表的管理一、创建表 ★create table 【if not exists】 表名(字段名 字段类型 【约束】,字段名 字段类型 【约束】,。。。字段名 字段

2020-11-01 18:51:09 114

原创 MySQL基本操作之增删改

文章目录插入修改删除插入一、方式一语法:insert into 表名(字段名,…) values(值,…);特点:1、要求值的类型和字段的类型要一致或兼容2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致但必须保证值和字段一一对应3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值①字段和值都省略②字段写上,值使用null4、字段和值的个数必须一致5、字段名可以省略,默认所有列二、方式二语法:insert into 表名 set 字段=值,字段=值

2020-11-01 18:46:04 65

原创 MySQL基本操作之查询

文章目录基础查询条件查询排序查询常见函数分组查询连接查询子查询分页查询联合查询基础查询一、语法select 查询列表from 表名;二、特点1、查询列表可以是字段、常量、表达式、函数,也可以是多个2、查询结果是一个虚拟表三、示例1、查询单个字段select 字段名 from 表名;2、查询多个字段select 字段名,字段名 from 表名;3、查询所有字段select * from 表名4、查询常量select 常量值;注意:字符型和日期型的常量值必须用单引号引起来,数值

2020-11-01 18:40:20 291

原创 MySQL初步认识

文章目录数据库相关概念MySQL的介绍数据库相关概念一、数据库的好处1、可以持久化数据到本地2、结构化查询二、数据库的常见概念1、DB:数据库,存储数据的容器2、DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB3、SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言三、数据库存储数据的特点1、数据存放到表中,然后表再放到库中2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己3、表中有一个或多

2020-11-01 18:25:58 117

原创 springcloud之负载均衡

文章目录1.1 两种负载均衡客户端负载均衡服务端负载均衡1.2 概念1.3 Ribbon组成1.4 编码及测试1.4.1 利用Eureka手写负载均衡:1.4.2 ribbon负载均衡1.4.1 编码1.4.2 测试13.4.3 扩展1.5 @LoadBalanced原理源码源码总结1.6 自定义Ribbon配置Java代码定义属性定义1.7 Ribbon脱离Eureka1.8 饥饿加载1.9 自定义负载均衡策略1.10 小结1.1 两种负载均衡​ 当系统面临大量的用户访问,负载过高的时候,通常会增加

2020-10-31 23:08:46 1159

原创 服务间调用

文章目录1 REST ful2 调用2.1 直接用RestTemplate调用2.2 feign调用​ 微服务中,很多服务系统都在独立的进程中运行,通过各个服务系统之间的协作来实现一个大项目的所有业务功能。服务系统间 使用多种跨进程的方式进行通信协作,而RESTful风格的网络请求是最为常见的交互方式之一。http。​ 思考:如果让我们写服务调用如何写。硬编码。不好。ip域名写在代码中。目的:找到服务。根据服务名,找相应的ip。目的:这样ip切换或者随便变化,对调用方没有影响。Map&

2020-10-31 23:02:44 255

原创 springcould之微服务注册与发现

文章目录1.1 Eureka 单节点搭建1.2 整体介绍1.3 注册中心和微服务间的关系1.3.1 client功能1.3.2 server注册中心功能1.4 服务注册1.5 Eureka高可用1.6 Eureka 端点1.7 Eureka 原理1.7 Eureka Client源码1.8 Eureka Server源码1.10 自我保护计算1.11 多网卡选择1.12 Eureka 健康检查1.13 Eureka 配置1.14 Eureka监听事件1.15 Eureka缺陷1.16 总结1.1 Eure

2020-10-31 22:55:44 625

原创 ActiveMQ集群、负载均衡、消息回流

文章目录集群配置主备集群Shared File System Master Slavefailover 故障转移协议Transport Options负载均衡静态网络配置可配置属性URI的几个属性NetworkConnector Properties动态网络配置消息回流消息副本集群配置官方文档http://activemq.apache.org/clustering主备集群http://activemq.apache.org/masterslave.htmlMaster Slave Ty

2020-10-30 11:07:50 322

原创 ActiveMQ常用优化

文章目录Request/Response模型实现QueueRequestorTemporaryQueueJMSCorrelationID 消息属性调优总结Topic加强 可追溯消息消费者设置Summary of Available Recovery Policies保留固定字节的消息保留固定数量的消息保留时间保留最后一条慢速消费SlowConsumerStrategyPendingMessageLimitStrategy:消息限制策略(面向慢消费者)消息堆积内存上涨磁盘满开启事务prefetchSize影响

2020-10-30 11:02:29 418

原创 ActiveMQ高级操作

文章目录高级使用queue browserJMSCorrelationID**JMSReplyTo**QueueRequestor同步消息生产环境中影响性能的几个因素Out of memory持久化和非持久化消息异步发送批量确认消费缓冲与消息积压prefetchSize可以通过3中方式设置prefetchSize消息到底是推还是拉?EIP Enterprise Integration Patterns.高级使用queue browser可以查看队列中的消息而不消费,没有订阅的功能JMSCorrela

2020-10-30 10:57:09 143

原创 ActiveMQ杂项

文章目录Linux下安装NIO配置OpenWire 可用配置选项Transport 可用配置选项ActiveMQ服务监控 Hawtio官方网站部署独立jar包的形式运行嵌入ActiveMQJMS消息结构(Message)Header自动头信息手动头信息下一代 ActiveMQ 6?Artemis高级使用JMSCorrelationID**JMSReplyTo**面试题ActiveMQ如何防止消息丢失?会不会丢消息?如何防止重复消费?如何保证消费顺序?Linux下安装下载解压在init.d下建立软连接

2020-10-30 10:55:16 204

原创 ActiveMQ配合springboot使用

文章目录整合SpringBoot配置文件POMymlConfig类收发整合SpringBoot配置文件POM<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

2020-10-30 10:44:33 86

原创 ActiveMQ常用api

文章目录常用API事务Purge签收模式Session.AUTO_ACKNOWLEDGESession.CLIENT_ACKNOWLEDGESession.DUPS_OK_ACKNOWLEDGE持久化优先级消息超时/过期死信修改死信队列名称让非持久化的消息也进入死信队列过期消息不进死信队列独占消费者消息类型object发送端接受端bytesMessage发送端接受端写入文件MapMessage发送端接收端消息发送原理同步与异步消息堆积延迟消息投递延迟发送带间隔的重复发送Cron表达式定时发送监听器消息过滤消

2020-10-30 10:41:26 509

原创 MQ和ActiveMQ浅析

文章目录什么是JMS MQ消息中间件应用场景**异步通信**缓冲解耦冗余扩展性可恢复性顺序保证**过载保护****数据流处理**常用消息队列(ActiveMQ、RabbitMQ、RocketMQ、Kafka)比较JMS中的一些角色**Broker**providerConsumerp2ppub/subPTP 和 PUB/SUB 简单对QueueTopicConnectionFactoryConnectionDestinationSessionJMS的消息格式JMS消息由以下三部分组成的:TextMessag

2020-10-30 10:34:46 903 1

原创 springboot自动配置源码浅析

文章目录1、启动器2、主程序1、启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>​ springboot-boot-starter:就是springboot的场景启动器。springboot将所有的功能场景都抽取出来,

2020-10-30 09:43:44 60

原创 springboot之数据源配置

文章目录1、JDBC2、自定义数据源DruidDataSource3、springboot配置多数据源并动态切换4、springboot整合mybatis​ Spring Framework 为 SQL 数据库提供了广泛的支持。从直接使用 JdbcTemplate 进行 JDBC 访问到完全的对象关系映射(object relational mapping)技术,比如 Hibernate。Spring Data 提供了更多级别的功能,直接从接口创建的 Repository 实现,并使用了约定从方法名生成

2020-10-29 13:44:48 585

原创 springboot之thymeleaf模板引擎的基本使用

文章目录1、thymeleaf的介绍2、thymeleaf使用模板3、thymeleaf的表达式语法4、thymeleaf实例演示1、th的常用属性值2、标准表达式语法5、国际化的配置​ 在早期开发的时候,我们完成的都是静态页面也就是html页面,随着时间轴的发展,慢慢的引入了jsp页面,当在后端服务查询到数据之后可以转发到jsp页面,可以轻松的使用jsp页面来实现数据的显示及交互,jsp有非常强大的功能,但是,在使用springboot的时候,整个项目是以jar包的方式运行而不是war包,而且还嵌入了

2020-10-29 13:28:27 265

原创 springboot两种配置文件类型浅析

文章目录1、Properties配置详解2、YAML3、@ConfigurationProperties 与 @Value 对比​ 在之前的项目开发中,我们可以使用xml,properties进行相关的配置,这种配置方式比较简单,但是在应对复杂的商业需求下,多环境和编程化的配置无法得到满足,因此springboot为我们提供了YAML的配置方式丰富功能和简化开发。1、Properties配置详解​ 通常情况下,我们可以使用properties文件进行相关的配置。​ (1)在resources目

2020-10-29 13:24:37 544

原创 springboot在web开发中的基本操作

文章目录1、springboot整合servlet2、静态资源的配置3、springmvc的扩展​ springboot在开发web项目的时候具备天然的优势,现在的很多企业级开发都是依托于springboot的。​ 使用springboot的步骤:​ 1、创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好​ 2、手动在配置文件中配置部分配置项目就可以运行起来了​ 3、专注编写业务代码,不需要考虑以前那样一大堆的配置了。1、sp

2020-10-29 13:22:53 193

原创 idea插件之热部署JRebel

idea 热部署插件JRebel​ 当开始开发web项目的时候,需要频繁的修改web页面,此时如果频繁的重启变得很麻烦,因此,可以在idea中集成JRebel插件,改动代码之后不需要重新启动应用程序。https://blog.csdn.net/weixin_42831477/article/details/822294361、安装JRebel​ (1)在IDEA中一次点击 File->Settings->Plugins->Brows Repositories​ (2)在搜索

2020-10-29 13:16:27 130

空空如也

空空如也

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

TA关注的人

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