随笔分类 -  微服务

如何防止API参数篡改?
摘要:目前所有的系统架构都是采用前后端分离的系统架构,那么就不可能避免的需要服务对外提供API,那么如何保证对外的API的安全呢? 即生鲜电商中API接口防止参数篡改和重放攻击 目录 1. 什么是API参数篡改? 说明:API参数篡改就是恶意人通过抓包的方式获取到请求的接口的参数,通过修改相关的参数,达到 阅读全文

posted @ 2023-10-26 16:18 ExplorerMan 阅读(267) 评论(0) 推荐(0)

雪花算法snowflake分布式id生成原理详解,以及对解决时钟回拨问题几种方案讨论
摘要:UUID:Java自带的生成一串唯一随机36位字符串,可以保证唯一性,但是采用无意义字符串,无法有序递增,且数据量大时查询效率比较低。 采用数据库自增序列: 读写分离时,只有主节点可以进行写操作,可能有单点故障的风险, 分表分库,数据迁移合并等比较麻烦。 雪花算法:它是Twitter开源的由64位整 阅读全文

posted @ 2022-11-16 11:27 ExplorerMan 阅读(4189) 评论(0) 推荐(0)

分布式任务调度的解决方案
摘要:简介 随着系统规模的发展,定时任务数量日益增多,任务也变得越来越复杂,尤其是在分布式环境下,存在多个业务系统,每个业务系统都有定时任务的需求,如果都在自身系统中调度,一方面增加业务系统的复杂度,另一方面也不方便管理,因此需要有一个任务平台对分散的任务进行统一管理调度,基于目前的情况,任务平台需要支持 阅读全文

posted @ 2022-03-14 16:11 ExplorerMan 阅读(1133) 评论(0) 推荐(0)

微服务之-ServiceMesh
摘要:今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,是否感觉有点落伍了?那么到底什么是ServiceMesh?它诞生的背景是什么 阅读全文

posted @ 2021-07-12 19:33 ExplorerMan 阅读(109) 评论(0) 推荐(0)

亲历者说 | 完整记录一年多考拉海购的云原生之路 转
摘要:简介: 考拉海购的整个云化改造是从 2019 年 10 月份开始的,当时的唯一目标就是短时间内快速完成迁移。在不到 4 个月的时间里,考拉团队唯一考虑的是如何以最快的速度完成使命,云原生是我们选择的最合适的一条路。 前言 考拉海购的整个云化改造是从 2019 年 10 月份开始的,当时的唯一目标就是 阅读全文

posted @ 2021-01-25 11:12 ExplorerMan 阅读(185) 评论(0) 推荐(0)

consul实现分布式锁
摘要:3篇关于分布式锁的文章,可以结合看:consul实现分布式锁:https://www.cnblogs.com/jiujuan/p/10527786.htmlredis实现分布式锁:https://www.cnblogs.com/jiujuan/p/10595838.htmletcd实现分布式锁:ht 阅读全文

posted @ 2020-10-31 11:51 ExplorerMan 阅读(209) 评论(0) 推荐(0)

Consul的分布式锁实现
摘要:构建分布式系统的时候,经常需要控制对共享资源的互斥访问,就涉及到分布式锁(也称为全局锁)的实现,基于目前的各种工具,我们已经有了大量的实现方式,比如:基于Redis的实现、基于Zookeeper的实现。本文将介绍一种基于Consul 的Key/Value存储来实现分布式锁以及信号量的方法。分布式锁实 阅读全文

posted @ 2020-10-30 18:40 ExplorerMan 阅读(664) 评论(0) 推荐(0)

Sidecar模式:下一代微服务架构的关键
摘要:Sidecar设计模式正在收到越来越多的关注和采用。作为Service Mesh的重要要素,Sidecar模式对于构建高度高度可伸缩、有弹性、安全且可便于监控的微服务架构系统至关重要。而Service Mesh也已经被证明,正在改变企业IT的“游戏规则”,它降低了与微服务架构相关的复杂性,并提供了负 阅读全文

posted @ 2020-05-15 17:47 ExplorerMan 阅读(793) 评论(0) 推荐(0)

Consul的反熵
摘要:熵 熵是衡量某个体系中事物混乱程度的一个指标,是从热力学第二定律借鉴过来的。 熵增原理 孤立系统的熵永不自动减少,熵在可逆过程中不变,在不可逆过程中增加。熵增加原理是热力学第二定律的又一种表述,它更为概括地指出了不可逆过程的进行方向;同时,更深刻地指出了热力学第二定律是大量分子无规则运动所具有的统计 阅读全文

posted @ 2020-05-14 15:12 ExplorerMan 阅读(301) 评论(0) 推荐(0)

如何用Github钩子做自动部署
摘要:最近机缘巧合的购置了域名和服务器,不用实在是浪费,再加上一直没有属于自己的个人网站,所以打算用hexo在服务器上玩一下,这样也就不用再纠结用Github pages还是Gitee pages了。当然,今天的主题并不是博客搭建,而是如何利用Github的钩子,将博客代码部署到服务器上。 毕竟Githu 阅读全文

