自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XQ_898878888的博客

菜鸟学习之路

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

原创 【09】分布式事务Seata 之 TCC事务模式

准备工作第一步:先创建一个空工程:seata-tcc第二步:将无事务订单项目解压到seata-tcc文件夹下。(可访问 git 仓库 https://gitee.com/benwang6/seata-samples下载无事务订单项目)第三步:在IDEA 按两下 shift 搜索add maven project,选择需要导入的模块的pom.xml文件,将项目都导入工程中。TCC事务入门案例父工程添加seata依赖打开父工程order-parent的pom.xml文件,取消seata依赖的注释。

2021-08-30 10:03:13 446

原创 分布式事务--订单案例准备

订单业务案例1. 准备工作1.1 创建空工程 empty project: seata-at1.2 创建spring模块 db-init1.3 添加依赖jdbc api、mysql driver、springboot版本:2.3.2.RELEASE <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-start

2021-08-25 09:15:19 246

原创 【02】Nacos-服务注册中心

1. Nacos注册中心简介1.1 背景分析在微服务中,首先需要面对的问题就是如何查找服务(软件即服务),其次,就是如何在不同的服务之间进行通信。如何更好更方便的管理应用中的每一个服务,如何建立各个服务之间联系的纽带,由此注册中心诞生(例如淘宝网卖家提供服务,买家调用服务)。市面上常用的注册中心有Zookeeper(雅虎Apache),Eureka(Netfix),Nacos(Alibaba),Consul(Google)。下面我们选择Nacos进行学习,Nacos它很好的支持了阿里的双11活动,不仅

2021-07-28 20:53:16 1332

原创 【01】微服务架构分析及发展

1. 微服务简介1.1 背景分析先分析一下单体应用。所谓单体应用一般是基于idea/eclipse,maven等建一个工程,然后基于SpringBoot,Spring,Mybatis框架进行整合,接下来再写一堆dao、mapper、service、controller,再加上一些的配置文件,有可能还会引入redis、elasticsearch、mq等其它项目的依赖,开发好之后再将项目打包成一个jar包/war包。然后再将包扔到类似tomcat这样的web服务中,最后部署到公司提供给你的Linux服务器上

2021-07-27 18:53:23 496

原创 【11】微服务链路追踪SkyWalking

对于一个大型的几十个、几百个微服务构成的微服务架构系统,通常会遇到下面一些问题,比如:如何串联整个调用链路,快速定位问题?如何缕清各个微服务之间的依赖关系?如何进行各个微服务接口的性能分折?如何跟踪整个业务流程的调用处理顺序?skywalking是一个国产开源框架,2015年由吴晟开源 , 2017年加入Apache孵化器。skywalking是分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。

2024-07-20 17:59:38 837

原创 【07】分布式事务解决方案

事务()是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语句组成。原子性一致性隔离性持久性。任何事务机制在实现时,都应该考虑事务的ACID特性,包括:本地事务、分布式事务。

2024-07-14 09:31:57 940

原创 【04】微服务通信组件Feign

Feign是Netflix开发的声明式、模板化的HTTP客户端,其灵感来自Retrofit、JAXRS-2.0以及WebSocket。Feign可帮助我们更加便捷、优雅地调用HTTP API。Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。Feign 提供了很多的扩展机制,让用户可以更加灵活的使用。自定义拦截器实现认证逻辑(只有请求拦截,没有响应拦截)@Overridelogger.info("feign拦截器");在配置类中进行配置/*** 自定义拦截器。

2024-07-07 11:31:15 852

原创 【03】微服务负载均衡器Ribbon

通过实现 IRule 接口可以自定义负载策略,主要的选择服务逻辑在 choose 方法中。@Override@Override//获取当前请求的服务的实例修改配置文件StockService: #被调用的服务名ribbon:NFLoadBalancerRuleClassName: com.example.ribbon.CustomRule # 设置为自定义的策略。

2024-07-07 10:44:49 795

原创 【06】SpringBoot与Web开发

是否必填,默认为false;

2024-07-02 07:40:22 927

原创 【01-02】Mybatis的配置文件与基于XML的使用

如果数据库表的字段与POJO的属性名不一致时,除了可使用'AS'来设置别名,还可以使用resultMap来设置自定义结果集,注意:resultType与resultMap二者只能使用其一。id:唯一标识,需要与select标签中的resultMap进行关联;type:需要映射的Pojo类型;:是否自动映射,默认为false,只要字段名与属性名遵循映射规则就可以自动映射;extends。

2024-06-26 22:06:22 2020

原创 【01-01】Mybatis的介绍与快速入门

MyBatis 是一款优秀的半自动化持久层ORM框架,它支持自定义SQL语句、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的XML文件或者注解的方式来配置和完成对象关系映射(具体指:类与数据库表的关系、类属性与表字段的关系)。特点优点:简化了JDBC的开发,封装了繁杂冗余的JDBC操作,提高了开发的效率;是一款简单易学的持久层框架;将SQL从Java代码中分离了出来,降低了代码依赖的耦合度,且SQL可重用;

2024-06-22 22:16:53 940

原创 【02-02】SpringMVC基于注解的应用

【代码】02_02_SpringMVC基于注解的应用。

2024-06-21 07:40:58 818

原创 【02-01】SpringMVC初识

SpringMVC是Spring框架的一部分,是基于Java实现MVC设计模式的轻量级Web框架。

2024-06-15 17:23:39 1096

原创 【03-04】Spring声明式事务

在Spring中为了更加方便的操作JDBC,在JDBC的基础之上定义了一个抽象层,此设计的目的是为了给不同类型的JDBC操作提供模板方法,每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务,通过这种方式尽可能的保留了灵活性,将数据库存取的工作量降到最低。

2024-06-06 07:53:15 831

原创 【03-03】初识SpringAOP和应用

非侵入式代码增强可拓展性可维护性。

2024-06-03 22:13:32 1072

原创 【05】SpringBoot热部署与日志

为了进一步提高开发效率,SpringBoot为我们提供了全部项目热部署,日后在开发过程中修改了部分代码或者相关配置文件之后,不需要再重启服务使其生效。在项目中开启了全局热部署之后,只需要在修改之后等待几秒钟就可使修改生效。

2024-05-29 07:26:16 885

原创 【03】SpringBoot自动装配原理

应用标注在某个类上,说明这个类是SpringBoot的主配置类,SpringBoot的项目需要运行这个类的main方法来启动SpringBoot应用的服务;

2024-05-25 22:01:42 430

原创 【01】全面理解JVM虚拟机

学习JVM是进行JVM调优的基础。写的代码部署到线上它会如何运行?要配多少内存?线上环境出问题了,服务崩溃了,应该怎么快速定位?这些问题都与JVM有着一定的关系。好的程序员都应该尽自己的能力把JVM每个底层逻辑整理成自己的知识体系。各种程序语言只能要写出满足JVM规范的class文件,都能够在JVM中运行;执行引擎会将class文件扔到JVM的内存中运行。在运行过程中,需要不断的在内存中创建并销毁对象。

2024-05-21 07:55:26 716

原创 【02】MQ环境搭建

正在陆续学习中…

2024-05-18 19:25:07 139

原创 【01】初识MQ

一、MQ概述1、什么是MQ?MQ:消息队列(MessageQueue)。队列是一种FIFO先进先出的数据结构。消息由生产者发送到MQ中进行排队,然后按原来的顺序交由消息的消费者来处理。QQ和微信就是典型的MQ。官网地址2、MQ的作用(优点)异步作用:提高系统的响应速度、吞吐量。所有的请求不用再等待去发送消息了,任何时候都可以将消息发送出去,然后接着去干别的事情。例如:快递员配送快递,直接送到客户的家里效率十分的低下,当引入菜鸟驿站后,快递员只需把快递放到菜鸟驿站,就可以继续去派送其他快递

2024-05-18 19:19:10 144

原创 SpringCloud之随堂笔记

eureka运行机制(1)注册:客户端会一次一次反复连接服务器,直到注册成功为止(2)拉取:客户端每30秒重复拉取注册表,刷新注册表(3)心跳:客户端每30秒发送一次心跳数据,服务器在连续3次收不到一个服务的心跳后,会删除这个服务(4)自我保护模式:由于网络不稳定,或网络中断,15分钟内,85%服务器出现心跳异常,会进入保护模式,保护所有注册信息不删除网络恢复之后,会自动退出保护模式恢复正常,开发调试期间,可以禁用保护模式,避免影响测试。zuul网关zuul API 网关,为微服务应用提供

2024-05-16 22:36:30 886 1

原创 JAVA-Code模块

1. Java基础语法1.1 标识符标识符可以简单的理解成一个名称。在Java中,我们需要标识代码的很多元素,例如:包括类名、方法名、字段名、变量名、包名等,我们选择的那个名称就称为标识符。标识符语法需要遵循以下规则:标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符不能以数字开头。如:123name 就是不合法的。标识符严格区分大小写。如: tmooc 和 tMooc 是两个不同的标识符。标识符的命名最好能反映出其作用,做到见名知意。标识符不能

2024-05-16 22:34:15 626

原创 前后端相关插件的安装指南

1. VUE后端管理插件安装安装指南

2024-05-16 22:32:57 129

原创 04-Json/Ajax/Vue的知识

1. Json结构1.1 Json概述JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,实现数据前后端交互。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。 JSON采用完全独立于程序语言的文本格式。这些特性使JSON成为理想的数据交换语言。1.2 Json基本格式1.2.1 对象格式对象(object)是无序的"key":value键值对集合,一个对象以“{”开始,“}”结束,每个"key"后面跟一个:,键值对之间使用,分隔。例如

2024-05-16 22:31:29 790

原创 数据结构常考知识总结

线性结构和非线性结构的分类线性结构有:线性表、栈、队列、串(最多只有一个直接前驱和一个直接后继);非线性结构有:树、图、多维数组、广义表;存储结构顺序存储、链式存储、索引存储、散列存储数据元素之间的逻辑结构集合、线性结构、树型结构、图状结构循环队列中根据头尾指针计算元素的个数(rear-front+N)% N二叉树的性质前序遍历和中序遍历结果相同的二叉树为所有结点只有右子树的二叉树。前序遍历和后序遍历结果相同的二叉树为只有根节点的二叉树。哈夫曼树的带权路径长度如

2024-05-16 22:30:41 276

原创 【05-02】Mybatis-plus分页查询案例【二】

mybatis-plus条件分页查询

2022-07-25 10:29:17 189 1

原创 【03-02】SpringIOC配置Bean对象

spring bean的配置

2022-07-20 11:32:39 160

原创 【03-01】Spring初识

Spring的简介

2022-07-19 21:28:28 177

原创 01--左内右连接

与数据库有关的知识

2022-07-18 10:18:38 34

原创 选择排序算法

package 排序算法.选择排序;import java.util.Arrays;/** * 算法思想:第一个位置的值与后面所有位置的值做比较,如果满足就不交换,不满足就交换,直到比较完所有的数。 */public class ChooseSort { public static void main(String[] args) { int[] array = {0,12,5,25,8,4,2,7,41}; int[] result = Choose

2021-12-14 13:34:53 29

原创 插入排序算法

package 排序算法.插入排序;import java.util.Arrays;public class InsertionSort { /** *算法思想: * 1、将整个数组分为待排序和已排序两部分,每次从待排序中拿到一个数,从已排序的末尾去与其他元素做比较; * 2、当出现已排序的元素大于当前数时,就把当前数继续往前插入; * 3、当出现当前数大于等于前面的已排序元素时,就停下来,插入完成; */ public stati

2021-12-14 13:34:17 32

原创 快速排序算法

package 排序算法.快速排序;import java.util.Arrays;/** * 算法思想:从待排序列中随便选择一个元素作为基准,使得基准左边的元素都比它小,右边的都比它大,然后就一直按照这个 * 操作做递归,最终完成排序。 */public class QuikSort { public static void main(String[] args) { int[] array = {0,12,-5,3,8,4,2,-7,1}; qu

2021-12-14 13:33:43 26

原创 归并排序算法

package 排序算法.归并排序;import java.util.Arrays;/** * 归并排序是典型的分治法应用, * 总共分为两大步, * 第一步:对给定待排序数组分解成两部分(主要采用递归的方法),每部分是有序的; * 第二步,合并这两部分; */public class MegerSort { public static void main(String[] args) { int[] array = {0,12,-5,3,8,4,2,-7,1}

2021-12-14 13:32:58 27

原创 冒泡排序算法

package 排序算法.冒泡排序;import java.util.Arrays;public class BubbleSort { public static void main(String[] args) { int[] array = {5,3,8,4,2,7,1}; int[] sortArray = BubbleSorts(array); System.out.println(Arrays.toString(sortArray)); }

2021-12-14 13:32:10 27

原创 二分查找算法

package 排序算法.二分查找;public class binarySearch2 { //通过迭代的思想实现二分查找算法 public static void main(String[] args) { int[] array = {0,12,-5,3,8,4,2,-7,1}; int index = BinarySearch(array, 8,0,array.length - 1); System.out.println("指定

2021-12-14 13:30:29 26

原创 【02】SpringBoot的简介与入门

1. SpringBoot 简介1.1 背景分析在传统JAVAEE应用体系中创建一个项目,需要手动添加大量的依赖,还要考虑版本兼容性的问题,还有繁重的配置、负载的项目部署,会高度影响开发效率,即使是使用Spring进行资源整合,也存在同样的这些问题。还有就是现在的软件生态应用也已经形成一定的规模,整个软件架构体系在变化,企业对技术的要求也在变化,现在的企业更注重技术的开箱即用,更注重技术在生态圈中的深度融合,更注重轻量级的运维。由此由此spring boot诞生。1.2 作用Spring Boot是

2021-09-14 20:43:37 226 1

原创 JAVA的发展史与环境搭建

1. Java语言概述1.1 Java语言发展史詹姆斯•高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年 获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第一代工作站NeWS系统,但不受重视。后来转至Sun公司,1990年,与Patrick,Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套语言叫做“Oak”,后改名为Java。1.2 Java语言平台版本J2SE/JAVASE — Stan

2021-09-04 19:46:05 138

原创 05--Redis搭建集群

Docker 搭建redis集群六个Redis实例的配置文件:mkdir /opt/rediscd /opt/redismkdir 7000 7001 7002 7003 7004 7005cat <<EOF >7000/redis.confport 7000cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yesEOFcat <&lt

2021-09-02 10:37:19 111

原创 【08】分布式事务Seata 之 AT事务模式

1. Seata介绍Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。1.1 Seata AT事务方案Seata 的 AT 模式(Automatic Transaction)是一种无侵入的分布式事务解决方案。下面结合具体业务场景来分析其执行的原理。1.1.1 业务场景订单系统当用户下订单时,执行以下三步流程:(1)订单系统保存订单(2)订单系统调用

2021-08-25 15:28:41 1247 1

原创 【04】SSM的知识与应用之三大框架整合

1. 创建SSM模块1.1 创建工程1.2 添加依赖<?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/POM/4.0.0 h

2021-08-22 22:24:38 186 1

空空如也

空空如也

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

TA关注的人

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