- 博客(51)
- 收藏
- 关注
原创 13. springCloud AlibabaSeata处理分布式事务
本文全面介绍了分布式事务解决方案Apache Seata的核心概念、工作原理及实战应用。主要内容包括: 核心问题:分析了微服务架构下跨数据库/系统的分布式事务挑战,以及传统单机事务的局限性。 Seata架构: 采用TC(协调者)、TM(事务管理器)、RM(资源管理器)三层架构 支持XID全局事务ID的传递和管控 提供AT、TCC、SAGA、XA四种事务模式 AT模式详解: 通过数据源代理实现无侵入 两阶段提交机制:记录前后镜像+异步提交/补偿回滚 全局锁机制保证隔离性 实战案例: 订单-库存-账户三服务业务
2025-06-01 10:00:00
1188
原创 12.springCloud AlibabaSentinel实现熔断与限流
Sentinel是阿里巴巴开源的一款面向分布式、多语言异构化服务架构的流量治理组件,提供流量控制、熔断降级、系统保护等功能。其核心功能包括: 流量治理:支持QPS限流、线程数限流、热点参数限流等多种策略,可防止系统被突发流量击垮。 熔断降级:通过慢调用比例、异常比例等策略自动熔断不稳定服务,避免级联故障。 系统保护:根据系统负载(CPU、RT等)动态调整流量入口,保障系统稳定性。 Sentinel特色: 生产验证:支撑阿里双十一大促核心场景 多语言支持:提供Java/Go/C++/Rust等实现 丰富生态:
2025-06-01 09:30:00
824
原创 11.springCloud AlibabaNacos服务注册和配置中心
Nacos是一个面向云原生应用的动态服务发现、配置管理和服务管理平台,由阿里巴巴开源。它集成了注册中心(如Eureka)和配置中心(如Spring Cloud Config)的功能,支持服务发现、动态配置管理和流量管理。Nacos提供AP和CP两种一致性模式,默认采用AP模式以保证高可用性,同时支持多环境配置隔离(如开发、测试、生产)通过Namespace、Group和DataId的灵活组合。其核心优势包括动态配置刷新、多数据中心支持、健康检查及丰富的扩展机制,适用于微服务和云原生架构。通过简单的启动命令(
2025-05-31 10:00:00
617
原创 10.springCloud Alibaba入门简介
SpringCloud Alibaba是由阿里巴巴开源的微服务开发一站式解决方案,2018年10月正式加入Spring Cloud官方孵化器。它提供Sentinel(流量控制)、Nacos(服务发现)、RocketMQ(消息系统)、Seata(分布式事务)等核心组件,并集成阿里云OSS、SchedulerX、SMS等服务。支持服务限流降级、配置管理、消息驱动、分布式事务等功能。不同版本适配Spring Cloud 2023(JDK17+)至Edgware(JDK1.7+),开发者可通过简单注解快速构建分布式
2025-05-31 09:45:00
712
原创 9.Gateway新一代网关
CIDR(Classless Inter-Domain Routing,无类域间路由)是一种用于划分和分配IP地址的方法,其核心思想是将IP地址划分为前缀和后缀两部分,其中前缀表示网络的标识,而后缀表示主机的标识。总之,Spring Cloud Gateway在构建微服务架构中起到了重要的作用,不仅可以作为反向代理来转发请求,还提供了丰富的功能来增强系统的安全性、稳定性和可观察性。以上介绍的鉴权、限流、熔断和日志监控是其中的核心功能之一,可以根据具体的需求和场景进行灵活配置和扩展。
2025-05-31 09:30:00
977
原创 7.CircuitBreaker断路器
摘要:本文介绍了Resilience4j断路器(Circuit Breaker)在微服务架构中的应用。主要内容包括: 断路器概述:解决分布式系统中的服务雪崩问题,通过快速熔断、服务降级等方式提高系统弹性。 Resilience4j核心功能实现: 熔断机制:基于失败率或慢调用率触发熔断,提供OPEN/HALF_OPEN/CLOSE三种状态转换 舱壁隔离:通过信号量或线程池限制并发请求数量 限流保护:采用各类算法(令牌桶、滑动窗口等)控制请求速率 实战案例: 配置熔断阈值(如6次访问失败率50%触发熔断) 实现
2025-05-30 18:15:00
907
原创 8.Sleuth(Micrometer)+ZipKin分布式链路追踪
Brave是一个开源的分布式跟踪工具,它可以帮助用户在分布式系统中跟踪请求的流转,它使用一种称为"跟踪上下文"的机制,将请求的跟踪信息存储在请求的头部,然后将请求传递给下一个服务。在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。在大规模分布式与微服务集群下,如何尽可能精确的梳理出服务之间的依赖关系,并判断出服务之间的依赖关系是否合理。
2025-05-30 18:15:00
1649
原创 6.OpenFeign服务接口调用
OpenFeign服务调用实践指南 OpenFeign是SpringCloud中声明式的Web服务客户端,简化了微服务间的HTTP调用。通过@FeignClient注解定义接口即可实现远程调用,并内置负载均衡功能。本文介绍了OpenFeign的基本使用步骤和高级特性: 开发流程 创建消费者模块,添加OpenFeign依赖 定义Feign接口(如PayFeignApi),标注@FeignClient指定服务名 通过主启动类@EnableFeignClients激活功能 核心特性 超时控制:通过yml配置con
2025-05-29 18:30:00
815
原创 5.LoadBalancer负载均衡服务调用
摘要:Ribbon作为客户端负载均衡工具已进入维护模式,Spring官方推荐使用spring-cloud-loadbalancer作为替代方案。LoadBalancer支持RestTemplate和WebClient,通过本地缓存服务列表实现RPC调用,与Nginx服务端负载均衡形成对比。文章详细介绍了LoadBalancer的轮询/随机算法原理、Consul持久化配置方法,并通过案例演示了从Ribbon迁移到LoadBalancer的具体步骤,包括算法切换(默认轮询改为随机)和自定义负载均衡策略的实现。测
2025-05-29 18:15:00
1172
原创 4.Consul服务注册与发现
HashiCorp是一家非常知名的基础软件提供商,很多人可能没听过它的名字,但是其旗下的6款主流软件,Terraform、Consul、Vagrant、Nomad、Vault,Packer 相信不少程序员都听说或使用过,尤其是Consul使用者不尽其数。微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。就拿数据库配置来说吧,如果每个微服务使用的技术栈都是相同的,则每个微服务中关于数据库的配置几乎都是相同的,有时候主机迁移了,我希望一次修改,处处生效。
2025-05-28 18:04:16
1006
原创 3.微服务架构编码Base工程模块构建
本文介绍了基于Spring Cloud微服务架构的支付系统开发过程。主要内容包括: 系统架构设计:采用微服务模式,包含支付服务(8001)和订单服务(80)两个模块,通过RestTemplate进行服务间调用。 技术实现: 使用Spring Boot构建基础服务 MyBatis实现数据持久化 通用Mapper实现快速开发 Swagger3提供API文档 全局异常处理和统一响应格式 开发流程: 创建父工程管理依赖版本 开发支付服务模块(8001) 开发订单服务模块(80) 抽取公共组件到api-commons
2025-05-26 18:03:09
635
原创 9.VMware虚拟机硬盘扩容详细教程【亲测有效】
Hex代码输入8e(将分区的类型更改为Linux LVM),内存扩容很简单,直接找到虚拟机的设置选项,调整内存大小即可。必须先将所有的快照全部都删除干净才可以选择扩容。p之后的东西都选择为默认【3次回车即可】,3.此时可以点击【扩展】分区号根据默认输入3,可以查看到新的物理卷。
2024-10-01 01:00:00
2944
3
原创 ESXI识别服务器磁盘,虚拟机显示无效
系统意外断电识别不到磁盘的情况下可以管理-》硬件-》搜索磁盘名称,选择切换直通,则虚拟机正常。ESXI识别服务器磁盘,虚拟机显示无效。
2024-09-30 21:00:00
1207
原创 2.关于Cloud各种组件的停更/升级/替换
备注:黑色部分是springcloud社区原版,红色的是SpringCloud Alibaba。备注:java所使用的cloud组件主要是以上主流组件部分。备注,如果被remove掉的组件,不再使用。
2024-09-13 00:35:03
361
原创 1.SpringCloud与SpringCloud Alibaba
为了避免SpringCloud版本号与子项目版本号混淆,SpringCloud版本采用了名称而非版本号的命名,这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序。当SpringCloud的发布内容积累到临界点或者一个重大BUG被解决后,会发布一个"service releases"版本,简称SRX版本,比如Greenwich.SR2就是SpringCloud发布的Greenwich版本的第2个SRX版本。备注:本文章定稿使用的三者的版本,已确认三者版本的适配匹配度。
2024-09-13 00:23:13
751
原创 String、StringBuffer和StringBuilder的详解
1.值的可变性String内部的value值是final修饰的,所以,它是不可变类;因此,每次修改String的值,都会产生一个新的对象。StringBuffer和StringBuilder是可变类,它们在字符串变更的时候,不会产生新的对象。2.线程安全String是不可变类,所以它是线程安全的。StringBuilder不是线程安全的。StringBuffer是线程安全的,因为它的每个操作方法都加了synchronized同步关键字。单线程情况下,建议使用StringBuilder。
2023-02-26 13:04:01
6380
转载 Redis 内存高速缓存数据库(三)——Redis持久化
持久化(persistence)Redis 持久化 Redis 提供了多种不同级别的持久化方式: RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis协议的格式来保存,新命令会被...
2018-04-22 20:34:53
1055
转载 Redis 内存高速缓存数据库(二)——Redis使用
Redis 五种类型的存取所需jar包 commons-pool.jar jedis-2.1.0.jarpackage com.syz.jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class RedisClient {
2018-04-22 19:51:33
752
原创 MyEclipse基本配置---自定义注释
前言:我们在开发项目时候经常会用到一些注解,正好最近重装系统后,许多东西都需要重新配置,以下是对Myeclipse注解的自定义注解。 一.Myeclipse自定义注解路径Window->Preference->Java->Code Style->Code Template->Comments二.编辑自定义注解文件 (Files) 注释标签:/** * @Title:${file_na
2018-04-05 20:53:45
947
原创 java提高篇—主线程等待分支线程执行后才执行的方法
最近打算去面试,查找一些面试题,看到京东的面试题中题,将查到的进行了总结,希望能对面试的同行有帮助。主线程等待分支线程执行后才执行方法有以下几种:1. 使用countdownlatch 解释:CountDownLatch是一个同步辅助类,通过它可以完成类似于阻塞当前线程的功能,即:一个线程或多个线程一直等待,直到其他线程执行的操作完成。 缺点:事先必须知道要多少个线程...
2018-03-01 17:56:00
746
原创 JAVA并发提高篇—并发模型
多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future、Master-Worker、Guard Susperionsion(保护性暂挂模式)、不变模式、生产者-消费者 模式;jdk除了定义了若干并发的数据结构,也内置了多线程框架和各种线程池; 锁(分为内部锁、重入锁、读写锁)、ThreadLocal、信号量等在并发控制中发挥着巨大的作用。一、F...
2018-02-27 23:42:59
1525
原创 java总结——JVM垃圾回收器、回收算法、垃圾回收器使用场景
图中展示了7种不同分代的收集器: Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1; 新生代收集器:Serial、ParNew、Parallel Scavenge; 老年代收集器:Serial Old、Parallel Old、CMS; 整堆收集器:G1;两
2018-02-26 13:29:22
4108
转载 java的四舍五入
在讲解之间我们先看如下一个经典的案例:public static void main(String[] args) { System.out.println("12.5的四舍五入值:" + Math.round(12.5)); System.out.println("-12.5的四舍五入值:" + Math.round(-12.5)); }Outp...
2018-02-25 11:59:41
194
翻译 MAVEN详述
MAVEN 配置 1. 环境变量在path中输入%MAVEN_HOME%\bin; 新建环境变量MAVEN_HOME 添加变量地址 测试 输出 mvn -v Maven自定义本地目录(Maven中央库) 默认存jar包的中央库,本地仓库。 该值表示构建系统本地仓库的路径,默认值为$(user.home)/.m2/reposi...
2018-02-01 12:22:09
651
原创 javascript
1.什么是javascript JS 是一种网页编程语言 它可以对页面增加 交互行为它是一种基于对象 和 事件驱动的 解释性脚本语言。直接嵌入html 页面 由浏览器来执行。2.JS的特点 可以在任何编辑工具 上编写 由浏览器执行 解释型脚本 不需要编译 而是逐行执行 有很多的对象类型 基于对象的语言适合: 客户端的计算
2017-09-23 22:51:18
464
原创 MongoDB缓存技术总结
MongoDB简介MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个基于分布式文件存储的数据库 MongoDB是介于NoSQL和关系型数据库之间的一款产品 MongdoDB是基于C++语言编写 MongoDB具有查询语言、索引、Key-Value存储结构 MongoDB存储
2017-09-19 23:49:22
2915
原创 MVC分层架构
MVC即模型-视图-控制器,将应用程序的逻辑层与展现层进行分离的一种设计模式。传统的MVC包括三个方面:模型、视图、控制器。 模型,关注数据处理; 视图,关注数据显示和报表处理; 控制器,负责协调模型和视图三层架构三层架构重点内容分层架构一般为三层:表示层、业务逻辑层(或领域层)、数据访问层。 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他
2017-09-18 21:58:24
11331
原创 Redis 内存高速缓存数据库(一)——Redis知识理解
NoSQL和关系型数据库区别 NoSQL非关系型数据库:Redis、MongoDB、HBase等,基于Key-Value存储,采用命令操作 关系型数据库:Oracle、MySQL、DB2、SQLServer等,基于表结构存储,采用SQL操作Redis简介 Reidis是由意大利人 Salvatore Sanfilippo(网名:antirez)开发的一款内...
2017-09-18 17:38:31
5430
原创 oracle数据库总结(一)
oracle数据库SQL 语句的分类 1.1.SELECT 语句 DQL 数据查询语句1.2.DML语句(data manipulation language) 数据操作语句INSERT 增加DELETE 删除UPDATE 修改1.3.DDL语句(data define language)数据定义语句CAREATE TABLE 建立表DROP
2017-09-17 23:33:30
443
原创 MYSQL总结
MySQL简介 MySQL属于小型关系型数据库。大型有Oracle、DB2更稳定。 MySQL包含很多库、库中包含表,库可以被多个不同用户访问。 Oracle包含库、库中包含很多对象,有表,序列,索引,函数,过程。用户创建表自己访问。 拥有由于其体积小、速度快、总体拥有成本低,开放源码的特点MySQL和Oracle 使用上区别 1.主键自增方式不同、 Orac
2017-09-17 23:17:34
295
原创 Nginx+Tomcat负载均衡集群总结
Nginx+Tomcat负载均衡集群 什么是分布式?不同的业务,不同的功能,部署到不同的服务器 什么是集群?相同的业务,相同的功能,部署到多台服务器 什么是负载?负载用户响应请求到不同的服务器,减轻服务器的压力 云端服务器?可以配置服务器,增加服务器、删除服务器 NginxNginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代
2017-09-17 21:28:44
531
1
翻译 SSH整合技术
Spring+HibernateSSH整合 搭建struts应用引入需要的jar包 commons-fileupload-1.2.1.jar 文件上传 commons-logging-1.0.4.jar 日志包 freemarker-2.3.13.jar Sturts2的所有UI标记 ognl-2.6.11.jar
2017-09-17 16:49:47
498
原创 Hibernate框架总结
Hibernate框架 简介 Hibernate是一个典型的ORM框架。可以实现对象和记录之间的转化,从而完成数据库的访问操作,为应用程序构建一个持久层。Hibernate框架主要结构1. hibernate.cfg.xml主配置文件,用于定义数据库连接参数和框架参数。2. 实体类用于实现和数据库表记录的映射,参考表结构编写3. 映射描述信息- 可以用XML描述,需要编写hbm.xml文
2017-09-17 12:27:20
594
转载 JdbcTemplate的总结
JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句; update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句; batchUpdate方法用于执行批处理相关语句; query方法及queryForXXX方法:用于执行查询相关语句; call方法:用于执行存储过
2017-09-17 12:09:18
406
原创 Struts2框架总结
Struts2简介介绍 Struts1–>Struts2–>Spring MVC Struts1(Apache)–>Webwork(opensymphony)–>Struts2(Apache)2. 结构和流程 基于MVC结构(xwork),用于开发Java Web程序。 spring mvc struts2 mvc 对比
2017-09-17 11:33:46
314
原创 SSM框架整合技术
SSM(Spring(IOC和AOP)+SpringMVC+MyBatis) 总结:重中之中 1. 搭建Spring+MyBatis环境 - 引入spring开发包和applicationContext.xml - 引入mybatis开发包和sqlmap-config.xml - 引入mybatis-spring.jar (Sq
2017-09-17 02:15:10
868
原创 MyBatis框架总结
MyBatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括
2017-09-17 01:56:29
444
原创 Spring框架总结
简介 创立于 2003年 , 是为了解决企业级开发的复杂性的! 是一个分层的se/ee(javase和java ee)一站式轻量级开源框架作用: 1.Spring是一个开元的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入; 2.Spring的IOC和AOP应用,将组件的耦合度降至最低,即解耦,便于系统的维护和升级; 3.可以与第三方框架和技
2017-09-17 01:38:03
16321
原创 JDBC数据库连接技术
1.JDBC 概念 java database conactivity java 数据库连接技术 程序员 使用java语言操作数据的技术 使用框架操作数据库: mybatis、hibernate2.JDBC 简介 SUN 公司为了简化和统一对数据库的操作制定了JDBC 的接口规范。 然后由各大数据库厂商 提供 java连
2017-09-16 23:07:21
332
zipkin-server-3.4.4-exec
2025-01-20
apache-seata-2.2.0-incubating-src
2025-01-20
consul-1.20.2-linux-386.zip
2025-01-20
consul-1.20.2-windows-386
2025-01-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人