自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逆流而上的龟

终身学习,不断进步,不断提高

  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringCloudAlibaba系列之Seata实战

一文搞懂如何部署seata服务端,并学会如何在实际项目当中集成seata分布式事务解决方案。

2024-03-17 16:00:19 632 1

原创 SpringCloudAlibaba系列之Nacos实战

如何使用Nacos作为集中式配置中心和统一的服务注册发现中心。

2024-01-24 21:10:19 895

原创 一文彻底搞懂分布式事务

一文搞懂分布式事务问题,了解并掌握开源分布式事务解决方案Seata。

2024-01-21 21:35:32 968

原创 关于微服务的思考

深入理解什么是微服务,并弄清楚如何落地微服务,理论与实践并行。

2023-11-26 21:45:44 1212

原创 SpringCloudAlibaba系列之Nacos服务注册与发现

深入理解Nacos服务注册与发现实现原理,一文搞懂微服务注册中心核心原理及实现。

2023-11-19 15:48:14 402

原创 SpringCloudAlibaba系列之Nacos配置管理

深入理解Nacos配置管理,一文搞懂微服务配置中心核心原理及实现。

2023-11-08 22:10:13 616

原创 重新认识Java中的死锁问题

快速了解java死锁问题,学会如何检测死锁,并知道如何避免和解决。

2023-09-23 14:13:37 232

原创 关于习惯的思考

像抽烟这样的坏习惯,我们能不能丢掉?像跑步这样的好习惯,我们能不能养成?答案是肯定的,能!就看我们自己想不想,有多想。

2023-09-10 16:38:01 54

原创 Mybatis Plus快速实现关联查询并支持分页

