自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微服务架构与单体架构的区别

微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。SOA架构强调的是异构系统之间的通信和解耦合,而微服务架构强调的是系统按业务边界做细粒度的拆分和部署。

2022-10-23 11:47:11 1334

原创 spring篇:IOC容器加载过程源码探究(三)

承接上篇IOC容器加载过程源码探究(二)继续分析refresh()方法:postProcessBeanFactory(beanFactory)方法这个方法是个空方法:留给子类去实现的,说到这个方法,插曲:这个接口BeanFactoryPostProcessor 中也有postProcessBeanFactory方法,咱们可以实现BeanFactoryPostProcessor接口中的这个postProcessBeanFactory方法,以后在分析扩展点时会重点讲。invokeBeanFactoryP

2022-06-12 15:29:04 162

原创 Zookeeper特性与节点数据类型详解

目标1.什么是Zookeeper2.Zookeeper核心概念3.Zookeeper ACLs权限控制在了解Zookeeper之前,需要对分布式相关知识有一定了解,什么是分布式系统呢?通常情况下,单个物理节点很容易达到性能,计算或者容量的瓶颈,所以这个时候就需要多个物理节点来共同完成某项任务,一个分布式系统的本质是分布在不同网络或计算操机上的程序组件,彼此通过信息传递来协同工作的系统,而Zookeeper正是一个分布式应用协调...

2022-06-05 14:00:51 230

原创 RabbitMQ与springboot整合

RabbitMQ与springboot整合生产者1.创建生产者SpringBoot工程2.引入RabbitMQ相关依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>编写yml配置# 配置RabbitMQ的基本信

2021-01-05 16:02:42 134

原创 RabbitMQ与spring整合

Spring整合rabbitMQ步骤:生产者①创建生产者工程②添加依赖③配置整合④编写代码发送消息消费者①创建消费者工程②添加依赖③配置整合④编写消息监听机器代码示例生产者1.创建生产者工程(spring-rabbitmq-producer)2.引入相关依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-co

2021-01-04 16:47:39 223

原创 RabbitMQ工作模式

工作模式上期已经介绍了简单模式和工作队列模式,本期接着上期继续。发布订阅模式P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给X(交换机)C:消费者,消息的接收者,会一直等待消息到来Queue:消息队列,接收消息、缓存消息E:交换机(Exchange)。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。Exchange有常见以下3种类型:Fanout:广播,将消息交给所

2021-01-04 16:37:33 181

原创 RabbitMQ入门篇

MQ基本概念Message Queue(消息队列),是在消息传输过程中保存消息的容器。多用于分布式系统之间进行通信。MQ的优势1.应用解耦系统耦合性越高,容错率就越低,可维护性就越低2.异步提速提升用户体验和系统吞吐量(单位时间内处理请求的数目)3.削峰填谷提高系统稳定性MQ的劣势1.系统的可用性降低系统引入的外部依赖越多,系统的稳定性越差。MQ一旦宕机,就会对业务造成影响,如何保证MQ的高可用?2.系统的复杂度提高MQ的加入大大增加了系统的复杂度,以前是系统的同步远程调用,

2020-12-28 15:58:16 122

原创 ArrayList和LinkedList的区别、优缺点以及应用场景详解(一)

ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用。下面我们通过源码和数据结构来说明一下ArrayList和LinkedList的区别、优缺点以及应用场景。首先,我们模拟一下接口List:/***线性表@author*/public interface List {//返回线性表的大小,及数据元素的个数int size();...

2020-11-19 14:46:03 230

原创 spring篇:IOC容器加载过程源码探究(二)

上节文章说到实例化AnnotatedBeanDefinitionReader完毕,本节继续上节文章,

2020-10-29 22:45:36 153

原创 spring篇:IOC容器加载过程源码探究(一)

上篇文章是从宏观的角度分析spring IOC的加载过程,通过上篇文章,我们对spring IOC的加载过程有了个整体的认识。本节主要从源码的层面去分析我们的springIOC加载过程。springIOC加载过程1.实例化容器AnnotationConfigApplicationContext:AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MainTest.class);An

2020-10-26 22:45:12 190

原创 Spring篇:IOC容器的加载过程

在上篇博文中我们已经对spring有了初步了解,本篇文章主要讲IOC容器的加载过程。

2020-10-06 21:31:32 1377

原创 spring篇:初识spring

1.Spring体系架构(基于4.x)

2020-10-06 18:41:46 146

转载 Mybatis高性能批量插入方法

当使用Mybatis大量插入时可以利用MySQL语句的特性使原来多次请求插入的语句变成一次请求,以此提高插入效率。一般的插入方式 //1000条数据,一条一条的插入 @Test public void testInsert() { SqlSession sqlSession = sqlSessionFactory.openSession(true); UserMapper userMapper = sqlSession.getMapper(UserMapp

2020-08-31 12:00:38 386

转载 java.security.InvalidKeyException: Illegal key size解决方案

