![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IT-微服务架构
文章平均质量分 87
LarryHai6
一直致力于开源技术和软件架构实践,追求业务和技术的最佳实践
| 个人的专业领域包括 大型分布式系统/应用架构设计 云原生架构设计 微服务架构设计 Agile和DevOps最佳实践 DDD设计方法论 数据建模与分析 | 联系方式: 邮件: liuhaidl9@163.com
展开
-
微服务架构系列主题:PowerJob 新一代分布式任务调度与计算框架
PowerJob是新一代分布式任务调度与计算框架,支持CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,能让您轻松完成作业的调度与繁杂任务的分布式计算。转载 2023-03-14 08:34:43 · 646 阅读 · 0 评论 -
微服务架构系列主题:如何保障 MySQL 和 Redis 的数据一致性?
之前也看了很多相关的文章,但是感觉讲的都不好,很多文章都会去讲各种策略,比如(旁路缓存)策略、(读穿 / 写穿)策略和(写回)策略等,感觉意义真的不大,然后有的文章也只讲了部分情况,也没有告诉最优解。我直接先抛一下结论:在满足实时性的条件下,不存在两者完全保存一致的方案,只有最终一致性方案。根据网上的众多解决方案,总结出 6 种转载 2023-03-07 22:25:52 · 329 阅读 · 0 评论 -
微服务架构系列主题:列举一下实现异步的8种方式
异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:「发送短信、邮件、异步更新等」,这些都是典型的可以通过异步实现的场景。转载 2023-03-02 08:45:53 · 347 阅读 · 0 评论 -
微服务架构系列主题:百亿级数据分表后怎么分页查询?
微服务架构系列主题:百亿级数据分表后怎么分页查询?转载 2022-10-30 11:39:06 · 471 阅读 · 0 评论 -
微服务架构系列主题:百亿级数据分表后怎么分页查询?
今天我们聊聊如何做主从读写分离。说到读写分离,不管小公司还是大公司,大家在实际工作中,应该也都用过。因此小编这边先抛几个问题,大家可以思考下。什么时候需要做读写分离呢?读写分离,怎么做呢?读写分离会带来什么问题呢?如何解决呢?如果你觉得有些问题还比较模糊的,那么可以看看我是怎么理解这些问题的。原创 2022-10-30 11:34:26 · 1582 阅读 · 0 评论 -
微服务架构系列主题:12张图带你彻底理解分布式事务产生的场景和解决方案!!
微服务架构系列主题:12张图带你彻底理解分布式事务产生的场景和解决方案!!转载 2022-10-30 11:26:09 · 581 阅读 · 0 评论 -
微服务架构系列主题:聊聊前后端分离接口规范
随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高。后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。然而带来的另一个问题:前后端的对接界面双方却关注甚少,没有任何接口约定规范情况下各自干各自的,导致我们在产品项目开发过程中,前后端的接口联调对接工作量占比在30%-50%左右,甚至会更高。往往前后端接口联调对接及系统间的联调对接都是整个产品项目研发的软肋。本文的主要初衷就是规范约定先行,尽量避免沟通转载 2022-09-15 14:06:48 · 639 阅读 · 0 评论 -
微服务架构系列主题:微服务架构的数据库为什么喜欢分库分表?
简单来说,微服务架构就是把传统的一个单体应用以一套"小服务"的方式进行开发,这些"小服务"可以运行在不同机器上,它们在自己的进程中运行,"小服务"之间可以通过像是 HTTP API 这样的轻量级的机制进行通信,这些"小服务"紧紧围绕项目的业务需求开发,同时,它们是以业务边界进行划分成独立的微服务。这些微服务看似独立又像是一个整体,构成了一个业务集群。转载 2022-09-14 08:49:06 · 530 阅读 · 0 评论 -
微服务架构系列主题:探索原味BFF模式
BFF:Backend for Frontends ,经典分布式架构设计模式之一。我在学习和工作经验累积中,逐渐加深了对 BFF 的理解。作为一种模式,它具有一些更加确切的使用场景,和一些能匹配的特定问题。在本篇文章中,你们会与我一起穿越回BFF诞生的历史中,寻找其起源。并一同探索和学习这个在分布式系统中出镜率极高的架构模式。转载 2022-09-14 08:39:09 · 516 阅读 · 0 评论 -
架构设计参考项目系列主题:7个点 5 种 API 网关技术整理
本文准备围绕七个点来讲网关,分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关对比,对基础概念熟悉的朋友可以根据目录查看自己感兴趣的部分。转载 2022-09-02 17:00:15 · 306 阅读 · 0 评论 -
架构设计参考项目系列主题:去哪儿旅行微服务架构实践
去哪儿旅行微服务架构实践转载 2022-09-01 09:11:17 · 313 阅读 · 0 评论 -
微服务架构系列主题:会员服务优雅上下线实践
随着会员业务的快速发展,会员系统架构也不断演进迭代,拆分出了多个微服务,提升了系统的稳定性和扩展能力。在敏捷的开发模式下,业务迭代更加快速,那么势必会经常发布线上服务,在服务上线的过程中,我们发现接口成功率会出现一定程度的下降,对于敏感业务直接影响了用户的体验。为了解决这个问题,我们对微服务上下线流程进行了优化,本文将详细介绍方案的设计和实现。...转载 2022-08-31 14:27:11 · 214 阅读 · 0 评论 -
微服务架构系列主题:从单体迁移至微服务,需要有足够的理由
微服务是一种非常流行的 Web 软件架构,有着大量知名的实践者和支持者。Facebook、Uber、Groupon、Klarna、Amazon、Netflix、eBay、Comcast 等公司都采用了微服务架构。你的公司可能与这些公司不同,也就是说,你的团队可能和这些公司的团队一点都不像,你可能不会面临和他们一样的问题。如果你就在这些公司当中,那么请停止阅读本文,因为你确实可能需要微服务。...转载 2022-08-11 08:28:12 · 459 阅读 · 0 评论 -
微服务架构系列主题:遗留系统的服务拆分
本文介绍了如果进行遗留系统进行微服务架构演进的方法转载 2022-07-19 14:30:42 · 240 阅读 · 0 评论 -
微服务架构系列主题:SpringCloud Gateway API接口安全设计(加密 、签名、安全)
SpringCloud Gateway API接口安全设计(加密 、签名、安全)转载 2022-06-08 16:40:35 · 921 阅读 · 1 评论 -
微服务架构系列主题:前端灰度发布落地方案
前端灰度发布落地方案转载 2022-06-08 16:10:23 · 1182 阅读 · 0 评论 -
微服务架构系列主题:Istio 可以代替 Spring Cloud 吗?
本文介绍了 Service Mesh的使用场景转载 2022-06-06 22:24:44 · 230 阅读 · 0 评论 -
微服务架构系列主题:SpringBoot+RabbitMQ 死信队列
MQ死信队列处理转载 2022-06-06 22:10:19 · 138 阅读 · 0 评论 -
微服务架构系列主题:图解Kafka,触类旁通
该文章使用图解的模式对Kafka的核心概念和架构进行了深入浅出的讲解转载 2022-06-01 12:07:39 · 371 阅读 · 0 评论 -
微服务架构系列主题:微服务注册中心产品ZooKeeper、Eureka、Consul、Nacos对比
本文转自:架构师目录背景介绍CAP理论服务注册中心解决方案主流注册中心产品Apache Zookeeper -> CPSpring Cloud Eureka -> APConsul默认依赖于SDKConsul TemplateNacos背景介绍服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分转载 2022-05-23 15:13:34 · 849 阅读 · 0 评论 -
微服务架构系列主题:如何保证用户模块的数据安全?
本文转自:Java技术栈目录写在前面用户管理模块中需要进行加密的地方如何选择加密算法实现加密功能小结写在前面在介绍具体方案之前,首先先介绍一下常见的加密算法。加密算法可以分为三大类: 对称加密算法 非对称加密算法 Hash算法 对称加密算法加密和解密使用相同的密钥。对称加密算法加密解密速度快,但安全性较差 常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES非对称加密算法加密和解密转载 2022-05-18 15:32:59 · 255 阅读 · 0 评论 -
微服务架构系列主题:生产环境关闭swagger方法
目录swagger3 关闭配置(快捷方式)配置原理swagger2 关闭配置方法一:@ConditionalOnProperty方法二 @Profile方法三 @Value 配置Docket 失效办法swagger3 关闭配置(快捷方式)springfox: documentation: # 总开关(同时设置auto-startup=false,否则/v3/api-docs等接口仍能继续访问) enabled: false auto-startu原创 2022-05-18 15:01:26 · 4852 阅读 · 1 评论 -
微服务架构系列主题:SpringCloud 优雅下线+灰度发布
本文转自:芋道源码前言目录前言优雅下线常见的下线方式优雅的下线方式灰度发布蓝绿部署滚动部署金丝雀部署前言在生产环境中,如何保证在服务升级的时候,不影响用户的体验,这个是一个非常重要的问题。如果在我们升级服务的时候,会造成一段时间内的服务不可用,这就是不够优雅的。那什么是优雅的呢?主要就是指在服务升级的时候,不中断整个服务,让用户无感知,进而不会影响用户的体验,这就是优雅的。实际上,优雅下线是目标,而不是手段,它是一个相对的概念,例如kill PID和kil转载 2022-04-18 14:52:47 · 228 阅读 · 0 评论 -
微服务架构系列主题:SpringCloud 分布式日志采集方案
本文转自:Java高性能架构由于微服务架构中每个服务可能分散在不同的服务器上,因此需要一套分布式日志的解决方案。spring-cloud提供了一个用来trace服务的组件sleuth。它可以通过日志获得服务的依赖关系。基于sleuth,可以通过现有的日志工具实现分布式日志的采集。这里使用的是ELK,也就是elasticsearch、logstash、kibana。01 sleuth第一步:sleuth管理端sleuth一般单独放在一个工程中。需要添加如下依赖<dependen转载 2022-04-18 13:36:58 · 456 阅读 · 0 评论 -
分布式缓存系列主题:使用 Spring Cache 实现缓存,这种方式才叫优雅
文本转自: 勇哥java实战目录1 硬编码2 缓存抽象2.1 Spring AOP2.2 缓存声明2.2.1 @Cacheable注解2.2.2 @CachePut注解2.2.3 @CacheEvict注解2.3 缓存配置3 入门例子3.1 集成caffeine3.1.1 maven依赖3.1.2 Caffeine缓存配置3.1.3 业务代码3.2 集成Redisson3.2.1 maven依赖3.2.2 Redisson缓存配置...转载 2022-04-17 09:35:27 · 757 阅读 · 0 评论 -
微服务架构系列主题:Nginx40问题和答案
问题转自:Java高性能架构 什么是Nginx? Nginx 有哪些优点? Nginx应用场景? Nginx怎么处理请求的? Nginx 是如何实现高并发的? 什么是正向代理? 什么是反向代理? 反向代理服务器的优点是什么? Nginx目录结构有哪些? Nginx配置文件nginx.conf有哪些属性模块? cookie和session区别? 为什么 Nginx 不使用多线程? ng转载 2022-04-15 14:09:44 · 1496 阅读 · 0 评论 -
微服务架构系列主题:一口气说出 6 种实现延时消息的方案
本文转自:架构师目录前言实现方案基于外部存储实现的方案基于 RocksDB基于RedisRocketMQPulsarQMQ前言延时消息(定时消息)指的在分布式异步消息场景下,生产端发送一条消息,希望在指定延时或者指定时间点被消费端消费到,而不是立刻被消费。延时消息适用的业务场景非常的广泛,在分布式系统环境下,延时消息的功能一般会在下沉到中间件层,通常是 MQ 中内置这个功能或者内聚成一个公共基础服务。本文旨在探讨常见延时消息的实现方案以及方案设计的优缺转载 2022-04-13 23:04:06 · 326 阅读 · 0 评论 -
微服务架构系列主题:基于SpringBoot实现全链路调用日志跟踪
本文转自:架构师目录MDC 介绍1、简介:2、API说明:3、优点:MDC 使用1、添加拦截器2、修改日志格式MDC 存在的问题解决 MDC 存在的问题子线程日志打印丢失traceId线程池封装类:ThreadPoolExecutorMdcWrapper.java线程traceId封装工具类:ThreadMdcUtil.javaHTTP调用丢失traceId1、HttpClient:2、OKHttp:3、RestTemplate:4、第转载 2022-04-09 11:42:54 · 533 阅读 · 0 评论 -
微服务架构系列主题: 一文弄清楚项目里的各种配置
本文转自:Java技术栈目录引言什么是配置?硬编码参数项目里配置文件文件系统上的配置文件网络上的配置文件启动参数(JVM属性)操作系统参数后记引言项目开发中总是有各种各样的配置,对于程序开发新手来说,配置是摆在面前的第一座大山。回想当年在学校学习经典的“SSH”的时候,一个web.xml配置都是异常的艰辛。工作多年的你,对配置真的了解吗?什么是配置?首先我们来看一下配置文件的定义:“A software file used to config转载 2022-04-07 13:40:33 · 329 阅读 · 0 评论 -
认证与服务系列主题:微服务认证鉴权与API权限控制
从单体应用架构到分布式应用架构再到微服务架构,应用的安全访问在不断的经受考验。为了适应架构的变化、需求的变化,身份认证与鉴权方案也在不断的变革。面对数十个甚至上百个微服务之间的调用,如何保证高效安全的身份认证?面对外部的服务访问,该如何提供细粒度的鉴权方案?1. 1. 背景最近在做权限相关服务的开发,在系统微服务化后,原有的单体应用是基于session的安全权限方式,不能满足现有的微服务架构的认证与鉴权需求。微服务架构下,一个应用会被拆分成若干个微应用,每个微应用都需要对访问进行鉴权,每个微应用都需原创 2022-04-06 16:06:13 · 1936 阅读 · 0 评论 -
认证与授权系列主题:OAuth 2.0 授权模式详解
目录OAuth 2.0 是什么?角色客户端的授权模式类型隐式授权模式密码模式客户端模式刷新访问令牌OAuth 2.0 是什么?oauth 2.0 是一个授权的开放网络标准角色Resource Owner:资源所有者,既用户 User Agent:用户代理 Authorization Server:既提供第三方登录服务的服务器 Client:第三方应用,我们的应用就是一个client客户端的授权模式类型授权码模式 隐式授权模式 密码模式 客户端模式原创 2022-04-06 13:51:58 · 322 阅读 · 0 评论 -
微服务架构系列主题: 微服务架构路线,看懂这张图就够了
本文转自: Java高性能架构目录为什么选择微服务架构?微服务架构路线基本思路Docker容器编排Docker容器管理API网关负载均衡服务发现事件总线日志记录监控和警报分布式追踪数据持久化缓存云供应商结论为什么选择微服务架构?众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提高应用程序灵活性、可转载 2022-04-03 10:32:03 · 1669 阅读 · 0 评论 -
监控主题系列:在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践
本文转自:阿里巴巴中间件随着 Prometheus 逐渐成为云原生时代的可观测事实标准,那么今天为大家带来在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践和一些相关的思考,内容主要包括以下几个部分: 微服务、容器化技术演进的监控之痛 云原生时代,为什么是 Prometheus 阿里云 Prometheus 在微服务场景的落地实践 大规模落地实践挑战和解决方案 云原生可观测性的发展趋势和展望 01 微服务、容器化技术演进的监控之痛转载 2022-03-29 16:58:04 · 485 阅读 · 0 评论 -
微服务架构系列主题:微服务分布式事务之LCN、TCC特点、事务补偿机制缘由以及设计重点
本文转自:架构师目录XA协议二阶段提交协议第一阶段:投票第二阶段:事务提交LCNLCN核心步骤TCCTCC补偿机制业务补偿机制特点业务补偿的设计重点XA协议在上面提到的文章中, 分布式事务直接讲二阶段提交, 思维逻辑有些断层, 但是那毕竟是比较解决方案, 在这儿从理论上推导分布式事务的根基, 也就是为什么要二阶段提交。在单体应用中, 往往由自己来保证事务的一致性, 但是分布式中, 涉及到跨网络调用就难以保证, 从理论上讲两台机器理论上无法达到.转载 2022-03-28 14:49:43 · 316 阅读 · 0 评论 -
微服务架构系列主题:springboot 项目使用 Disruptor 做内部消息队列
本文转自:芋道源码目录01、背景02、Disruptor介绍03、Disruptor 的核心概念04、Ring Buffer05、Sequence Disruptor06、Sequencer07、Sequence Barrier08、Wait Strategy09、Event10、EventProcessor11、EventHandler12、Producer13、案例-demo14、总结工作中遇到项目使用Disruptor做消息队转载 2022-03-21 22:55:42 · 479 阅读 · 0 评论 -
微服务架构系列主题:微服务的陷阱
本文转自:技术锁话微服务架构(Microservice Architect)是一种架构模式,微服务架构是个很有趣的思维方式,其主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持,每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通,每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。参考维基百科英文版,我们简单梳理一下微服务的历史:2005年:Dr. PeterRodgers在Web ServicesEdge大会转载 2022-01-06 22:57:38 · 485 阅读 · 0 评论 -
微服务架构系列主题:自下而上学习容器
本文转自:InfoQ目录前言1 容器学习路径2 容器不是虚拟机3 运行容器不一定需要镜像4 单宿主机上的容器管理器5 多宿主容器编配器6 有一些容器就是虚拟机7 结论前言我从 2015 年开始使用容器,我对容器最初的理解就是把它们看成是轻量级的虚拟机,只是启动时间比虚拟机快了很多。脑子里有了这样的概念,就很容易看懂网上那些关于如何将 Python 或 Node 应用程序装入容器的教程。但很快,我意识到仅仅将容器看成是轻量级的虚拟机有点跳过简单化了,这导致我无法对以转载 2021-12-13 21:51:16 · 187 阅读 · 0 评论 -
微服务架构系列主题:监控与告警 - 业务服务监控对象和POD的连接设计
微服务架构系列主题:监控与告警 - 业务服务监控对象和POD的连接设计原创 2021-11-26 00:04:31 · 852 阅读 · 0 评论 -
微服务架构系列主题:监控与告警 - 监控对象结构的设计
微服务架构系列主题:监控与告警 - 监控对象结构的设计原创 2021-11-24 01:23:33 · 1225 阅读 · 0 评论 -
微服务架构系列主题:监控与告警 - 监控对象的识别与定义
目录前言监控对象识别监控对象定义前言本文是监控与告警系列主题之监控对象的识别与定义。根据项目具体需求,所有的服务都部署于K8S中并以POD形式运行。监控对象识别根据实际情况,以下级别的对象需要进行监控。K8S 主机(Master Node 和 Worker Nodes) 运行在K8S集群中的管理组件,例如:controller manager, scheduler, etcd, kubelet, kubeproxy等 运行在K8S集群中的服务,例如:business原创 2021-11-15 23:34:44 · 725 阅读 · 0 评论