1.相关基础类和工具类的准备import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.io.Serializable;import java.util.List;/** * 分页结果数据接收对象 *...

2020-04-05 21:37:22 2451 1

原创 Redis过期策略&内存淘汰机制

大家都知道,redis是基于内存来存储数据的,但是内存资源是有限的,我们需要时刻考虑redis的内存容量。在实际工作过程当中,我们需要清楚redis的过期策略和内存淘汰机制。一、redis的过期策略定期删除:定期(100ms)从所有key中随机选择一些进行删除;惰性删除:在我们获取key的时候,先检查key的过期时间,如果过期,便进行闪出去;通过上面这两种方式,依旧会存在一些key...

2019-06-12 10:16:51 705

原创 代码自动生成器增强版

在项目中,实体类等生成,我们基本上不用手动去写,全部自动生成。详细内容请参考GitHub项目:https://github.com/williamjava/code_generator

2019-06-06 17:24:46 251

原创 Linux服务器上如何正确复制一个现有的Tomcat

在我们实际工作过程当中,有的时候会遇到如下这种情况:需要在服务器(Linux)上部属多个Tomcat,那么在已经存在一个Tomcat的情况下,我们如果快速并且正确地部属另一个呢?下面我们一起来看看具体的步骤。1.复制一个已经存在的tomcat目录cp -rf 已存在的tomcat目录名称 新的tomcat目录名称(如:cp -rf tomcat-admin tomcat-test)...

2019-06-04 15:29:42 4710

原创 Spring MVC整合MyBatis和MySQL

前段时间自己发布了一篇关于SpringMVC结合Redis的小实例,今天呢,想和大家分享一下自己最近使用Spring MVC结合MyBatis+MySQL的小实例,在这里先贴出一下自己在GitHub上共享的代码Demo,下面我会贴出一些核心的内容以及相关总结。GitHub上的Demo地址如下:https://github.com/williamjava/demo1、准备工作...

2019-06-04 15:14:09 344

原创 Spring MVC集成Redis

最近空闲时间,自己打算复习复习Spring MVC,于是使用Maven+Spring MVC+Redis搭建了一个项目,全当是做一个知识回顾。在这个过程当中,也遇到了各种各样的问题,在这里和大家一起分享一下,如有遇到类似问题还没有解决的,希望能帮到大家。下面我将一步步贴出源代码以及总结遇到的一个个问题。1、pom.xml<project xmlns="http://mave...

2019-06-04 15:09:03 2760

原创 ES的Head插件和集群环境搭建

一、Elastic Search的Head插件 在Elastic Search初探第一篇中我们说到了Kibana,通过它我们可以以UI的方式来操作ES、监控ES等。这里分享ES好用的另外一个插件——Head。具体使用步骤如下:第一步:下载插件,地址为:https://github.com/mobz/elasticsearch-head/archive/master.zip;...

2019-06-04 14:56:41 392

原创 ElasticSerach初探 - 认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES

一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTful API来隐藏Lucene的复杂性。全文搜索,分析系统,分布式数据库;elasticsearch的革命性就在于将这些单一的有用的技术整合成一个一体化的”实时的应用”。二、ElasticSearch环境搭建1.安装ElasticSearch从官网下载,https://www.elas...

2019-06-04 14:49:55 3269

原创 从前端到后端的性能优化整体概览

我们以一个实际的场景来整体认识一下从前端到后端的性能优化。场景:一个Web前端的请求发出之后,需要等待比较长的时间,才能得到完整的响应。针对这种情况,我们需要怎么考虑呢?三个方面:Web前端层面,应用服务器层面和存储层面。下面我们来简单说说。一、Web前端性能优化1.优化浏览器的访问,主要包括:减少HTTP的请求数,像各种css、js和图片能合并就合并;使用浏览器缓存;压缩页...

2019-06-04 14:42:19 732

原创 HashMap的put方法原理

本篇内容基于JDK 1.8一、HashMap的put方法流程如下图二、具体的源码分析/** * Associates the specified value with the specified key in this map. * If the map previously contained a mapping for the key, the old * value ...

2019-05-31 10:30:09 12250 2

原创 Spring Cloud Feign相关原理分析

1.认识Spring Cloud Feign在使用Spring Cloud构建的微服务架构中,Feign用来提供声明式的服务客户端定义方式。Feign是一个伪客户端(不做任何的请求处理),它通过处理注解生成request,以此来简化HTTP API的开发。2.定义的服务接口是如何注册到Spring容器的?这里我们需要关注两个注解:@FeignClient:使用在我们定义的服务接口上,表示...

2019-05-24 12:31:49 1775

原创 SpringBoot快速集成RabbitMQ

一、windows下如何安装RabbitMQ1.安装RabbitMQ需要先安装Erlang语言开发包,百度网盘地址:http://pan.baidu.com/s/1jH8S2u6。直接下载地址:http://erlang.org/download/otp_win64_18.3.exe。安装完成后需要配置环境变量:新建系统变量:变量名 ERLANG_HOME 变量值 D:\softInsta...

2019-05-21 13:43:55 976

原创 浅谈Spring事务

1.事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:a.获取连接 Connection con = DriverManager.getConnection();b.开启事务con.setAutoCommit(true/false);c.执行CRUD操作;...

2019-05-05 11:41:49 236

原创 浅谈MySQL数据库的事务

1.事务的4大基本要素(ACID)原子性(Atomicity):事务是一个不可分割的工作单位,其中的操作要么都发生,要么都不发生。一致性(Consistency):事务前后数据的完整性必须保持一致。隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。持久性(Durability):事务一旦提交,它对数据库中数据的改变是永久性的。2.事务的...

2019-05-05 11:39:04 207

原创 过滤器和拦截器

整体认识:过滤器和拦截器是我们常说的AOP思想的两个具体实现,接下来我们一起看看它们之间的区别和具体的使用。1.过滤器和拦截器的区别使用范围:过滤器是Servlet规范规定的,仅用于Web程序中;拦截器是属于Spring容器内的,既可用于Web程序中,也可用于非Web程序中;使用资源:由于拦截器是属于Spring容器内的,也是属于Spring的一个组件,它就可以使用Spring容器中的所有...

2019-04-28 17:19:50 563

原创 线程的start方法和run方法

在我们分析线程的start方法run方法之前,我们先来看看线程的状态变化:接下来我们来具体看看线程的start方法和run方法的区别。这里我们通过一个Demo来看看。public class MyThread extends Thread { @Override public void run() { System.out.println(Thread...

2019-04-26 15:38:40 1281 1

原创 wait方法和notify方法的区别

1.wait()和sleep()的区别wait()是Object类的方法,sleep()是Thread类的方法;调用Object对象的wait方法,线程会放弃对象锁,进入等待此对象的等待锁定池;只有针对对象调用notify()方法后当前线程才进入对象锁定池准备获取对象锁进入运行状态,如果没有notify,对应的线程会挂起;sleep()方法会让程序暂停执行指定的时间,让出CPU给其他线程,但...

2019-04-26 15:16:30 2234

原创 创建线程的三种方式

1.继承Thread类public class ThreadWait extends Thread { @Override public void run() { //... }}2.实现Runnable接口public class ThreadSleep implements Runnable { @Override public v...

2019-04-26 15:07:36 141

原创 Redis的缓存穿透、缓存雪崩和缓存击透

1.缓存穿透什么是缓存穿透?查询一个数据库中一定不存在的数据。在一些查询场景中,我们会选择使用缓存来存储查询结果,提高查询的效率。比如电商系统中的商品,第一次从数据库中查询商品信息,然后放入缓存;第二次将会直接从缓存中获取。如果恶意攻击,进行大量不存在的商品查询,如果我们没有特殊处理,就会给数据库造成巨大的压力,严重的情况就会造成数据库崩溃(这就是我们要说的缓存穿透)。解决方案:针对不...

2019-04-26 11:03:44 455

原创 深入解析SpringBoot启动原理

1.启动类中的SpringApplication.run方法会创建一个SpringApplication的实例,并做一些初始化工作@SpringBootApplication@Slf4jpublic class HuotuUserServiceApplication { public static void main(String[] args) { Applicat...

2019-04-25 18:05:20 823 1

原创 Nginx配置负载均衡

1.配置文件nginx.conf增加如下内容upstream keguan-api-servers { ip_hash; server 服务器1IP:端口; server 服务器2IP:端口;}2.服务1对应的Nginx配置server{ listen 80; server_name 服务1域名; #charset koi8-r...

2019-04-18 17:51:46 127

原创 Git常用命令

1. 新建分支dev,此时只存在于本地git branch dev2. 切换到dev分支git checkout dev3. 查看本地的所有分支git branch4. 把本地的分支dev推到远程(此时,远程才会有dev分支)git push origin dev5. 查看远程分支git branch -r6. 拉取远程分支的最新状态git fetch7. 查看...

2019-04-18 11:02:58 97

原创 Git标准流程分支

2019-04-18 10:54:40 231

原创 SpringCloud与Consul

一、环境准备(Windows平台)1.https://www.consul.io/downloads.html下载对应平台的consul2.启动consul服务端./consul.exe agent -server -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect=1 -data-dir=/e/data/application/consu...

2019-04-17 16:54:02 233

原创 SpringBoot实践源码

https://github.com/williamjava/spring_boot_practise

2019-04-17 10:08:53 185

原创 SpringCloud实践源代码

https://github.com/williamjava/spring_cloud_practise

2019-04-16 11:11:37 349

原创 微服务监控

微服务监控用来监控所有基于Spring Boot实现的应用。涵盖的功能主要包括如下几个方面:每一个应用的状态信息;日志信息;应用环境参数等。另外,在每一个应用状态发生变化的情况下,会邮件通知配置的开发者(需要配置)。其核心原理是读取Eureka服务注册与发现中心的所有服务信息。1.完整的maven配置<?xml version="1.0" encoding="UTF-8"?&gt...

2019-04-12 16:43:39 1116

原创 微服务链路跟踪

一、认识微服务跟踪的基础设施1.zipkintwitter开源的分布式跟踪系统,它的主要功能是收集系统的时序数据,从而追踪微服务架构的系统延时等问题。同时,它还提供了一个非常友好的界面,来帮助分析追踪数据。另外,它还有助于分析微服务之间的依赖关系。2.Spring Cloud Sleuth为Spring Cloud提供了分布式跟踪的解决方案。3.微服务跟踪的目的服务之间通过网络进行...

2019-04-12 16:31:49 458

原创 yaml和properties文件的区别

浅谈springboot架构中yaml文件和properties文件的区别,这里以jdbc连接配置为例。1.yaml语法风格的配置spring:datasource:driverclassname: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/db_nameusername: rootpassword: r...

2019-04-11 19:19:51 4126

原创 SpringBoot结合poi导出excel

1.maven依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version></dependency><dependency...

2019-04-11 18:13:20 251

原创 SpringBoot自动配置原理分析

继之前的文章SpringBoot核心注解之后,今天我们一起来分析一下SpringBoot的自动配置实现原理,表面上看起来深不可测,当我们分析过源码之后,会觉得它本身并没有那么复杂。通过分析springboot源码,我们发现在@EnableAutoConfiguration注解中,@Import(Spring 提供的一个注解,可以导入配置类或者Bean到当前类中)导入了AutoConfigura...

2019-04-11 16:21:25 209

原创 Jenkins分享和使用

详细内容见PPT分享https://download.csdn.net/download/weixin_39283212/11065827注意要点:1.执行远程服务器上的Shell脚本需要注意的问题Shell脚本需要有可执行权限;shell中无法获取到PATH环境变量,需要指定相应的绝对路径;2.源码管理需要注意的问题资源库URL使用HTTP的方式,认证方式直接使用用户...

2019-04-11 09:14:42 318

Docker容器技术分享

该文档总结了Docker相关的基础知识,和大家一起学习Docker,做到对Docker有一个基础的理解。

2019-03-27

Jenkins分享

Jenkins知识分享,带大家熟悉Jenkins,包括理解什么是Jenkins以及如何实际使用。

2019-03-27

空空如也

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

TA关注的人

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