1、AT模式简介 AT模式官网已经给出了很详细的介绍,可以直接看官网 http://seata.io/zh-cn/docs/dev/mode/at-mode.html 2、建立项目 涉及的代码过多,这里只对几个关键的步骤进行说明,完整代码可以到git上下载,AT模式在master分支上,数据库脚本在script目录下 https://gitee.com/WylLoveX/seata.git 2.1、maven依赖 这里我们建立一个spring boot项目,基于2.2.5.RELEASE版本,引入seata和nacos需要的依赖。 spring-cloud-starter-alibaba-seata内部封装了seata分布式事务的XID的传递,引入直接使用,如果不用这个组件,就只能自己解决XID传递的问题; seata-spring-boot-starter的版本号和seata版本保持一致; <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-b.... 有更新! seata+nacos实现AT模式分布式事务 程序人生
1、简介 RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个Topic的消息,每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址,每个Topic中的消息地址存储于多个 Message Queue 中。ConsumerGroup 由多个Consumer 实例构成。 更多信息参考官网:https://github.com/apache/rocketmq/tree/master/docs/cn 2、spring boot集成RocketMQ 2.1、引入依赖 spring boot依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</ar.... 有更新! spring boot整合rocketmq rocketmq
1、简介 spring cloud的负载均衡由ribbon组件实现,ribbon是NetFlix发布的客户端负载均衡器。 2、ribbon负载均衡规则 ribbon负载均衡策略的结构类图 IRule接口中共有三个方法 抽象类AbstractLoadBalancerRule实现了IRule接口,定义了一个ILoadBalancer类型变量,用于ILoadBalancer接口定义了软负载均衡的操作方法。 3、负载均衡策略 3.1、轮询策略 轮询策略在RoundRobinRule类中实现,它将可用服务存储在一个List中,然后定义了一个原子操作类,每次调用就+1,下次调用就把这个值作为List的下标,以此决定要调用哪个服务。 下面是定义,在RoundRobinRule构造函数中,会初始化值为0 3.2、随机策略 随机策略在RandomRule实现,RandomRule定义规则,从现有服务中,随机选择一个服务,具体做法就是根据可选服务数量,选出一个随机数作为下标,获取服务 3.3、根据响应时间分配权重的策略 这个策略由WeightedResponseTimeRule实现,使用这个策略的话,相应.... 有更新! ribbon的几种负载均衡 程序人生
1、nacos简介 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。 服务管理:实现服务CRUD,域名CRUD,服务健康状态检查,服务权重管理等功能 配置管理:实现配置管CRUD,版本管理,灰度管理,监听管理,推送轨迹,聚合数据等功能 元数据管理:提供元数据CURD 和打标能力 插件机制:实现三个模块可分可合能力,实现扩展点SPI机制 事件机制:实现异步化事件通知,sdk数据变化异步通知等逻辑 日志模块:管理日志分类,日志级别,日志可移植性(尤其避免冲突),日志格式,异常码+帮助文档 回调机制:sdk通知数据,通过统一的模式回调用户处理。接口和数据结构需要具备可扩展性 寻址模式:解决ip,域名,nameserver、广播等多种寻址模式,需要可扩展 推送通道:解决server与存储、server间、server与sdk间推送性能问题 容量管理:管理每个租户,分组下的容量,防止存储被写爆,影响服务可用性 流量管理:按照租户,分组等多个维度对请求频率,长链接个数,报文大小,请求流控进行控制 缓存机制:容灾目录,本地缓存,server缓存机制。.... 有更新! spring cloud整合nacos nacos
1、基本概念 1.1、服务雪崩 微服务架构中,一个系统被拆分成多个子服务,这些服务之间存在相互调用关系,某个服务不可用之后,导致调用它的服务不可用,最终导致整个服务链崩溃,就出现服务雪崩。 预防服务雪崩有以下几个方案: 服务熔断:某个服务崩溃后,暂停对该服务的调用; 服务降级:对不是很关键的服务来说,当服务负荷过高或响应过慢,则关闭对该服务的访问,返回一个定义好的兜底数据,等服务负荷降低在开放对该服务的访问; 服务限流:不是核心的服务可以使用服务降级来处理,但是核心的服务一定要保证能够正常访问,因此我们对服务进行限流处理,限制他的并发和请求量,保证服务能够正常运行。 2、Sentinel简介 sentinel是一个轻量级的流量控制、熔断降级Java 组件,是分布式系统的流量防卫兵; Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 更多信息可以参考sentinel的github地址 3、下载安装 在sentinel版本列表上下载自己需要的版本的jar包,然后java -jar启动成功就可以访问了,默认端口是8080,用户名密码都是sent.... 有更新! sentinel nacos
通过设置节点的indeterminate属性为true来标识该节点为半选中状态 function openResourceTreeDialog(roleId?: any){ getSysResourceSelectTree(roleId).then(res=>{ resourceTreeDialog.visible = true; resourceTreeData.value = res.result.selectTreeVo; roleResources.roleId = roleId; setTimeout(()=>{ const checkedKeys = res.result.selectedResources const checkedLeafKeys = [] checkedKeys.forEach((item) => { const node = resourceTreeRef.value!.getNode(item.sysResourceId) if(item.isHalfChecked){ node.indeterminate = true; }el.... element plus设置树节点状态为半加载 程序人生