AES加密报错: Illegal key size解决方案错误信息:java.security.InvalidKeyException: Illegal key size原因:因为美国法律限制,JAVA默认支持AES 128 Bit 的key, 如果你计划使用 192 Bit 或者 256 Bit key, java complier 会抛出 Illegal key size Exception解决方案有两种:设置设置key的长度为16个字母和数字的字符串(128 Bit/8=16字符)就不报错

2020-08-31 11:12:21 287

原创 MVCC多版本并发控制机制详解

MVCC多版本并发控制机制上节我们说到了事务的ACID特性和四种隔离级别,其中在可重复读级别下是如何保证事务较高的隔离性的?对,就是靠MVCC(Multi-Version Concurrency Control)机制来保证的。Mysql在读已提交和可重复读隔离级别下都实现了MVCC机制。好,下面我们来好好说道说道这个MVCC。undo日志版本链与read view机制话说不是要好好说道说道MVCC吗?怎么扯到了这个undo和read view了呢?undo日志版本链是指一行数据被多个事务依次修改过后,

2020-08-30 22:45:55 390

原创 mysql事务隔离级别与锁机制

事务及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。一致性(Consistent) :在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规 则都必须应用于事务的修改,以保持数据的完整性。隔离性(Isolation) :数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响的“独立”环境执行。这意味着事务处理过程中的

2020-08-21 15:07:24 104

原创 MySql索引实践(一)

索引的基本原理索引的实质就是一种排好序的数据结构。其原理很简单,就是将无序的数据变成有序的查询。1.把创建了索引的列的内容进行排序。2.对排序结果生成倒排表。3.在倒排表内容上拼上数据地址链。4.查询时,先拿到倒排表内容,再取出数据地址链,最后拿到具体的数据。...

2020-08-12 12:03:20 206

原创 springmvc传递json数据报415错误

以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,用JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: “json”,contentType:“application/json” 这样就可以将一个对象或者List传到Java端,而jav

2020-08-12 11:05:48 284

原创 Mysql存储引擎(Innodb存储引擎、MyISAM存储引擎)

存储引擎Storege engine:MySql中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。常见的存储引擎:Innodb引擎:Innodb提供了对数据库ACID事务的支持,并且提供了行级锁和外键的约束。其设计的目标就是处理大数据容量的数据库系统。MyISAM引擎:不支持事务、行级锁、外键。MEMORY引擎:所有数据都在内存中,处理数据极快,但是安全性不高。Innodb索引与MyISAM索引的区别:Innodb索引是聚簇索引;MyISAM索引是非聚簇索引。Innodb的主键索引

2020-08-01 22:15:19 100

原创 深入理解MySql索引底层数据结构

什么是索引?索引实质上就是一种帮助我们快速查询数据的排好序的数据结构。

2020-07-28 22:40:55 106

原创 Tomcat打破双亲委派机制

上篇文章主要分析了JVM类加载机制,本篇文章承接上篇文章,主要是分析tomcat打破双亲委派机制,建议在看本文之前,先去看看上篇,地址:

2020-07-18 18:19:02 2500

原创 从JDK源码级别深度解析JVM类加载机制

1.运行main方法启动程序时,需要通过类加载器将这个类加载到JVM内存中。加载过程加载:在硬盘中查找并通过IO读入字节码文件,只加载使用到的类。验证:是否符合JVM的要求规则;准备:为静态变量分配内存,并且赋值为默认值;解析:引用符号替换为直接符号,简单的说就是静态方法替换为指向数据所存内存的指针;初始化:为静态变量初始化指定的值,执行静态代码块。public class Test { public static final int intNum = 1...

2020-07-10 11:16:06 861

原创 SQL中的替换函数replace()使用

1.查询替换:select replace(name,’’,’’) from user

2020-05-16 13:33:04 2563

转载 Mysql索引原理优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问...

2020-05-05 14:49:38 85

转载 java. Lang. IndexOutofBoundsException: Index: 0,Size: 0

java. Lang. IndexOutofBoundsException: Index: 0,Size: 0at java .util. ArrayL ist . RangeCheck (ArrayL ist. java :547)t java .util. ArrayL ist . get (ArrayL ist . java :322)at Com . cshg. basicframe...

2020-05-05 14:02:46 933

原创 ftp上传图片,在windows上没有问题,在linux上就上传失败

问题:boolean savesfzzp = FtpUtils.upload(systemType,ftpHost, Integer.valueOf(ftpPort), ftpUser, ftpPwd, “sfzzp/”,ac01Bean.getAac001(), new ByteArrayInputStream(Base64.decodeBase64(ac01Bean.getBah312()))...

2020-05-05 13:21:16 624

转载 常见的Java代码优化总结

1.对象的重用例如:String 、StringBuffer、StringBuilder出现字符串连接时,应该用stringBuffer(线程安全)/StringBuilder(线程不安全).2.尽可能使用局部变量调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随着方法的运行结束,这些内容...

2020-03-20 21:48:09 110

空空如也

空空如也

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

TA关注的人

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