读写分离可以提高系统吞吐量,在网上看了很多SpringBoot实现读写分离的文章,大部分是基于Spring AOP 硬编码Java代码去实现的,代码侵入性较大,原理是:如果调用select、get开头的方法,就调用从库,否则调用主库,本篇将基于当当开源的sharding-jdbc实现读写分离,看名字
目前Nacos提供了两种方式可以实现不同应用之间的配置共享 使用shared-dataids 首先需要到Nacos上创建一些共享配置 common1.yaml common1: key1: value1 common2.yaml common2: key2: value2 修改项目
前言 因为项目需要,需要在项目运行过程中能够动态修改数据源(即:数据源的热更新)。这里以com.alibaba.druid.pool.DruidDataSource数据源为例 第一步:重写DruidAbstractDataSource类 这里为什么要重写这个类:因为DruidDataSource数据
方案一 需求简介 在yml文件动态配置项目名称与项目ID(动态配置通过nacos实现) 因为列表数量很少,又会改动,又不想存数据库单独建个表维护,故通过配置文件的项目列表信息 application.yml 配置 新增/删除/更改 list 即可 projects: list: -
问题描述 Jmeter进行服务压测时出现,或因一段时间未操作数据库断开连接后再次请求建立连接时,服务器拒绝新的连接情况。 Caused by: com.mysql.cj.exceptions.CJException: Access denied for user 'appblog'
原因:注入的SimpleJob与JobScheduler的Bean名称必须不能相同 错误代码 @Configuration public class AJobConfig { @Resource private ZookeeperRegistryCenter regCenter
com.dangdang.ddframe.job.exception.JobConfigurationException: Job conflict with register center. The job 'DownloadReconcileTask' in regist
什么是分布式锁 以前在项目较小时,单机即可处理很多业务。但随着用户增长,单机已经无法满足当今业务。解决方案可能是上集群,但是在多个 JVM 中都有同一个变量。假设多个请求分到不同的 JVM 中,都对变量进行修改,这就造成变量可能会的不正确。 为了防止分布式系统中的多个进程之间相互干扰,需要一个分布式
RabbitMQ延迟队列应用 延迟队列可以实现消息在投递到Exchange之后,经过一定的时间之后再路由到相应的Queue。最后被消费者监听消费。即:生产者投递的消息经过一段时间之后再被消费者消费。 常见业务场景:订单在30分钟内还未支付则自动取消。 该业务的其他实现方案: 使用Redis,设置
场景描述 场景描述:当用户下单后,状态为待支付,假如在规定的过期时间内尚未支付金额,那么就应该设置订单状态为取消。在不用MQ的情况下,我们可以设置一个定时器,每秒轮询数据库查找超出过期时间且未支付的订单,然后修改状态,但是这种方式会占用很多资源,所以在这里我们可以利用RabbitMQ的死信队列。
首先贴上Nacos配置: appblog: response: mapping: key1: Joe.Ye key2: www.appblog.cn risk: enable: false 可以看到配置里面一个maps集合,以下演示如何动态的去读取k
实时生效配置 eureka Eureka可实时更新 eureka: client: service-url: defaultZone: http://127.0.0.1:9999/eureka instance: prefer-ip-address: true
Seata 是阿里巴巴开源的分布式事务中间件,以高效并且对业务0侵入的方式,解决微服务场景下面临的分布式事务问题。 项目说明 本项目演示如何使用Seata Starter完成Spring Cloud应用的分布式事务接入。 参考:https://github.com/alibaba/spring-cl
Sharding-JDBC 是 Apache 旗下的 ShardingSphere 中的一款产品,轻量,引入 jar 即可完成读写分离的需求,可以理解为增强版的 JDBC,现在被使用的较多。 maven 依赖的库 <!-- 当前最新版 sharding-jdbc --> <dep
前言 最近项目中使用阿里的RocketMQ来做消息队列,具体怎么使用RocketMQ不在本文讨论范围之内,其相关帮助文档可以参考如下链接 https://help.aliyun.com/product/29530.html 本文主要记录在使用rocketmq client时,遇到的一些坑,作者