自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Thinkingcao的专栏

CSDN明星博主、博客专家—专注架构、Java、Spring、SpringBoot、SpringCloud、分布式、微服务、数据库、中间件、源码分析、JVM性能调优、K8S等领域

  • 博客(441)
  • 资源 (13)
  • 收藏
  • 关注

原创 Spring Cloud Alibaba 微服务架构教程:专栏汇总篇(持续更新中.............)

一、Spring Cloud Alibaba专题目录Spring Cloud Alibaba与Spring Boot、Spring Cloud版本对应关系Spring Cloud Alibaba教程(一):使用Nacos实现服务注册与发现Spring Cloud Alibaba教程(二):实现Nacos注册中心高可用与原理解析Spring Cloud Alibaba教程(三):使用Nacos实现分布式配置中心Spring Cloud Alibaba教程(四):解读Nacos实现

2020-11-04 14:53:47 2417 8

原创 Spring Cloud Alibaba与Spring Boot、Spring Cloud版本对应关系

一、前言在搭建SpringCloud项目环境架构的时候,Springboot版本与SpringCloud版本对应关系很重要,如果版本不对应,常见的会遇见项目启动不起来,怪异的会是项目出现一些诡异的问题。Release train Spring Boot compatibilitySpring Cloud Release TrainSpring Boot VersionHo...

2020-04-21 10:55:00 18222 3

原创 深入理解分布式、微服务中CAP定律和BASE理论

一、背景随着互联网的蔓延,各种传统项目(单体应用)已经不能够满足当前各种复杂的场景需求,都逐渐向分布式服务、微服务做转换,如今分布式、微服务已经普遍存在,大型网站几乎都是分布式、微服务架构的,分布式和微服务架构就显得尤为重要了。分布式和微服务系统的最大难点,就是各个节点的状态如何保持同步,这也是理解分布式、微服务的起点,设计和部署分布式系统时,所有分布式及微服务系统都需遵循CAP定律和BASE理...

2020-04-07 16:45:00 3170 4

原创 Spring Cloud 系列教程 | 文章汇总:专栏汇总篇(持续更新中.............)

SpringCloud从入门到精通系列教程,持续更新中......................

2020-02-21 17:43:38 1587

原创 Spring Boot2.x系列教程 | 文章汇总:专栏汇总篇(持续更新中.............)

Spring Boot使用注解控制Api接口幂等性之前后端分离架构设计:https://blog.csdn.net/Thinkingcao/article/details/103578562

2019-12-30 15:50:33 2633 2

原创 SpringBoot 系列教程(十二):给大家推荐20个SpringBoot开源项目,私活必备

基于 SpringBoot2.x + Shiro 实现了用户管理、个人微信、支付宝支付,内置扫码支付、后台回调、订单查询、限流等一系列功能

2018-12-05 12:22:22 2089

原创 MySQL中通用复用字段设计

MySQL表设计

2024-02-27 20:52:20 449

原创 C端APP常用版本号判断工具类

C端APP常用版本号判断工具类。

2023-04-23 10:20:49 3115 1

原创 ThreadPoolTaskExecutor线程池参数配置

一、线程池配置1、ThreadPoolConfigimport org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.scheduling.concurrent.Threa

2022-03-21 17:56:10 10148

原创 JDK1.8新特性 Optional判空详解,简化判空操作

一、简介从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于此。我们从一个简单的用例开始。在 Java 8 之前,任何访问对象

2022-03-09 11:27:56 20470

原创 IntelliJ IDEA 常用快捷键 Windows版本

前言IDEA快捷键默认支持两种,一种是从熟悉Eclipse开发工具转到IDEA过来的开发这,一种就是操作系统默认的,例如WIndwos就是Default copy,Eclipse就是Eclipse copy,Mac的话就是另外的一套了,这里总结一下WIndwos系统默认的IDEA快捷键,基本都是从网上借鉴过来的,方便高效率的开发和调试,方便我们快速的Coding。一、IntelliJIDEA_ReferenceCard官方提供快捷键文档IntelliJIDEA_Reference:https:

2022-01-12 19:08:03 2712

转载 一直说的服务端负载均衡和客户端负载均衡(Ribbon)的区别

