分布式
文章平均质量分 88
zlt2000
具备多年分布式系统开发和设计经验,专注分享Java、SpringBoot、SpringCloud、分布式系统/微服务、中间件等领域。
请关注我的公众号:陶陶技术笔记
展开
-
如何基于Security框架兼容多套用户密码加密方式
本文分享基于Security的PasswordEncoder来实现兼容多套用户密码加密方式。原创 2023-03-20 08:52:20 · 567 阅读 · 2 评论 -
如何基于Security实现OIDC单点登录?
本文主要是给大家介绍 OIDC 的核心概念以及如何通过对 Spring Security 的授权码模式进行扩展来实现 OIDC 的单点登录。原创 2021-09-28 08:36:02 · 839 阅读 · 3 评论 -
第三方API对接如何设计接口认证?
一、前言在与第三方系统做接口对接时,往往需要考虑接口的安全性问题,本文主要分享几个常见的系统之间做接口对接时的认证方案。 二、认证方案例如订单下单后通过 延时任务 对接 物流系统 这种 异步 的场景,都是属于系统与系统之间的相互交互,不存在用户操作;所以认证时需要的不是用户凭证而是系统凭证,通常包括 app_id 与 app_secrect。app_id与app_secrect由接口提供方提供2.1. Baic认证这是一种较为简单的认证方式,客户端通过明文(Base64编码格式.原创 2021-07-02 08:34:28 · 1601 阅读 · 2 评论 -
Elasticsearch索引生命周期管理方案
一、前言在 Elasticsearch 的日常中,有很多如存储 系统日志、行为数据等方面的应用场景,这些场景的特点是数据量非常大,并且随着时间的增长 索引 的数量也会持续增长,然而这些场景基本上只有最近一段时间的数据有使用价值或者会被经常使用(热数据),而历史数据几乎没有作用或者很少会被使用(冷数据),这个时候就需要对 索引 进行一定策略的维护管理甚至是删除清理,否则随着数据量越来越多除了浪费磁盘与内存空间之外,还会严重影响 Elasticsearch 的性能; 在 Elastic Sta.原创 2020-12-30 08:42:10 · 3961 阅读 · 0 评论 -
ELK多租户方案
一、前言日志分析是目前重要的系统调试和问题排查的重要手段之一,而目前分布式系统由于实例和机器众多,所以构建一套统一日志系统是非常必要的;ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前的主流选择之一。本文主要介绍如何实现一套 ELK日志系统 同时给 多套环境 、多个系统 共同使用/测试,并实现相互之间的数据与视图相互 隔离 互不影响。 二、隔离方式常见的 ELK 架构如下图所示,分别由 Elasticsearch、Logsta.原创 2020-12-07 08:57:00 · 1080 阅读 · 1 评论 -
如何实现对ELK各组件的监控?试试Metricbeat
一、前言开发排查系统问题用得最多的手段就是查看系统日志,ELK 是 Elastic 公司开源的实时日志处理与分析解决方案,已经为日志处理方案的主流选择。而在生产环境中,如何针对 ELK 进行监控,保证各个组件正常运行?如何知道目前的资源是否能承受线上的压力呢?本文主要是以 Elastic Stack 7.x 版本为例,介绍如何监控 ELK 自身的各个组件。 二、总体架构常见的 Elastic Stack 日志系统架构如下其中可使用 Metricbeat 组件作为轻量级监视代理,通过.原创 2020-11-30 09:28:09 · 814 阅读 · 0 评论 -
Dubbo日志链路追踪TraceId选型
一、目的开发排查系统问题用得最多的手段就是查看系统日志,但是在分布式环境下使用日志定位问题还是比较麻烦,需要借助 全链路追踪ID 把上下文串联起来,本文主要分享基于 Spring Boot + Dubbo 框架下 日志链路追踪ID 的实现方案选型思路。 目前大多数分布式追踪系统的思想模型都来自 Google's Dapper 论文全链路追踪的核心思想:为每条请求都单独分配一个唯一的 traceId 用来标识一条请求链路,该 traceId 会贯穿整个请求处理过程的所有服务.原创 2020-09-27 08:58:37 · 1539 阅读 · 0 评论 -
Spring Security如何优雅的增加OAuth2协议授权模式
一、什么是OAuth2协议?OAuth 2.0 是一个关于授权的开放的网络协议,是目前最流行的授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。由于授权的场景众多,OAuth 2.0 协议定义了获取令牌的四种授权方式,分别是:授权码模式:授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与"服务提供商"的.原创 2020-09-02 10:25:00 · 1946 阅读 · 4 评论 -
Spring Security基于Oauth2的SSO单点登录怎样做?一个注解搞定
一、说明单点登录顾名思义就是在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统,免除多次登录的烦恼。本文主要介绍 同域 和 跨域 两种不同场景单点登录的实现原理,并使用 Spring Security 来实现一个最简单的跨域 SSO客户端 。 二、原理说明单点登录主流都是基于共享 cookie 来实现的,下面分别介绍 同域 和 跨域 下的两种场景具体怎样实现共享...原创 2020-03-02 10:35:38 · 1792 阅读 · 0 评论 -
微服务业务监控和行为分析怎么做?试试日志埋点
一、说明互联网公司一般都会有专门的数据团队对公司的一些业务指标负责;为了拿到这些基本的业务指标,一般也要工程团队去配合做一些数据采集工作,于是埋点诞生了。 埋点的方式有很多种,本文主要介绍 日志埋点 这种方式以及实现思路和案例。日志埋点 就是通过程序打印 log 日志的方式进行业务/行为数据的记录 二、总体架构通过 日志埋点 来实现业务监控和行为分析主要...原创 2019-11-11 11:58:19 · 2421 阅读 · 0 评论 -
Spring Cloud Gateway的动态路由怎样做?集成Nacos实现很简单
一、说明网关的核心概念就是路由配置和路由规则,而作为所有请求流量的入口,在实际生产环境中为了保证高可靠和高可用,是尽量要避免重启的,所以实现动态路由是非常有必要的;本文主要介绍 Spring Cloud Gateway 实现的思路,并且以Nacos为数据源来讲解PS:关于 Spring Cloud Zuul 的动态路由请看文章《Spring Cloud Zuul的动态路由怎样做?集成Naco...原创 2019-10-21 13:02:36 · 4552 阅读 · 1 评论 -
Spring Cloud异步场景分布式事务怎样做?试试RocketMQ
在微服务架构中,我们常常使用异步化的手段来提升系统的吞吐量和解耦上下游,而构建异步架构最常用的手段就是使用消息队列(MQ),那异步架构怎样才能实现数据一致性呢?本文主要介绍如何使用RocketMQ的事务消息来解决一致性问题原创 2019-09-23 10:24:13 · 1907 阅读 · 1 评论 -
Apache RocketMQ 消息队列部署与可视化界面安装
一、介绍Apache RocketMQ是一个分布式、队列模型的消息中间件,具有低延迟、高性能和高可靠、万亿级容量和灵活的可扩展性。核心组件由四部分组成:Name Servers,Brokers,Producer 和 Consumer;它们中的每一个都可以水平扩展,而没有单一的故障节点。NameServer:是一个几乎无状态的节点,可集群部署,节点之间无任何信息同步Broker:部署相对...原创 2019-09-17 10:00:38 · 1395 阅读 · 2 评论 -
zuul集成Sentinel最新的网关流控组件
一、说明Sentinel 网关流控支持针对不同的路由和自定义的 API 分组进行流控,支持针对请求属性(如 URL 参数,Client IP,Header 等)进行流控。Sentinel 1.6.3 引入了网关流控控制台的支持,用户可以直接在 Sentinel 控制台上查看 API Gateway 实时的 route 和自定义 API 分组监控,管理网关规则和 API 分组配置。 ...原创 2019-08-19 11:56:37 · 3257 阅读 · 0 评论 -
阿里注册中心Nacos生产部署方案
生产环境中部署`nacos`首先肯定是使用集群模式`cluster`保证高可用,本文主要详细介绍最佳的集群方案怎样搭建与`spring cloud`程序怎样集成原创 2019-08-20 11:12:11 · 6791 阅读 · 3 评论 -
日志排查问题困难?分布式日志链路跟踪来帮你
一、背景开发排查系统问题用得最多的手段就是查看系统日志,在分布式环境中一般使用ELK来统一收集日志,但是在并发大时使用日志定位问题还是比较麻烦,由于大量的其他用户/其他线程的日志也一起输出穿行其中导致很难筛选出指定请求的全部相关日志,以及下游线程/服务对应的日志。 二、解决思路每个请求都使用一个唯一标识来追踪全部的链路显示在日志中,并且不修改原有的打印方式(代码无入侵)使用L...原创 2019-08-15 16:30:26 · 4365 阅读 · 15 评论 -
Spring Boot自定义配置实现IDE自动提示
一、背景官方提供的spring boot starter的配置项,我们用IDE配置的时候一般都有自动提示的,如下图所示而我们自己自定义的配置却没有,对开发非常不友好容易打错配置,那这个是怎样实现的呢?二、提示原理IDE是通过读取配置信息的元数据而实现自动提示的,而元数据在目录META-INF中的spring-configuration-metadata.json 或者...原创 2019-08-21 09:00:01 · 3810 阅读 · 0 评论 -
Spring Cloud Zuul的动态路由怎样做?集成Nacos实现很简单
一、说明网关的核心概念就是路由配置和路由规则,而作为所有请求流量的入口,在实际生产环境中为了保证高可靠和高可用,是尽量要避免重启的,所以实现动态路由是非常有必要的;本文主要介绍实现的思路,并且以Nacos为数据源来讲解 二、实现要点要实现动态路由只需关注下面4个点网关启动时,动态路由的数据怎样加载进来静态路由与动态路由以那个为准,ps:静态路由指的是配置文件里写死的路由配置...原创 2019-08-29 10:10:06 · 3518 阅读 · 2 评论 -
Spring Cloud开发人员如何解决服务冲突和实例乱窜?
一、背景在我们开发微服务架构系统时,虽然说每个微服务都是孤立的可以单独开发,但实际上并非如此,要调试和测试你的服务不仅需要您的微服务启动和运行,还需要它的上下文服务、依赖的基础服务等都要运行;但如果你的系统服务数和依赖比较多呢,那就是一个比较棘手的问题!有没有办法能提高开发效率呢?如上图所示,我们能不能用服务器把所有的服务都部署起来,然后开发只在本地运行自己所负责开发的服务,因为需要依赖其...原创 2019-09-04 15:12:44 · 1651 阅读 · 2 评论 -
Spring Cloud开发人员如何解决服务冲突和实例乱窜?(IP实现方案)
一、背景在我上一篇文章《Spring Cloud开发人员如何解决服务冲突和实例乱窜?》中提到使用服务的元数据来实现隔离和路由,有朋友问到能不能直接通过IP来实现?本文就和大家一起来讨论一下这个问题 二、可行性分析要实现通过IP来隔离和路由的话有一个非常关键的点需要解决,就是怎样实现IP可辨识,意思就是如何区分那个IP是服务器上的,那个IP是开发人员本机的如上图所示其实我们还...原创 2019-09-06 13:23:20 · 2242 阅读 · 0 评论 -
实施微服务架构的关键技术
本文来自CCTC2017大会孙玄的演讲。大家都在提微服务架构,微服务架构到底是什么?它有哪些特点和设计模式?我们在打造微服务架构过程中,这些设计模式在实战当中如何应用?数据的一致性应该如何保证?今天我将针对上述疑问分享一下我的思考。微服务架构特点什么是微服务架构?看下图的这段英文,这是Martin Fowler 在2014年提出来的,微服务架构是一种架构模式,既然是架构模式,那...转载 2019-09-09 14:57:52 · 2099 阅读 · 0 评论 -
Spring Cloud同步场景分布式事务怎样做?试试Seata
在微服务架构下,虽然我们会尽量避免分布式事务,但是只要业务复杂的情况下这是一个绕不开的问题,如何保证业务数据一致性呢?本文主要介绍同步场景下使用Seata的AT模式来解决一致性问题。原创 2019-09-16 08:34:10 · 10122 阅读 · 1 评论