- 博客(112)
- 收藏
- 关注
原创 Seata 案例
分布式事务问题由来分布式前分布式后Seata术语官网地址: http://seata.io/zh-cn/是什么能干嘛分布式事务处理过程的一ID+三组件模型:Transaction ID XID 全局唯一的事务ID三组件概念TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器:定义全局事务的范围:开始全局事务、提交或回滚全局事务。RM (
2023-08-21 15:50:56 222
原创 Sentinel 案例
Sentinel是什么Sentinel下载安装运行官网地址https://sentinelguard.io/zh-cn/下载地址,选择自己需要的版本https://github.com/alibaba/Sentinel/releasesLinux 下下载需要先安装 wgetwget https://github.com/alibaba/Sentinel/releases/download/1.8.2/sentinel-dashboard-1.8.2.jarSentinel
2023-08-16 09:37:22 296
原创 Linux安装 Nginx
注意:Nginx 的默认安装路径实在 /usr/local/ 目录下,在自己的目录 /opt/software/nginx/ 目录下是没有 sbin 这个文件夹的,所以注意启动时 Nginx 的路径。打开Nginx官网 :http://nginx.org/en/download.html。使用 wget 命令把Nginx安装包下载到/opt/software/目录中。然后我们找到一个版本,把鼠标移动到上面,右键 - 复制链接地址。
2023-08-11 15:38:23 188
原创 SpringCloud各个组件之间的工作流程
请求统一通过网关GateWay来访问内部服务网关接受请求后,从注册中心(nacos,nacos集成了Ribbon)获取可用的服务并进行负载均衡后,分发到后端具体的实例微服务之间通过 Dubbo进行通信处理业务Sentinel 负责处理服务超时与熔断以及监控服务间的调用和熔断相关指标
2023-08-04 15:29:24 132
原创 RabbitMQ的核心组件与工作流程
核心组件:分为3个部分,生产者,消息服务器Broker, 消费者生产者与消费者是通过建立TCP连接与消息服务器Broker进行工作,TCP连接通过创建虚拟的信道(channel)来进行发送与接收消息消息服务器Broker划为若干个虚拟主机,每个虚拟主机有交换机、路由key、队列和绑定,交换机通过路由key与队列进行绑定工作流程:生产者通过建立TCP连接与消息服务器Broker进行连接,将消息通过虚拟信道(channel)发送给交换机,交换机与队列进行绑定,根据路由key将消息保存到绑定的队列
2023-08-04 15:19:02 110
原创 Spring事务
1. pom.xml2. applicationContext.xml3. UserService 类4. UserDemoTest 测试类TransactionTemplate接口实现编程式事务UserService 类UserDemo 测试类声明式事务XML配置声明式事务1. pom.xml 添加依赖2. applicationContext.xml3. UserService 类4. UserDemoTest测试类Java + XML混合配置声明式事务1. ap
2023-08-04 14:51:01 76
原创 Spring Cloud Stream 消息驱动
Binder - 很方便的连接中间件,屏蔽差异。Channel - 通道,是队列Queue的一种抽象,在消息通讯系统中就是实现存储和转发的媒介,通过Channel对队列进行配置。Source和Sink - 简单的可理解为参照对象是Spring Cloud Stream自身,从Stream发布消息就是输出,接受消息就是输入。
2023-07-28 17:44:44 110
原创 SpringCloud Bus 消息总线
安装Erlang安装RabbitMQ打开cmd进入RabbitMQ安装目录下的sbin目录输入以下命令启动管理功能访问地址查看是否安装成功:http://localhost:15672/输入账号密码并登录:guest guest具体安装 Erlang 和 RabbitMQ 请访问: https://editor.csdn.net/md/?articleId=130800154必须先具备良好的RabbitMQ环境先演示广播效果,增加复杂度,再以3355为模板再制作一个33661.新建cloud-conf
2023-07-28 14:31:36 57
原创 Config分布式配置中心
用你自己的账号在GitHub上新建一个名为springcloud-config的新Repository。由上一步获得刚新建的git地址 : git@github.com:yyx0113/springcloud-config.git本地硬盘目录上新建gitee仓库并clone。此时在工作目录会创建名为springcloud-config的文件夹。
2023-07-27 16:05:17 120
原创 Hystrix
application.yml主启动类创建 service.PaymentService创建 controller.PaymenrController运行测试,先启动 cloud-eureka-server7001 (这个是服务注册中心服务端),然后启动该项目 cloud-provider-hystrix-payment80017.1 http://localhost:8001/payment/hystrix/ok/17.2 http://localhost:80
2023-07-26 12:08:56 57
原创 MySQL 存储过程
概述创建存储过程调用存储过程查询存储过程删除存储过程语法变量DECLARESETselect…intoif 条件判断传递参数IN - 输入OUT - 输出case 结构while 循环repeat 循环loop 语句leave 语句游标 / 光标存储函数
2023-07-20 12:04:14 80
原创 Consul 服务注册中心
6. 开启开发者模式,在 cmd 界面里输入 consul agent -dev7. consul 启动完成,通过 http://localhost:8500 访问 Consul 的首页。
2023-07-19 15:51:38 190
原创 Zookeeper服务注册与发现
在 zookeeper 的 zkCli.cmd 运行的窗口运行以下命令,如下,则表示项目注册进 zookeeper 的注册中心成功。zookeeper没有接收到服务节点的心跳,会马上从服务注册中心剔除该服务节点。在浏览器地址输入 localhost:8004/payment/zk,如下。
2023-07-19 12:02:30 166
原创 Eureka服务注册与发现
Eureka Client 相当于商场的店铺,每隔一个月交租金(每隔30秒向Eureka Server发送心跳),如果商场几个月没有收到某个店铺的租金(Eureka在多个心跳周期内没有收到某个节点的心跳),商场将会与该店铺结束合同(Eureka Server 将会从服务注册表中把这个服务节点移除)Eureka Server 相当于一个商场,商场里的各个店铺都需要在商场进行签合同(注册)来在商场里开店。
2023-07-17 17:11:29 79
原创 java线程与线程池
corePoolSize: 核心线程数量,当有一个任务提交到线程池的时候,如果当前线程池的线程数量没有达到核心线程数量,则创建线程来执行任务maximunPoolSize: 最大线程数量,当有一个任务提交到线程池的时候,如果当前线程池的线程数量达到了核心线程的数量,并且任务队列也已经满了,则再在满足线程池最大线程数量的前提下,创建线程执行该任务,如果任务队列没有满,则该任务进入任务队列等该。
2023-07-17 10:02:04 142
原创 Maven中 DependencyManagement 和 Denpendencies 的区别
问题:Maven中 DependencyManagement 和 Denpendencies 的区别。
2023-07-15 17:14:48 60
原创 org.apache.ibatis.executor.ExecutorException: No setter found for the keyProperty ‘xxx‘异常
解决方法:首先确认Payment的实体类里有setter方法,如果仍然报错,则可能是Mapper.xml文件里的keyProperty参数出现错误,keyProperty参数的值应该与数据库表中的主键字段名称相对应,我这里就是没有与表格主键名称相对应而报的错误。
2023-07-15 16:22:36 930
原创 Caused by: java.lang.ClassNotFoundException: Cannot find class: Payment
问题:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'paymentController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with
2023-07-15 15:47:53 250
原创 ‘build.plugins.plugin.version‘ for org.springframework.boot:spring-boot-maven-plugin is missing
【代码】‘build.plugins.plugin.version‘ for org.springframework.boot:spring-boot-maven-plugin is missing。
2023-07-15 10:27:48 1941
原创 Leaf简介
leaf是叶子的意思我们使用的Leaf是美团公司开源的一个分布式序列号(id)生成系统我们可以在Github网站上下载项目直接使用。
2023-07-10 11:31:01 203
原创 Quartz
quartz:石英钟的意思是一个当今市面上流行的高效的任务调度管理工具所谓"调度"就是制定好的什么时间做什么事情的计划由OpenSymphony开源组织开发Symphony:交响乐是java编写的,我们使用时需要导入依赖即可。
2023-07-10 11:30:43 57
原创 消息队列(RabbitMQ)
消息队列(Message Queue)简称MQ,也称:“消息中间件”消息队列是采用"异步(两个微服务项目并不需要同时完成请求)"的方式来传递数据完成业务操作流程的业务处理方式RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。
2023-07-10 11:30:30 559
原创 Docker概述
我们要学习在Linux(RockyLinux)中安装使用Docker来配置软件的功能Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。
2023-07-10 11:30:00 43
原创 虚拟机的基本使用
所谓的虚拟机,就是在当前计算机系统中,又开启了一个虚拟系统这个虚拟系统,我们要安装Linux系统我们开发的java项目最终也都会运行在Linux系统上开发使用windows是正常的linux也是一个计算机操作系统相较于windows系统,Linux系统更加注重系统的权限,安全性和性能但是windows易用性好,Linux易用性差因为Linux系统原生状态下,基本没有任何软件,易用性差因为Linux是开源的,所以很多个人或组织对原生Linux进行了增强,后放出各种Linux的增强版。
2023-07-10 11:29:40 576
原创 布隆过滤器
布隆过滤器能够实现使用较少的空间来高效判断一个指定的元素是否包含在一个集合中布隆过滤器并不保存这些数据,所以只能判断是否存在,而并不能取出该元素使用情景:凡是判断一个元素是否在一个集合中的操作,都可以使用它布隆过滤器常见使用场景idea中编写代码,一个单词是否包含在正确拼写的词库中(拼写不正确划绿线的提示)公安系统,根据身份证号\人脸信息,判断该人是否在追逃名单中爬虫检查一个网址是否被爬取过。
2023-07-10 11:29:13 46
原创 Nginx
Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
2023-07-10 11:28:54 35
原创 java循环结构
建议:当第1要素与第3要素的代码相同时,首选do…建议:当第1要素与第3要素的代码相同时,首选do…循环中套循环,常常多行多列时使用,一般外层控制行,内层控制列。while结构:先判断后执行,有可能一次都不执行。while结构:先执行后判断,至少执行一次。while结构:先判断后执行,有可能一次都不执行。while结构:先执行后判断,至少执行一次。循环变量:在整个循环过程中所反复改变的那个数。循环变量:在整个循环过程中所反复改变的那个数。执行规则:外层循环走一次,内层循环走所有次。
2023-07-10 11:28:28 33
原创 配置中心介绍
所谓配置中心:在微服务的环境下,将项目需要的配置信息保存在配置中心,需要读取时直接从配置中心读取,方便配置管理的微服务工具我们可以将部分yml文件的内容保存在配置中心一个微服务项目有很多子模块,这些子模块可能在不同的服务器上,如果有一些统一的修改,我们要逐一修改这些子模块的配置,由于它们是不同的服务器,所以修改起来很麻烦如果将这些子模块的配置集中在一个服务器上,我们修改这个服务器的配置信息,就可以修改所有子模块的信息,这个服务器就是配置中心使用配置中心的原因就是能够达到高效的修改各模块配置的目的。
2023-07-10 11:27:39 434
原创 java 二进制
什么是二进制:逢2进1的计数规则。计算机中的变量/常量都是按照2进制来计算的。用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制。如何缩写:将2进制从低位开始,每4位2进制缩为1位16进制。用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制。如何缩写:将2进制从低位开始,每4位2进制缩为1位16进制。补码:-------------------了解。补码:-------------------了解。记住32位2进制数的-1的编码:32个1。记住32位2进制数的-1的编码:32个1。
2023-07-07 16:49:21 515
原创 java file
File类的每一个实例可以表示硬盘中的一个文件或目录,但实际上它只表示一个抽象路径而已,只不过这个路径在硬盘上是真实存在的。File类的每一个实例可以表示硬盘中的一个文件或目录,但实际上它只表示一个抽象路径而已,只不过这个路径在硬盘上是真实存在的。isFile():获取File对象表示的是否为一个文件且存在。isHidden():获取文件或目录是否为隐藏的。canWrite():获取文件或目录是否为可写的。canRead():获取文件或目录是否为可读的。exists():获取文件或目录是否为已存在的。
2023-07-07 16:49:10 44
原创 java数组
通过下标/索引来访问数组中的元素,下标从0开始,最大到(数组的长度-1)数组的下标为0到(数组长度-1),若超出这个范围则会发生数组下标越界异常。通过(数组名.length)可以获取数组的长度(元素的个数)有返回值:数据类型 变量 = 方法名(有参传参);形参:形式参数,定义方法时的参数称为形参。实参:实际参数,调用方法时的参数称为实参。数组的遍历/迭代:从头到尾挨个走一圈。无返回值:方法名(有参传参);初始化:初始化数组中的元素。访问:访问的是数组中的元素。相同数据类型元素的集合。
2023-07-07 16:48:57 35
原创 java分支结构
switch可以作用于的数据类型有: byte,short,char,int,String,枚举。switch可以作用于的数据类型有: byte,short,char,int,String,枚举。case结构:多条路。分支结构(上):基于条件执行的语句。case结构:多条路。else if结构:多条路。else if结构:多条路。break:跳出switch。break:跳出switch。else结构:2条路。else结构:2条路。优点: 效率高、结构清晰。优点: 效率高、结构清晰。
2023-07-07 16:48:48 96
原创 java运算符
&:短路与(并且),两边都为真则为真,见false则false。||:短路或(或者),有真则为真,见true则true。++/–:自增1/自减1,可在变量前也可在变量后。扩展赋值运算符:+=,-=,*=,/=,%=任何类型与字符串连接,结果都会变为字符串型。:逻辑非(取反),非真则假,非假则真。赋值:=、+=、-=、*=、/=、%=关系:>、<、>=、<=、==、!算术:+、-、*、/、%、++、–若两边出现了字符串,则做字符串连接。%:取模/取余,余数为0即为整除。逻辑:&&、||、!
2023-07-07 16:48:38 31
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人