![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
IT-微服务
文章平均质量分 86
这个专栏是介绍关于微服务相关的知识
LarryHai6
一直致力于开源技术和软件架构实践,追求业务和技术的最佳实践
| 个人的专业领域包括 大型分布式系统/应用架构设计 云原生架构设计 微服务架构设计 Agile和DevOps最佳实践 DDD设计方法论 数据建模与分析 | 联系方式: 邮件: liuhaidl9@163.com
展开
-
微服务架构系列主题:亿级流量架构服务降级,写得太好了!
本文转自:Java技术栈什么是服务降级如果看过我前面对服务限流的分析,理解服务降级就很容易了,对于一个景区,平时随便进出,但是一到春节或者十一国庆这种情况客流量激增,那么景区会限制同时进去的人数,这叫限流,那么什么是服务降级呢?简单来说就是,将一些不太重要的景区项目砍掉,平时就那么三五八个人,景区可以开放湖中游泳啦,摸鱼啦,捉虾啦,有情况工作人员可以下湖捞你,但是现在客流量大了,工作人员关注不过来,都在湖里晃荡万一沉了不太安全,大手一挥,这个项目砍了,将工作人员分配在其他地方。在互联网中也有转载 2021-10-13 08:38:20 · 175 阅读 · 0 评论 -
微服务架构系列主题:如何为GraphQL系统构建与Schema解耦的高性能计算层
本文转自:高可用架构目录问题背景问题分析GraphQL中的数据结构和算法数据计算行为的归纳总结解题思路解决方案问题描述方案详情总结后记&感悟重视提供能力二八原则忠于业务参考资料问题背景GraphQL对于数据的聚合治理和按需查询具有天然的优势,数据平台可将各个部门的数据映射到一张数据图上、即GraphQL的Schema,客户端可通过一次请求查询数据图中的多个资源。与传统sql不同,graphql经常是面向业务的,旨在提供可直接在页面展转载 2021-10-13 08:28:24 · 471 阅读 · 0 评论 -
微服务架构系列主题:MySQL 读多写少设计方案 - 分库分表还能这么做?
本文转自:架构师目录案例背景如何确定分库还是分表?何时分表何时分库垂直拆分Range(范围分片)如何解决数据查询问题?总结通过主从复制的技术把数据复制多份,读操作只读取从数据库中的数据,这样就增强了抵抗大量并发读请求的能力,提升了数据库的查询性能。这时,你的系统架构如下:系统架构图案例背景假设在这样的背景下,面试官出了一道考题:公司现有业务不断发展,流量剧增,交易数量突破了千万订单,但是订单数据还是单表存储,主从分离后,虽然减少了缓解读请求的转载 2021-09-30 20:53:46 · 423 阅读 · 0 评论 -
微服务架构系列主题:微服务平台的发展趋势
对于许多人来说,对如今的颠覆性市场基础架构进行现代化意味着要迈向云本机应用程序,这类 应用程序构建为微服务,并通过 Kubernetes 和 Docker 等容器技术进行部署。这种方法旨在提高响应速度、灵活性和弹性,能够按照业务发展速度来采取行动。随着消费者的要求越来越高,忠诚度转变得越来越快,微服务能满足与时俱进所需的更快开发速度和快速服务迭代。微服务未来发展趋势,将是集:DDD领域驱动设计+ Spring Bo.转载 2021-09-27 19:01:43 · 563 阅读 · 0 评论 -
微服务架构系列主题:庖丁解牛Serverless
本文转自:51cto架构演进史要讲 Serverless,我们首先要了解传统的单体应用架构是如何一步一步发展到如今火爆的云原生架构的。Serverless 基本概念根据CNCF的定义,Serverless是指构建和运行不需要服务器管理的应用程序的概念。Serverless的中文含义是“无服务器”,但是它真正的含义是开发者不用过多考虑服务器的问题,而不是完全去除服务器,是依靠第三方资源服务器后端,来执行代码。Serverless架构可分为Backend as a Service(.转载 2021-09-26 18:12:03 · 197 阅读 · 0 评论 -
微服务架构系列主题:微服务架构的利与弊
前言该文档主要介绍微服务架构的优点和缺点,让你在选择微服务架构之前,有所参考,来帮助你判断你的项目是否适合微服务架构。微服务架构的优点每个服务足够内聚,足够小,代码容易理解,开发效率高 服务直接可以独立部署,让持续部署成为可能 每个服务可以各自进行水平和垂直扩展,而且每个服务可以根据需要部署到合适的硬件和软件上 容易扩大开发团队,可以根据每个组件组织开发团队 提高容错性 系统不会长期限制在某个技术栈上 降低成本 易于开发与维护 局部修改容易 获得围绕业务功能创建/组织的代码原创 2021-09-22 16:47:23 · 161 阅读 · 0 评论 -
微服务架构系列主题:如何为微服务选择数据库
转自:csdn研发技术你的微服务架构需要多种数据模型。你是应该选择混合持久化呢还是多模型数据库?在过去的十年,大规模的分布式系统呈现爆炸式增长。这一趋势促使在数据库领域产生了一股巨大的创造力,这在软件业的历史上无疑是没有先例的。其结果是诞生了一个健康和充满竞争的数据库市场,我们可以因此在大量的平台中各取所需。但是我们应该如何抉择?在本文中,我们将探讨如何为根据应用程序去选择核实的数据库模式。(是的,可以有一个以上的选择!),我们也会看看对数据模式的选择可以帮助确定在数据层中将选用哪些技术。云转载 2021-09-21 21:32:16 · 444 阅读 · 0 评论 -
微服务架构系列主题:微服务实现的反模式及正确做法
前言程序员在程序开发的时候,经常会使用到设计模式,或在面试过程中也经常被提问到设计模式。所以大家对设计模式比较熟悉了,但大家知道“反模式”吗,什么叫“反模式”?怎样才能避免“反模式”的发生。所以今天的文章,我会从三部分的内容进行讲解。1. 重新理解一下“模式”和“反模式”的定义2. 基于微服务实现的“反模式”3. 微服务的正确做法,来避免“反模式”的发生1. 重新理解一下“模式”和“反模式”的定义我们看一下“模式”和“反模式”在维基百科的定义。根据维基百科的定义,设计模式原创 2021-08-23 23:09:43 · 960 阅读 · 4 评论 -
微服务架构系列主题:微服务架构解析与实践
转自:CIO之家微服务架构指的是将大型复杂系统按功能或者业务需求垂直切分成更小的子系统,这些子系统以独立部署的子进程存在,它们之间通过轻量级的、跨语言的同步(比如REST,gRPC)或者异步(消息)网络调用进行通信。微服务架构的重要特征: 整个应用程序被拆分成相互独立但包含多个内部模块的子进程。 与模块化的单体应用(Modular Monoliths)或 SOA 相反,微服务应用程序根据业务范围或领域垂直拆分。 微服务边界是外部的,微服务之间通过网络调用(RPC 或消息转载 2021-07-01 23:54:01 · 285 阅读 · 0 评论 -
微服务架构系列主题:微服务架构概述
一、前言微服务(MicroServices)是一种架构风格,一个大型复杂软件应用由多个微服务和前端展示层组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。以往我们开发应用程序都是单体应用(可以理解为一个部署包包含了项目的所有功能),虽然开发和部署比较方便,但后期随着业务的不断增加为了能够达到响应业务需求,单体应用的开发迭代和性能瓶颈等问题愈发明显,微服务就是解决此问题的有效手段。想要回答为什转载 2021-07-01 23:48:00 · 939 阅读 · 0 评论 -
微服务架构系列主题:高并发下如何保证接口的幂等性?
本文转自:苏三说技术 Author 因为热爱所以坚持ing目录前言1 insert前先select2 加悲观锁3 乐观锁4 加唯一索引5 建防重表6 根据状态机7 加分布式锁8 获取token前言接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴一个参考。不知道你有没有遇到过这些场景: 有时我们在填写某些form表单时,保存按钮不小心快速点了两次,表转载 2021-04-29 12:29:03 · 249 阅读 · 1 评论 -
架构设计参考项目系列主题:爱奇艺内容中台基于CAT的服务监控实践
本文转自:爱奇艺技术产品团队 作者 内容生产中台系统监控一直是项目完整性的一个要素,“不让没有监控的系统上线”,这条准则也逐渐得到越来越多的人的认可。如果一个系统监控缺失,我们就无法知道系统的运行状态,以及业务的各个方面的情况,甚至系统出现宕机或者重大故障也不得而知,以至于造成重大损失。爱奇艺监控需求爱奇艺乐道中台是由爱奇艺内容中台团队建设的集视频、音频、字幕、图片等内容的全流程生产、发布及运营的中台服务。随着业务发展及微服务化的逐渐深入,系统项目越来越多,目前已有微服务100+,需要维护内容也转载 2021-04-22 12:29:58 · 434 阅读 · 1 评论 -
架构设计参考项目系列主题:如何通过事务消息保障抢购业务的分布式一致性?
本文转自: 阿里巴巴中间件 作者 山猎目录前言事务一致性原理回顾抢购业务中的分布式事务分布式事务的实现方式传统分布式事务柔性事务事务消息原理分析抢购业务场景拆解引入消息异步通知机制先执行本地事务,还是先发送异步消息?如何确保远程事务能执行成功?完整流程事务消息实战消息队列 RocketMQ开通 RocketMQ 服务创建资源本地事务参与方的业务代码1、初始化 TransactionProducer2、获取全局唯一的交易流水号转载 2021-04-22 12:06:40 · 192 阅读 · 1 评论 -
架构设计参考项目系列主题:从零开始搭建创业公司后台技术栈
本文转自:java版web项目前言说到后台技术栈,脑海中是不是浮现的是这样一幅图?图 1有点眼晕,以下只是我们会用到的一些语言的合集,而且只是语言层面的一部分,就整个后台技术栈来说,这只是一个开始,从语言开始,还有很多很多的内容。今天要说的后台是大后台的概念,放在服务器上的东西都属于后台的东西,比如使用的框架,语言,数据库,服务,操作系统等等。整个后台技术栈我的理解包括 4 个层面的内容: 语言:用了哪些开发语言,如:C++/Java/Go/PHP...转载 2021-04-22 11:27:12 · 292 阅读 · 1 评论 -
微服务架构系列主题:七种分布式事务的解决方案
本文转自:芋道源码目录什么是分布式事务为什么会有分布式事务?分布式理论CAP定理BASE理论分布式事务解决方案两阶段提交(2PC)三阶段提交(3PC)补偿事务(TCC)本地消息表消息事务最大努力通知Sagas 事务模型总结什么是分布式事务分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器 「分别位于不同的分布式系统的不同节点之上」 。一个大的操作由N多的小的操作共同完成。而这些小的操作又分布在不同的服务上。针对于这些转载 2021-04-19 11:09:58 · 395 阅读 · 1 评论 -
微服务架构系列主题:分布式事务一致性
本文转自:中生代架构 摘要传统应用使用本地事务和分布式事务保证数据一致性,但是在微服务架构中数据都是服务私有的,需要通过服务提供的api访问,分布式事务不再适用微服务架构,传统分布式事务不是微服务中数据一致性的最佳选择。微服务架构中应满足数据最终一致性原则。...转载 2021-04-18 22:58:27 · 519 阅读 · 1 评论 -
【IstioCon 2021】最佳实践:从Spring Cloud 到 Istio
该文章转发自微信公众号:容器魔方 议题简介官网链接:https://events.istio.io/istiocon-2021/sessions/best-practice%EF%BC%9Afrom-spring-cloud-to-istio/以下为演讲全文大家好,我是来自华为云的工程师。很荣幸有机会和大家分享Istio在生产中使用的实际案例。华为云应用服务网格从2018年在公有云上线, 作为全球最早的几个网格服务之一,经历和见证了从早期对网格的了解、尝试到当前大规模使用..转载 2021-03-19 14:31:57 · 1100 阅读 · 1 评论 -
架构师必须掌握的重要微服务架构设计模式!
参考该文章https://www.infoq.cn/article/kdw69bdimlx6fsgz1bg3这边文章主要介绍一下微服务架构及其重要的设计模式,并介绍每种模式的优点,缺点,适用场景和不适用的场景,及其可用实现的技术有哪些。微服务架构设计模式列表:独享数据库(Database per Microservice) 事件源(Event Sourcing) 命令和查询职责分离(CQRS) Saga 面向前端的后端 (BFF) API 网关 Strangler 断路器.原创 2021-03-06 01:33:02 · 3415 阅读 · 16 评论 -
微服务 | Martin Fowler
“微服务架构”这一术语在前几年横空出世,用于描述这样一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软件应用系统的设计。尽管这种架构风格尚无明确的定义,但其在下述方面还是存在一定的共性,即围绕业务功能的组织、自动化部署、端点智能、以及在编程语言和数据方面进行去中心化的控制。本文目录微服务架构的九大特性特性一:“组件化”与“多服务”特性二:围绕“业务功能”组织转载 2017-10-20 19:44:38 · 2235 阅读 · 0 评论 -
微服务拆分参考原则列表
在微服务的设计过程中,微服务设计有多大,微服务粒度的把控,一直是设计人员需要考虑和设计的难点。因为服务粒度设计过大,不能得到微服务架构带来的便利,例如:更加敏态的开发,更频繁的版本发布,由于服务功能划分的小,可以根据实际的业务场景,选择更加合适的技术进行代码重构等等。但同时我们也要注意,不是服务越”微“越好,因为服务的过度拆分会使架构的设计复杂度大大提升,同时也会大大提升运维和测试的复杂度等。所以对服务拆分粒度的把控,对设计人员来讲就至关重要了,甚至对项目的成败有非常重要的影响。这篇文档提供原创 2021-03-03 14:09:23 · 3157 阅读 · 9 评论 -
微服务熔断与隔离
摘要: 微服务是当前业界的一个趋势,其原理是将职责单一的功能独立化成子服务,一个后台服务依赖多个微服务。假设某服务由30个微服务组成,每个微服务的可用性是99.99%,那么99.99%的30次方≈99.7%,也就是说有0.3%的请求会失败,若有一亿次请求则有300000次失败。熔断隔离就是为服务稳定性而生。微服务近年来很火很热,相关的文章汗牛充栋,关于架构设计本文就不作叙述了,只谈谈在分布式服转载 2017-10-19 16:05:39 · 1226 阅读 · 0 评论 -
什么是CQRS?
这个问题网上可以找到很多资料,未接触过的童鞋请先查看Udi Dahan,Grey Young, Rinat Abdullin,园子里dax.net,以及Jdon社区上的相关文章。例如下面几篇文章:1. http://www.cnblogs.com/daxnet/archive/2011/01/06/1929099.html1. http://www.udidahan.com/200转载 2017-10-27 10:49:02 · 15729 阅读 · 0 评论 -
CQRS架构
命令查询的责任分离Command Query Responsibility Segregation (简称CQRS)模式是一种架构体系模式,能够使改变模型的状态的命令和模型状态的查询实现分离。这属于DDD应用领域的一个模式,主要解决DDD在数据库报表输出上处理方式。 Greg Young在infoQ的采访中“State Transitions in Domain-Driven Design”转载 2017-10-27 10:44:37 · 1467 阅读 · 0 评论 -
深度长文:我对CQRS/EventSourcing架构的思考
开始之前想先说一下微服务架构和CQRS架构的区别和联系。微服务架构现在很热,到处可以看到各大互联网公司的微服务实践的分享总结。但是,我今天的分享和微服务没有关系,希望可以带给大家一些新的东西。如果一定要说微服务和CQRS架构的关系,那我觉得微服务是一种边界思维,微服务的目的是为了从业务角度拆分(职责分离)当前业务领域的不同业务模块到不同的服务,每个微服务之间的数据完全独立,它们之间的交互可转载 2017-11-03 21:00:26 · 20668 阅读 · 3 评论 -
Qcon2017实录|Service Mesh:下一代微服务
数人云之前给大家分享过敖小剑老师的《万字解读:Service Mesh服务网格新生代–Istio》,详细地阐述了发展及理念,在Qcon2017上,敖小剑老师又做了关于Service Mesh的演讲,以下是本次演讲的实录。 敖小剑/数人云资深架构师 十五年软件开发经验,微服务专家,专注于基础架构,Cloud Native拥护者,敏捷实践者。曾在亚信,爱立信,唯品会和ppmoney任职。简单回...转载 2018-07-12 12:04:07 · 275 阅读 · 0 评论 -
聊聊 API Gateway 和 Netflix Zuul
最近参与了公司 API Gateway 的搭建工作,技术选型是 Netflix Zuul,主要聊一聊其中的一些心得和体会。本文主要是介绍使用 Zuul 且在不强制使用其他 Neflix OSS 组件时,如何搭建生产环境的 Gateway,以及能使用 Gateway 做哪些事。不打算介绍任何关于如何快速搭建 Zuul,或是一些轻易集成 Eureka 之类的的方法,这些在官方文档上已经介绍的很明确了。...转载 2018-05-14 09:30:53 · 565 阅读 · 0 评论 -
使用Spring Boot Actuator监控应用
Actuator是Spring Boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。使用Actuator引入依赖即可Maven:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s...转载 2018-05-14 09:12:16 · 232 阅读 · 0 评论 -
hystrix-turbine 监控的使用
1. 概述Demo地址:http://git.oschina.net/zhou666/spring-cloud-7simple/tree/master/cloud-hystrix-turbinehystrix-turbine集成了hystrix看板和 turbine,用来监控实现了hystrix的工程项目: 每一个监控项目的具体解释: 原本的hystrix看板只能监控一台服务器上的服务调用情况...转载 2018-05-14 09:02:01 · 567 阅读 · 0 评论 -
Ribbon的主要组件与工作流程
一:Ribbon是什么? Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。我们也很容易使用Ri...转载 2018-05-14 08:14:52 · 1939 阅读 · 0 评论 -
高负载微服务系统的架构演进之路
在 2016 LighLoad++ 大会上,“M-Tex”的开发经理 Vadim Madison 讲述了从一个由数百个微服务组成的系统到包含数千个微服务的高负载项目的发展历程。本文经授权翻译并发布到聊聊架构。在开始之前,我先介绍下我们所做的事情。简单地说,我们从事视频输出方面的工作——我们提供实时的视频。我们负责“NTV-Plus”和“Match TV”频道的视频平台。该平台有 30 万的并发用户...转载 2018-05-08 10:07:47 · 335 阅读 · 0 评论 -
一个可供中小团队参考的微服务架构技术栈
近年,Spring Cloud 俨然已经成为微服务开发的主流技术栈,在国内开发者社区非常火爆。我近年一直在一线互联网公司(携程,拍拍贷等)开展微服务架构实践,根据我个人的一线实践经验和我平时对 Spring Cloud 的调研,我认为 Spring Cloud 技术栈中的有些组件离生产级开发尚有一定距离。比方说 Spring Cloud Config 和 Spring Cloud Sleuth 都...转载 2018-05-08 09:51:32 · 2020 阅读 · 0 评论 -
微服务进展缓慢的5个难点
前言笔者从2013年加入ThoughtWorks至今共4年时间。在这4年时间里,我分别以开发人员、DevOps工程师、DevOps咨询师、微服务架构师以及微服务咨询师的角色参与了共计7个产品和项目的微服务咨询和实施。其中有成功,有失败,有反思,更多的是学习和总结。以下是我这些年来在微服务咨询上的经验总结,希望能给陷入微服务实施困境的人带来一些帮助。难转载 2017-10-25 10:26:23 · 2401 阅读 · 0 评论 -
提升微服务实施效率的7个步骤
《微服务进展缓慢的5个难点》中描述了实施微服务常见的主要阻碍。本文针对前文提到的5个难点提出了7个步骤。每个步骤分别包含了管理和技术两方面的建议。如果以上5点都让你膝盖中箭。那么根据我个人的经验,综合解决微服务实施难点的第一步就是:步骤1:以终为始,先构建一个独立的敏捷微服务团队我们对微服务的期待就是:可以独立开发、独立部署、独立发布,并且进行去中心化的管理。那么,我们转载 2017-10-25 10:24:51 · 3209 阅读 · 0 评论 -
opentracing文档中文版
为什么需要Tracing?开发和工程团队因为系统组件水平扩展、开发团队小型化、敏捷开发、CD(持续集成)、解耦等各种需求,正在使用现代的微服务架构替换老旧的单片机系统。也就是说,当一个生产系统面对真正的高并发,或者解耦成大量微服务时,以前很容易实现的重点任务变得困难了。过程中需要面临一系列问题:用户体验优化、后台真是错误原因分析,分布式系统内各组件的调用情况等。当代分布式跟踪系统(例如,Zip转载 2017-10-20 21:01:36 · 10328 阅读 · 0 评论 -
Developing Transactional Microservices Using Aggregates, Event Sourcing and CQRS - Part 2
Key TakeawaysEvent Sourcing is a technique for reliably updating state and publishing events that overcomes limitations of other solutions.The design concepts for an event-driven architecture, usi转载 2017-10-19 17:17:23 · 628 阅读 · 0 评论 -
Developing Transactional Microservices Using Aggregates, Event Sourcing and CQRS - Part 1
https://www.infoq.com/articles/microservices-aggregates-events-cqrs-part-1-richardsonKey takeawaysThe Microservice architecture functionally decomposes an application into services, each of wh转载 2017-10-19 17:11:24 · 470 阅读 · 0 评论 -
Service Discovery in a Microservices Architecture
Why Use Service Discovery?Let’s imagine that you are writing some code that invokes a service that has a REST API or Thrift API. In order to make a request, your code needs to know the network locat转载 2017-10-17 20:29:05 · 894 阅读 · 0 评论 -
使用微服务架构改造遗留系统
背景与挑战 随着公司国际化战略的推行以及本土业务的高速发展、《网络借贷信息中介机构业务活动管理暂行办法》的发布,各网贷平台都面临业务转型和运营合规问题,接入银行资金存管系统,就是网贷平台必须满足的合规条件。然而,后台支撑系统、前台PC网站、手机APP、M站已经不堪重负,在吞吐量、稳定性以及可扩展性上都无法满足日益增长的业务需求。一方面系统架构过于陈旧,性能、可靠性无法满足现有的需求转载 2017-10-12 19:10:40 · 486 阅读 · 0 评论 -
微服务概念解析
微服务概念解析(上) 探讨这一全新架构术语的确切定义 “微服务架构”概念的提出已经有很长一段时间了,但在最近几年却开始频繁地出现。微服务架构是一种特定的软件应用程序设计方式——将大型软件拆分为多个独立可部署服务组合而成的套件方案。虽然这种架构风格的确切定义还存在争议,但并不妨碍其在众多企业的实际应用中被实践,并体现出了具备通用特征的业务功能、自动化部署、端点智能化以及对语言与数据的离散转载 2017-09-28 00:25:22 · 741 阅读 · 0 评论 -
微服务架构的好处与坏处
微服务架构的好处 微服务架构模式有很多好处。首先,通过分解巨大单体式应用为多个服务方法解决了复杂性问题。在功能不变的情况下,应用被分解为多个可管理的分支或服务。每个服务都有一个用RPC-或者消息驱动API定义清楚的边界。微服务架构模式给采用单体式编码方式很难实现的功能提供了模块化的解决方案,由此,单个服务很容易开发、理解和维护。 第二,这种架构使得每个服务都可以有专门开发团队来转载 2017-09-28 00:18:06 · 1425 阅读 · 0 评论