一、什么是负载均衡?负载均衡可以想象为将所有请求先聚在一起,然后根据负载均衡算法分发请求达到合理分配请求,将服务器处理请求的效率达到最大化,为微服务集群分担请求,降低系统的压力。负载均衡算法:1、随机,通过随机选择服务进行执行,一般这种方式使用较少;2、轮训,负载均衡默认实现方式,请求来之后排队处理;3、加权轮训,通过对服务器性能的分型,给高配置,低负载的服务器分配更高的权重,均衡各个服务器的压力;4、地址Hash,通过客户端请求的地址的HASH值取模映射进行服务器调度。5、最小链接数;即使

2021-08-02 14:59:11 1885

原创 中间件RabbitMQ-SpringBoot整合RabbitMQ

https://www.jianshu.com/p/382d6f609697

2021-05-23 14:42:49 268

原创 JDK1.8时间接口 LocalDateTime用法

一、JDK 8新增日期和时间的新类Java 8为Date和Time引入了新的API,以解决旧java.util.Date和java.util.Calendar的缺点。Java 8时间类库中的核心类,比如LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Period, Duration以及它们的api。1、获取时间 @Test public void testGetDate() { /** * 1.

2021-05-17 14:36:26 825

原创 中间件RabbitMQ-work queues工作队列模式

一、前言中间件RabbitMQ-work queues工作队列模式

2021-04-29 00:58:16 262

原创 中间件RabbitMQ-Simple简单队列模式

一、前言中间件RabbitMQ-Simple简单队列模式

2021-04-29 00:57:20 254

原创 中间件RabbitMQ-RabbitMQ界面的角色分类

一、RabbitMQ的角色分类1. none:类似个人中心不能访问 management plugin2. management:比个人中心权限高级一点用户可以通过AMQP做的任何事外加:列出自己可以通过AMQP登入的virtual hosts查看自己的virtual hosts中的queues, exchanges 和 bindings查看和关闭自己的channels 和 connections查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual

2021-04-29 00:55:52 253

原创 中间件RabbitMQ-使用Docker安装RabbitMQ

RabbitMQ在Windows上安装非常简单,就跟日常安装应用聊天软件一样,因此这里选择Linux环境安装RabbitMQ,并且借助Docker容器进行安装,在使用Docker安装RabbitMQ之前,我们先简单的了解一下几个概念:什么是Docker、Docker有什么用处、Docker原理是什么,然后再Centos7上安装Docker服务、以及使用Docker安装RabbitMQ。

2021-04-26 23:44:33 639

原创 中间件RabbitMQ-了解RabbitMQ七种工作队列模式

RabbitMQ是实现了高级消息队列协议AMQP的开源消息代理软件(亦称面向消息的中间件),主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全,并且RabbitMQ服务器是使用Erlang语言编写的。支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

2021-04-25 22:49:19 452 2

原创 中间件RabbitMQ-常见消息队列中间件选型

消息队列中间件是分布式系统中一个非常重要的组件,主要解决应用程序的解耦、异步消息、缓冲、流量削峰等问题。实现高性能、高可用、可伸缩和最终一致性架构。是大型分布式系统和高并发、大数据流量场景必不可少的中间件,同时也是支撑高可用的常用手段之一。

2021-04-25 22:45:41 496 1

原创 SpringBoot 系列教程(一百零八):SpringBoot整合Orika实体映射工具

在开发过程中,经常涉及到对象之间的拷贝,我记得以前用得最多的`Spring`框架中自带的一个`API`方法是:```javaBeanUtils.copyProperties(Object source, Object target)````BeanUtils.copyProperties(Object source, Object target)`的含义是将`source`的属性值复制到`target`,属性为null时也会进行复制。

2021-04-23 14:01:37 1007

原创 Forest - 轻量级HTTP客户端API框架,该丢弃HttpClient了

一、前言最近在码云上扒了一波,发现了一个非常优秀的开源的轻量级HTTP客户端API框架Forest,这款API框架让Java发送HTTP/HTTPS请求不再难,他比原先了OkHttp和HttpClient更高层,以前在调用一个第三方外部API接口时,你可能需要使用HTTPClient或者OkHttp工具来实现,封装一个HTTPClientUtil工具类,工具类中封装一些Post/Get请求,那么现在你完全不需要这么做了,使用Forest框架只需要在你的接口上面加一个注解即可实现第三方API接口的调用。二

2021-04-20 23:39:50 3698 4

原创 SpringBoot 系列教程(一百零七):SpringBoot整合Mybatis Plus3.4.2+Swagger增删改查

在前面一篇文章中:[SpringBoot 系列教程(一百零六):SpringBoot封装企业通用Swagger配置](https://thinkingcao.blog.csdn.net/article/details/115875462) ,写了如何封装企业级Swagger常用配置为Starter启动器,为了验证我们自身封装的`swagger-spring-boot-strater`可用性,本章节专门选用技术栈 `SpringBoot2.3.7.RELEASE+Swagger+Mybatis Plus3

2021-04-19 22:59:44 729 4

原创 SpringBoot 系列教程(一百零六):SpringBoot封装企业通用Swagger配置

哈喽,小伙伴们,晚上好,距离上一次更新文章已经是2021年1月份了,停更了3个月的时间,这么久实在是感到抱歉,尤其对于那些付费的朋友们更是心里过意不去,其实停更这一段时间我一直在准备换工作,复习面试题,现在也成功入职了一家新的互联网公司,前面一段时间稍微忙了一些,就没有精力去更新这些文章了,其实要写的还蛮多,准备后面持续的输出给大家,同时希望自己通过写一些技术文章能给一些朋友们带来一点点的帮助,其次也是对自己技术探索之路的一个总结与提升,相信一直沉淀下去大家都会有所收获的,加油!一、前言做架构一直是我的

2021-04-19 22:42:33 600

转载 Java中五中IO模型详解

一、前言在《Unix网络编程》一书中提到了五种IO模型,5种IO模型分别为: 阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动的IO模型、异步IO模型。下面就分别来介绍一下这5种IO模型的异同。二、五种IO模型1、阻塞IO模型(BIO)这是最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。阻塞IO模型: 当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果

2021-02-24 16:21:56 1874

原创 2021-一首《草原不寂寞送给大家》

2021-草原不寂寞

2021-02-03 14:14:53 303

原创 Java中的基本数据类型和引用数据类型的区别

一、前言众所周知Java是一种强类型语言,在Java语言中,Java的数据类型一共分为两大类,分别为基本数据类型和引用数据类型,其中基本数据类型细分小类可分为整数类型、浮点类型、字符类型、布尔类型这四小类。二、基本数据类型和引用数据类型1. 基本数据类型只有8种,可按照如下分类 :整数类型: long、int、short、byte浮点类型: float、double字符类型: char布尔类型: booleanNo.数据类型大小/位可表示数据范围默认值1by

2021-01-31 00:37:14 3659 1

原创 Spring Cloud系列教程(十九) - 自定义Ribbon负载均衡策略

一、前言在Ribbon组件中,一共提供了7种负载均衡策略规则,默认使用轮训规则RoundRobinRule:最低并发策略BestAvailableRule: 选择最小请求数可用过滤策略(AvailabilityFilteringRule): 过滤掉连接失败的服务节点,并且过滤掉高并发的服务节点,然后从健康的服务节点中,使用轮询策略选出一个节点返回。随机策略 RandomRule : 随机选择一个server轮询策略 RoundRobinRule: 轮询选择server(Ribbon

2021-01-30 22:43:49 524 2

转载 MySQL事务实现原理

https://www.cnblogs.com/wyc1994666/p/11367051.html

2021-01-18 22:07:37 202

原创 feilong-core,一个让Java开发更简便的工具包,极力推荐

还是那句话,既然吃了面向对象编程这碗饭,能不重复造轮子就尽量不造一、背景在JAVA开发过程中,经常看到小伙伴直接从网上copy一长段代码来使用,又或者写的代码很长很长很长…痛点在于:难以阅读难以维护sonar扫描结果债务长codereview 被小伙伴鄙视…feilong-core focus on J2SE,是feilong platform 的核心项目,创建于2008年愿景: Reduce development, Release ideas (减少开发,释放思想), 希望可以

2020-12-30 13:35:09 884

转载 SpringCloud Alibaba 微服务架构(十七)- Seata-AT 如何保证分布式事务一致性

一、前言Seata 是一款开源的分布式事务解决方案,star 高达 18100+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务,本文将剖析 Seata-AT 的实现原理,让用户对 AT 模式有更深入的认识。二、Seata 事务模式是什么?1. Seata 对事务的定义Seata 定义了全局事务的框架。全局事务定义为若干分支事务的整体协调:TM 向 TC 请求发起(Begin)、提交(Commit)、回滚(Rollback)全局事务。TM 把代表全局事务的 XID 绑

2020-12-30 10:30:12 933

原创 Java中读取properties配置文件的八种方式总结

一、前言在做Java项目开发过程中,涉及到一些数据库服务连接配置、缓存服务器连接配置等,通常情况下我们会将这些不太变动的配置信息存储在以 .properties 结尾的配置文件中。当对应的服务器地址或者账号密码信息有所变动时,我们只需要修改一下配置文件中的信息即可。同时为了让Java程序可以读取 .properties配置文件中的值,Java的JDK中提供了java.util.Properties类可以实现读取配置文件。二、Properties类Properties 类位于 java.util.Pro

2020-12-29 14:01:04 40824 3

转载 SpringCloud Alibaba 微服务架构(十五)- 一文详解 Nacos 高可用特性

前言服务注册发现是一个经久不衰的话题,Dubbo 早期开源时默认的注册中心 Zookeeper 最早进入人们的视线,并且在很长一段时间里,人们将注册中心和 Zookeeper 划上了等号,可能 Zookeeper 的设计者都没有想到这款产品对微服务领域造成了如此深厚的影响,直到 SpringCloud 开始流行,其自带的 Eureka 进入了人们的视野,人们这才意识到原来注册中心还可以有其他的选择。再到后来,热衷于开源的阿里把目光也聚焦在了注册中心这个领域,Nacos 横空出世。Kirito 在做注册

2020-12-28 12:21:51 2058

转载 SpringCloud Alibaba 微服务架构(十六)- Nacos 集群部署模式最佳实践

1 前言Nacos 支持两种部署模式:单机模式和集群模式。在实践中,我们往往习惯用单机模式快速构建一个 Nacos 开发/测试环境,而在生产中,出于高可用的考虑,一定需要使用 Nacos 集群部署模式。我的上一篇文章《一文详解 Nacos 高可用特性》提到了 Nacos 为高可用做了非常多的特性支持,而这些高可用特性大多数都依赖于集群部署模式。这篇模式文章便是给大家介绍一下,在实践中可以被采用的几种集群部署模式,无论你是希望自行搭建 Nacos,还是希望对 MSE 商业版 Nacos 有一个更加深刻的理解

2020-12-28 11:49:47 879 1

原创 Centos7从零开始搭建Java Web开发环境

一、安装JDK1. 执行以下命令,查看yum源中JDK版本。yum list java*2. 执行以下命令,使用yum安装JDK1.8。yum -y install java-1.8.0-openjdk*3. 执行以下命令,查看是否安装成功。java -version如果显示如下图内容,则表示JDK安装成功。二、安装MySQL数据库1. 执行以下命令,下载MySQL官方的Yum Repository。wget http://dev.mysql.com/get/mysql5

2020-12-25 14:56:55 458

原创 Git操作第二篇:把本地项目提交到Gitee、GitHub、GitLab仓库

一、前言有时候我们想把自己一些高质量的代码片段或者小项目demo提交到远程Git仓库,这里的远程Git仓库指Gitee、GitHub、GitLab等这些以Git搭建的远程代码仓库,可以是开源的Git仓库,也可以是公司自己的Git地址,总之理解就行,那么这里就记录一篇如何将本地项目提交上传到远程Git仓库的教程,虽然网上的教程太多,但是都感觉好乱,因为这些不走对于我来说使用频率很高,所以还是自己来总结一篇吧。‘’二、Git命令操作1. 先进入项目文件夹,初始化本地仓库git init通过执行gi

2020-12-15 23:25:46 905

原创 Spring中@ResponseStatus注解的作用

一、@ResponseStatus注解作用@ResponseStatus注解是spring-web包中提供的一个注解,从下图部分源码中可以看出@ResponseStatus注解具有value、code、reason 三个属性。@ResponseStatus注释可指定下表所示属性:属性类型是否必要说明codeHttpStatus否http状态码,如HttpStatus.CREATED,HttpStatus.OKvalueString否同code属性reas

2020-12-08 17:58:35 7136

原创 Spring Cloud系列教程(三):Eureka实现高可用集群环境搭建

在`SpringCloud`微服务项目中,`注册中心`是其中的一部分,注册中心充当了服务的注册和发现角色,更为核心的是解决了微服务项目中的一系列服务治理问题,如果一旦服务注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式,`Eureka集群的原理:`**其实就是两台或者多台`Eureka server`服务相互注册,将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组相互注册的服务注册中心,从而实现服务清单的互相同步,达到高可用效果。**

2020-12-01 14:19:44 1382

原创 Eureka源码分析【一】 之Client和Server环境搭建

一、背景在之前对Spring Cloud微服务系列组件进行了一个系统的学习,并且在前面的一些微服务组件学习过程中,总结了一些学习心得以及对于在学习这些微服务组件后的一些个人理解;恰好最近公司有个规模较大的项目,需要考虑到上微服务架构,所以我就主动申请了挑战一下这个新技术。二、面对技术选型的挑战大家都知道,在Spring Cloud经历过几个大版本的发布后,变得愈来愈成熟,而其中的大部分组件是由国外著名的Netflix的流媒体播放公司开源贡献的,在后续的更新中,Netflix公司提出了一些组件相继停更。

2020-11-27 17:58:12 395

原创 一文教你如何透彻理解Java异常处理

一、JAVA 异常类型结构分类在Java中Throwable是所有异常类型的基类,并且Throwable异常下一层分为两个分支,分别为Error 和 Exception,Error和 Exception都继承自基类Throwable。其关系结构图如下:二、Error 和 Exeption区别1. ErrorError表示不可恢复的情况,例如Java虚拟机(JVM)内存不足,内存泄漏,堆栈溢出错误,库不兼容,无限递归等,描述了 JAVA程序运行时系统的内部错误,通常比较严重,该异常产生的错误通常

2020-11-25 17:13:22 1496

springboot-activiti_model.zip

SpringBoot2.x整合Activiti6.0.0,以及SpringBoot2.x整合Activiti-Model5.22在线流程设计器模块,实现在线设计流程图和在线部署

2020-03-05

springboot-weixin.zip

SpringBoot整合WxJava,接入开发者,实现微信公众号开发

2020-03-05

zookeeper-3.5.5(SpringBoot2.0以上对应Zk3.5及以上).zip

Zookeepe3.5.5版本的安装包以及可视化工具,安装包在本地以及编译好了,解压可以直接使用,查看Zookeeper信息的可视化界面工具也在其中,解压便可使用;

2020-02-24

RocketMQ-4.3.2启动服务包.zip

Windows下安装了RocketMQ之后,使用了批处理文件的方式配置了RocketMQ,方便启动,下载即可使用

2020-01-03

导入excel模板文件下载

导入excel模板,测试excel模板,

2019-11-06

SpringCloud概览_终稿.docx

Spring Cloud是一系列框架的有序集合: 利用Spring Boot的开发便利性,简化了分布式系统基础设施的开发。 Spring Cloud Eureka 是 Spring Cloud Netflix 的一部分,它基于 Netflix Eureka 做了二次封装,完成微服务架构中的服务治理功能。 Spring Cloud Netflix是对Netflix分布式服务开发框架的封装,包括服务发现和注册、负载均衡、断路器、REST客户端、请求路由等。 Spring Cloud Zookeeper对Zookeeper的封装,使之能配合其它 Spring Cloud项目使用,一般当作注册中心。 Spring Cloud Bus分布式消息队列,是对Kafka MQ的封装,实现可靠消息。 Spring Cloud Config将配置信息中央化保存。 Spring Cloud Security对Spring Security的封装,实现服务安全等。

2019-09-30

SpringCloud微服务组件说明.txt

SpringCloud微服务组件说明,列举了当下微服务框架中SpringCloud所使用的一全套组件

2019-09-30

Mysql百万级以上查询优化总结

Mysql百万级以上查询优化总结,,对mysql表优化、索引优化

2018-09-29

lombok插件以及使用文档

lombok插件以及使用文档,安装eclipse插件lombok,可简化代码,日志。

2018-07-25

SQL Server2012安装教程

通过自身安装SQLServer数据库的时候,记录安装步骤,以文档的形式记录下来,供大家下载使用。

2017-09-29

Red Hat Enterprise Linux 7.0 x86_64下安装Oracle 12c R1

2017-02-07

Red Hat Enterprise Linux 7.0 x86_64下安装Oracle 12c R1数据库

Red Hat Enterprise Linux 7.0 x86_64下安装Oracle 12c R1数据库

2016-09-02

SSH整合完整步骤

SSH整合完整步骤

2016-08-29

空空如也

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

TA关注的人

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