posted @ 2020-04-26 15:27 ExplorerMan 阅读(391) 评论(0) 推荐(0)

微服务最强开源流量网关Kong
摘要:前言在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务。甚至有时候需要对请求进行一些安全、负载均衡、限流、熔断、灰度等中间操作,基于此类种种的客观需求一个类似综合前置的系统就产生了,这就是API网关(API Gateway)。 阅读全文

posted @ 2020-04-07 18:32 ExplorerMan 阅读(955) 评论(0) 推荐(0)

怎么做高并发系统的限流
摘要:在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。本文结合作者的一些经验介绍限流的相关概念、算法和常规的实现方式。 缓存 缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪。使用缓存不单单能够提升系统访问速度、提高并发访问量,也是保护数据库、保护系统的有效 阅读全文

posted @ 2020-03-18 19:09 ExplorerMan 阅读(662) 评论(0) 推荐(0)

大型微服务框架设计实践【转】
摘要:大家好,我是杜欢,很荣幸能代表滴滴来做分享。我来滴滴的第一件事情就是帮助公司统一技术栈,在服务端我们要把以前拿 PHP 和 Java 做的服务统一起来,经过很多思考和选择之后我们决定用 Go 来重构大部分业务服务。现在,滴滴内部已经有非常多的用 Go 实现的服务和大量 Go 开发者。 《⼤型微服务框 阅读全文

posted @ 2020-02-06 18:26 ExplorerMan 阅读(381) 评论(0) 推荐(0)

微服务全流程分析
摘要:转眼已经2020,距离微服务这个词落地已经过去好多年!(我记得2017年就听过这个词)。然而今天我想想什么是微服务,其实并没有一个很好的定义。为什么这样说,按照微服务的定义: 微服务架构就是将一个庞大的业务系统按照业务模块拆分成若干个独立的子系统,每个子系统都是一个独立的应用,它是一种将应用构建成一 阅读全文

posted @ 2020-01-07 12:57 ExplorerMan 阅读(389) 评论(0) 推荐(0)

token 的设计方案
摘要:网上关于移动客户端与服务器数据传输之间的 token 的细节使用好像都没有详细的说明,基本都是一笔带过。对于简简单单的加入一个固定的参数 token,其实是很容易被抓包的。 介绍 token 是登录之后服务器返回的一段加密字符串(加密算法自己与后台商量如何加解密),存储到本地。在客户端请求服务端数据 阅读全文

posted @ 2019-12-31 17:54 ExplorerMan 阅读(1762) 评论(0) 推荐(0)

单点登录(SSO)看这一篇就够了
摘要:背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。 但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员 来说,很不方便。于是,就想到是不是可以在一个系统 阅读全文

posted @ 2019-12-31 17:40 ExplorerMan 阅读(476) 评论(0) 推荐(0)

微服务认证鉴权的四种方案
摘要:在微服务流行的时代,认证鉴权方法总体上和之前差不多,只是由于场景架构不同,适用于它的方案也有不同。 David Borsos 在伦敦的微服务大会上提出了四种方案: 1. 单点登录(SSO) 这种方案意味着每个面向用户的服务都必须与认证服务交互,这会产生大量非常琐碎的网络流量和重复的工作,当动辄数十个 阅读全文

posted @ 2019-12-31 17:40 ExplorerMan 阅读(5313) 评论(0) 推荐(0)

Redis 4.0.10 文档(分布式锁)
摘要:Redis分布式锁 在许多环境中,分布式锁是一种非常有用的原语,其中不同的进程必须以互斥的方式与共享资源一起运行。 有许多库和博客文章描述了如何使用Redis实现DLM(分布式锁管理器),但是每个库都使用不同的方法,而且许多库使用的是一种简单的方法,与稍微复杂的设计相比,可以获得较低的保障。 此页面 阅读全文

posted @ 2019-12-23 21:31 ExplorerMan 阅读(531) 评论(0) 推荐(0)

Redis 漏斗限流 (redis-cell)
摘要:上述的漏斗限流算法,在Redis的模块中已经内置实现了一个,具体介绍请参见Github redis-cell详细介绍 笔者安装在MacOS上,基本没有问题: # 下载mac版本安装包https://github.com/brandur/redis-cell/releases# 解压tar -zxf 阅读全文

posted @ 2019-12-23 17:25 ExplorerMan 阅读(1696) 评论(0) 推荐(0)

python分布式环境下的限流器
摘要:项目中用到了限流,受限于一些实现方式上的东西,手撕了一个简单的服务端限流器。 服务端限流和客户端限流的区别,简单来说就是: 1)服务端限流 对接口请求进行限流,限制的是单位时间内请求的数量,目的是通过有损来换取高可用。 例如我们的场景是,有一个服务接收请求,处理之后,将数据bulk到Elastics 阅读全文

posted @ 2019-12-23 17:23 ExplorerMan 阅读(271) 评论(0) 推荐(0)

导航