探秘分布式解决方案: 多机DB带来的挑战——谈数据库的读写分离、非对称复制和数据分发
当网站业务快速发展,数据量不断地上升,那么不可避免的底层DB压力会越来越大。 一般最开始都可以靠更换硬件来解决,加钱上更好的机子是最简单的方案,但这只限于你的增加的硬件费用算起来相对经济以及确实单机能顶得住业务量来说的。 但是在你业务激增的情况下,数据和访问量的增长势必会突破单机的极限,即单 ...
点滴心得,在此分享
当网站业务快速发展,数据量不断地上升,那么不可避免的底层DB压力会越来越大。 一般最开始都可以靠更换硬件来解决,加钱上更好的机子是最简单的方案,但这只限于你的增加的硬件费用算起来相对经济以及确实单机能顶得住业务量来说的。 但是在你业务激增的情况下,数据和访问量的增长势必会突破单机的极限,即单 ...
最近在自己搭一个使用 SpringSecutiryOAuth2 的认证服务器, 这里的接口基于 SpringMVC, 而资源服务器是 SpringCloudGateway 建立的网关层,实现是 WebFlux。 目的是为了在网关层做所有的鉴权操作。 其实一切都还好,ajax 登陆、OAuth2密码模式的 token 获取、token刷新等 都有序进行中。 认证的整个流 ...
现在各种工具、中间件都是在用docker部署了。 安装了docker后 一行run命令就搞定了,确实也方便。 不过有点难受的是有些中间件的配置, 主要是环境变量我根本就不记得。 最近又要在别的服务器上用 docker 部署几个东西, 我就想着每次都临时去自己的旧记录(我有个文档记录) 里翻配置也怪麻烦的。 ...
前情提要: 本来我是有在写一个自己的项目, 有一些配置类想将其配置变得优雅一些,就想着用配置文件的形式。也方便打包编译的时候快速切换不同环境。 由于是SpringBoot项目,那么用配置文件的形式呢,当然少不了@ConfigurationProperties 这个注解 使用了这个注解来将配置文件的值注入到配置类之中呢,我还不满足 ...
上一篇文章: RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗? 里最终得出的结论: RabbitMQ 死信机制可以作为延时任务这个场景的解决方案 但是,由于 RabbitMQ 消息死亡并非异步化,而是阻塞的。所以无法作为复杂延时场景——需要每条消息的死亡相互独立这种场景 下的解决方案。 如果说,果真我的 ...
nodejs 这玩意,写法基本上和 js 是差不多的。 想着到时候微服务跨语言调用的时候说不准也能有机会用到,就看了看。 也挺简单的,如果是指增删改查之类的话。 不过起个服务、写写增删改查着实没意思,所以今天写了个爬虫玩玩 git地址: https://github.com/skypyb/anime-spider 运行起来(如果你的 ...
相信泛型做 Java 开发的都不陌生,也是天天接触的玩意了。不过真正自己写代码玩泛型玩的比较溜的我看还是比较少的。 基础应用、泛型是什么 这些东西就不说了。J2EE的东西到处都有,而且在职的 Java 开发看这种基础肯定没什么意思。 这篇主要就说一些泛型相关的骚操作。把泛型,给他玩的灵性起来。 ...
引言 这篇主要表明先开个坑, 后续能填多少是多少。反正坑也有几个没填完的。 比如: 探秘分布式解决方案啦(目前4篇) 微服务组件使用啦(目前10篇) — [ 2019-12-15数据 ] 慢慢来吧。 目前想法是能写出这么几篇文章: 泛型骚操作、枚举骚操作、链式调用法设计、将 Java8 的Stream终止操作玩出花、解 ...
为了解决在分布式系统中需要对某个资源进行全局的一个非重复ID生成,所以有了分布式ID这么一个概念
在分布式应用下,像分库分表的这种场景是很常见的, 这个时候如果还是用数据库本身的自增的话,那多个数据库ID肯定会重复。
比如订单表由于数据过多,分到了多个数据库中存储的话,那么这个ID要如何生成呢?
还是以原来的逻辑进行自增的话,那就会出现这种情况: 数据库A里边有订单1、2、3 , 数据库B里边也有个订单1、2、3, 这在业务逻辑上就冲突了。
Read more »