探秘分布式解决方案: 分布式ID——论高可用全局ID的诞生之道
为了解决在分布式系统中需要对某个资源进行全局的一个非重复ID生成,所以有了分布式ID这么一个概念
在分布式应用下,像分库分表的这种场景是很常见的, 这个时候如果还是用数据库本身的自增的话,那多个数据库ID肯定会重复。
比如订单表由于数据过多,分到了多个数据库中存储的话,那么这个ID要如何生成呢?
还是以原来的逻辑进行自增的话,那就会出现这种情况: 数据库A里边有订单1、2、3 , 数据库B里边也有个订单1、2、3, 这在业务逻辑上就冲突了。
Read more »
探秘分布式解决方案: 分布式事务——微服务架构下的主流解决方案之TCC
说完了分布式事务最核心的思想(2PC) –> [探秘分布式解决方案: 分布式事务——从核心思想之2PC(两阶段提交)开始] http://skypyb.com/2019/11/jishu/1149/
那么现在进入到更加复杂的场景。像这种跨库调用之类的,一线互联网公司早就不玩这一套东西了。这都9102年了,上来就是微服务架构。
我这么多服务,你整个啥跨库调用呢?一个服务可能同时调用多个其他的服务。这多个其他的服务中都要执行SQL语句,修改落实到服务所对应的数据库之中。
Read more »
从编程到写作,论博客对于程序员的意义
像我这博客也一直更新近两年了,其实在IT这个圈子里可以说是比较少见的。
虽说在各种程序员论坛中,总是隔三岔五就有人加博客友链啊、问用什么博客建站工具啊。
但是只要真的点进去看一看就会发现。90% 的博客都是只有10、20篇左右甚至更少的。
不由得令人深思,到底是为什么,一个博客那么难以坚持下来呢?
Read more »
探秘分布式解决方案: 分布式事务——从核心思想之2PC(两阶段提交)开始
为什么要有分布式事务?
本地单机事务,有点工作经验的肯定不陌生,主要用于处理操作量大,复杂度高的数据,一般都由数据库自己实现。
开启一个事务,进行了多个对数据库进行更新(增删改)的语句后,可以自由的选择 commit 或 rollback 来结束事务。
可以从根源上保证多个数据集合的同步。
比如一个订单系统,用 ...
Read more »
为Spring Cloud Gateway加上全局过滤器,并使用其内部自带的令牌桶算法实现(Redis)来进行限流
既然是一个网关。那么全局过滤器肯定是少不了的一个存在。像是鉴权、认证啥的不可能每个服务都做一次,一般都是在网关处就搞定了。
Zuul他就有很强大的过滤器体系来给人使用。
Gateway当然也不会差这么点东西。
对于SpringCloud体系来说,一切的实现都是那么的简单。那么废话不多说,直接开始写起来。
Gateway内 ...
Read more »
三个文件帮你搞定 Spring Cloud Gateway (Alibaba体系)
在微服务架构中,网关是必不可少的重要组件。
这关系到了客户端“如何访问”每个服务。
以前主流的方式就是使用Netfilx的Zuul组件。但是,因为某些奇妙的原因,Netfilx全家桶都停止维护了。
我之前也写过Zuul的配置和使用方法:
微服务路由解决方案: "Zuul" 服务搭建;以及自定义Zuul过滤器 ...
Read more »
国庆长假刚过,说说近况
不要好奇为啥我这博客名字从编码妙妙屋变成了编程小屋。
那是因为我现在正在更新备案,编码妙妙屋这名字不能用,可是我以前的备案就是编码妙妙屋通过的,2019年迷惑行为+1
国庆啥都没干,笔记本也没有带回家,就纯玩了7天。太怠惰了,让我心有愧疚。
不过除了国庆假期之外我还是有在好好提升自己的,慢慢 ...
Read more »
Spring Cloud Alibaba 使用上 Feign+Sentinel 完成熔断
说起Feign,那又是老东西了啊
我以前写Netfilx的时候就详细讲过Feign这玩意,其实用起来基本是一样的。
以前的文章地址 : 分布式微服务项目如何使用 Feign 实现声明式 REST 调用,以及自定义 Feign 配置
虽说切换到了Alibaba,但是也没啥变化,Feign该怎么用就怎么用,这就不详细说了。主要还是Sentinel
其实Se ...
Read more »
中秋佳节,来玩一波 SpringCloudAlibaba 之 Nacos 服务提供与消费实战
中秋佳节当天,人在异乡,无法和家人团聚,既然如此 不如提升一波自己的姿势水平,免得浪费这假期大好光阴。
说道微服务,现在可不流行Netfilx那一套了, 现在都9102年9月了,Spring Cloud Aliabba都已经孵化完毕,再加上Netfilx将他旗下的项目通通打入冷宫,现在在不学习SpringCloudAlibaba体系就赶不上时代 ...
Read more »
写了个SpringSecurity的demo,标准的JWT+RBAC认证授权流程,使用的都是SpringSecurity提供的函数/接口
地址:
https://github.com/skypyb/code_demo/tree/master/spring-security-demo
内附 SQL 脚本
标准的RBAC权限设计,基于动态查询数据库的权限判定(以接口为粒度,即Request URL+Request Method)、基于JWT的认证授权流程。
当然,以上都是在SpingSecurity下实现的。
不得不吐槽一句:
SpingSecurity 真的 ...
Read more »