微服务
文章平均质量分 87
风平浪静如码
这个作者很懒,什么都没留下…
展开
-
你知道什么叫金丝雀分布吗?你知道如何在Service Mesh微服务架构中实现吗?
什么是金丝雀发布既然要聊具体的实现,那么在开始之前,先科普下什么是“金丝雀发布”。金丝雀发布也叫**“灰度发布”**,具体来说就是在发布线上版本时,先将少量的生产流量打到服务的新版本,以验证新版本的准确性和可靠性,待发布的新版本得到线上流量的全面验证后,在逐步将所有流量放入新版本,以实现生产服务版本的稳定更新。为什么叫金丝雀发布呢,是因为金丝雀对矿场中的毒气比较敏感,所以在矿场开工前工人们会放一只金丝雀进去,以验证矿场是否存在毒气,这便是金丝雀发布名称的由来。在不同技术栈场景中,金丝雀发布的实现.原创 2021-11-11 22:16:44 · 568 阅读 · 0 评论 -
你知道近来年大火的DDD是如何兴起的吗?以及与微服务的关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DshedVsA-1634217530084)(https://upload-images.jianshu.io/upload_images/15462057-f0aa9a5e2e43746e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]DDD为什么能火起来?我们先不讨论DDD的定义,先梳理一下DDD火起来的背景,根据我学习的套路,永远是为什么为先,再是解决什原创 2021-10-14 21:28:15 · 210 阅读 · 0 评论 -
面试中你有遇到这些Spring Cloud常问题吗?知道如何完美解答吗?
为什么需要学习Spring Cloud不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用。但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复杂。这就会给应用带来如下的几个问题:**代码结构混乱:**业务复杂,导致代码量很大,管理会越来越困难。同时,这也会给业务的快速迭代带来巨大挑战;**开发效率变低:**开发人员同时开发一套代码,很难避免代码冲突。开发过程会伴随着不断解决冲突的过程,这会严重的影响开发效率;**排查解决问题成本高.原创 2021-06-15 15:46:56 · 268 阅读 · 0 评论 -
中高级面试常驻题:简单说下Java面向对象设计的六大原则
这篇文章主要讲的是面向对象设计中,我们应该遵循的六大原则。只有掌握了这些原则,我们才能更好的理解设计模式。我们接下来要介绍以下6个内容。单一职责原则——SRP开闭原则——OCP里式替换原则——LSP依赖倒置原则——DIP接口隔离原则——ISP迪米特原则——LOD单一职责原则单一职责原则的定义是就一个类而言,应该仅有一个引起他变化的原因。也就是说一个类应该只负责一件事情。如果一个类负责了方法M1,方法M2两个不同的事情,当M1方法发生变化的时候,我们需要修改这个类的M1方法,但是这个时候.原创 2021-05-20 14:19:45 · 174 阅读 · 0 评论 -
Java四种引用类型原理你真的搞明白了吗?五分钟带你深入理解!
Java中一共有4种引用类型(其实还有一些其他的引用类型比如FinalReference):强引用、软引用、弱引用、虚引用。其中强引用就是我们经常使用的Object a = new Object(); 这样的形式,在Java中并没有对应的Reference类。本篇文章主要是分析软引用、弱引用、虚引用的实现,这三种引用类型都是继承于Reference这个类,主要逻辑也在Reference中。问题在分析前,先抛几个问题?1.网上大多数文章对于软引用的介绍是:在内存不足的时候才会被回收,那内存不足是怎.原创 2021-05-13 14:42:56 · 179 阅读 · 0 评论 -
花了一个月梳理总结万字微服务核心架构,原来没你想的那么难...
在公司学习了接近一个月。一个月内,从0开始开始接触分布式微服务架构,给了我不小的收获。今天,我来从头到尾梳理一下,有关微服务架构的核心内容(全是干货)。下文,你将看到业界主流微服务框架的核心原理,包括服务发现,网关,配置中心,监控等组件,功能和架构原理的简单介绍。感谢阅读!????什么是微服务微服务Microservices之父,马丁.福勒,对微服务大概的概述如下:就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition原创 2021-05-07 15:23:37 · 255 阅读 · 0 评论 -
快速了解Service Mesh微服务架构实现服务间gRPC通信
在前面的文章之中我们介绍了基于Kubernetes及Istio如何一步一步把Service Mesh微服务架构玩起来!在该文章中,我们演示了一个非常贴近实战的案例,这里回顾下该案例的结构,如下图所示:该案例所演示的就是我们日常使用微服务架构开发时,服务间最普遍的通信场景。在Spring Cloud微服务体系中,服务间可以通过Fegin+Ribbon组合的方式,实现服务间负载均衡方式的Http接口调用;但在Service Mesh架构中,服务发现及负载均衡等治理逻辑已经由SideCar代理,如果还希望延.原创 2021-04-07 15:08:47 · 288 阅读 · 0 评论 -
实战|如何优雅地自定义Prometheus监控指标
今天要和大家分享的是在实际工作中**“如何优雅地自定义Prometheus监控指标”**!目前大部分使用Spring Boot构建微服务体系的公司,大都在使用Prometheus来构建微服务的度量指标(Metrics)类监控系统。而一般做法是通过在微服务应用中集成Prometheus指标采集SDK,从而使得Spring Boot暴露相关Metrics采集端点来实现。但一般来说,Spring Boot默认暴露的Metrics数量及类型是有限的,如果想要建立针对微服务应用更丰富的监控维度(例如TP90/TP.原创 2021-04-06 14:45:26 · 1267 阅读 · 1 评论 -
干货|如何步入Service Mesh微服务架构时代
今天要和大家分享的是关于新一代微服务架构——Service Mesh的具体玩法!在微服务架构盛行的今天,作为一名互联网技术从业人员,对于微服务的概念相信大家都已经耳熟能详了!而至于像Spring Cloud这样的微服务框架,因为大部分互联网公司都在此基础上构建过第一代微服务体系,所以对于做Java 的同学来说,Spring Cloud微服务体系应该是非常熟悉了!这里并不是说其他语言栈就没有构建微服务体系的框架,例如Go语言也有像Go-Micro这样的微服务框架,只不过目前除了像头条这样重度使用Go语言的.原创 2021-03-19 14:40:13 · 774 阅读 · 1 评论 -
微服务架构中如何快速构建一个数据报告服务?
场景描述在微服务架构中,每个微服务负责自己的数据库,微服务A是不允许直接连接微服务B的数据库进行操作的。现在有2个微服务,一个是订单服务,一个是用户服务。有一个数据报告的需求:生成一份包含用户信息的订单报告。这就需要获取2个服务中的数据,进行连接汇总。如何构建这个数据报告的服务呢?方案1 直接连接数据库直接连接订单服务、用户服务的数据库,获取所需的数据,拿到后进行加工处理即可。非常简单,但有明显的问题。首先是破坏了上面所说的微服务的那个原则,直接去连别人的数据库,太粗暴了。还有一个.原创 2021-03-12 14:41:36 · 164 阅读 · 0 评论 -
k8s微服务接入SkyWalking,三分钟教你怎么玩!
前面我给大家分享了关于分布式链路追踪的基本原理和SkyWalking的k8s部署玩法,如果还没来得及看的朋友可以看我上篇文章。今天要给大家分享是我们日常工作中最常见的一种场景,那就是部署在k8s环境下的Java微服务,要接入SkyWalking的具体玩法,通过这个过程咱们可以更深入的理解SkyWalking进行数据采集的逻辑,也能更深刻地从运维角度理解日常工作中所写的Java微服务被无侵入的方式接入分布式链路追踪系统的过程!废话不多说,接下来就让我们开启干货模式吧!Java微服务接入SkyWalki.原创 2021-03-08 14:15:53 · 2611 阅读 · 0 评论 -
别说不会微服务了,五分钟教你巧妙玩转分布式下链路追踪!
本篇文章我将给大家介绍“分布式链路追踪”的内容,对于目前大部分采用微服务架构的公司来说,分布式链路追踪都是必备的,无论它是传统微服务体系亦或是新一代Service Mesh的微服务架构!而具体介绍的内容,本文不是完全讲理论,而是希望从理论到实践,引导大家去操作,因为只有这样才能真正从技术层面有深刻的认识和了解!分布式链路追踪概述在具体介绍分布式链路追踪系统之前,我们首先需要理解下什么是链路追踪?在本专栏前面关于监控系统的介绍中可以知道,监控系统的观测数据主要来源于统计指标、日志以及链路追踪这三个方面。.原创 2021-03-07 16:13:36 · 296 阅读 · 0 评论 -
分布式架构高可用与高并发那些在工作中常用到的那些变态应用
反向代理服务上图展示了一个典型的三层架构的高性能 Web 应用。这种成熟的架构多年以来已被广泛部署于包括 Google、Yahoo、Facebook、Twitter、Wikipedia 在内的诸多大型 Web 应用中。位于三层构架中最外层的反向代理服务器负责接受用户的接入请求,在实际应用中,代理服务器通常至少还要完成以下列表中的一部分任务:连接管理:分别维护客户端和应用服务器的连接池,管理并关闭已超时的长连接。攻击检测和安全隔离:由于反向代理服务无需完成任何动态页面生成任务,所有与业务逻辑相关的请.原创 2021-01-25 14:26:29 · 179 阅读 · 0 评论 -
应该没人比我更细了吧:带你深入剖析Redis分布式锁!
什么是分布式锁说到Redis,我们第一想到的功能就是可以缓存数据,除此之外,Redis因为单进程、性能高的特点,它还经常被用于做分布式锁。锁我们都知道,在程序中的作用就是同步工具,保证共享资源在同一时刻只能被一个线程访问,Java中的锁我们都很熟悉了,像synchronized 、Lock都是我们经常使用的,但是Java的锁只能保证单机的时候有效,分布式集群环境就无能为力了,这个时候我们就需要用到分布式锁。分布式锁,顾名思义,就是分布式项目开发中用到的锁,可以用来控制分布式系统之间同步访问共享资源,.原创 2021-01-11 15:06:53 · 379 阅读 · 1 评论 -
复杂系统如何在不停机升级同时保持稳定?你必须考虑以下几个点...
背景在互联网行业,线上服务的升级更新可谓家常便饭。据统计,在过去的一个季度中闲鱼工程师们执行了千余次发布,总计更新的代码数量超过百万行。这些发布中,有一些可能只更新了几行代码,而有一些可能执行了整个集群的迁移升级。而无论这些变更的影响面有多大,我们都必须保证线上服务的可用性,用户无感知。本文将以闲鱼搜索服务的迁移升级为例,向大家介绍其背后的技术方案。闲鱼搜索服务基本架构闲鱼的底层搜索服务由查询规划服务 Search Planner、查询理解服务 Query Planner、打分排序服务 Rank S转载 2020-12-06 14:43:19 · 637 阅读 · 0 评论 -
三分钟快速解析Kubernetes微服务监控体系
监控系统是运维体系乃至整个软件产品生命周期中最重要的一环,完善的监控可以帮助我们事前及时发现故障,事后快速追查定位问题。而在以微服务为代表的云原生架构体系中,系统分为多个层次,服务之间调用链路复杂,系统中需要监控的目标非常多,如果没有一个完善的监控系统就难以保证整体服务的持续稳定。监控对象及分层在实际场景中监控系统按照监控的对象及系统层次结构,从底向上可以依次划分为基础层、中间层、应用层、业务层等多个层面的监控。具体可如图所示:基础层监控就是对主机服务器(包括宿主机、容器)及其底层资源进行监控,以.原创 2020-12-03 14:02:03 · 359 阅读 · 0 评论 -
近万服务实例稳定运行 0 故障,携程微服务架构是如何落地的?
携程从 .Net 技术栈的时代就已经开始微服务领域的探索,转入 Java 技术栈之后,更是经历了自研微服务框架,到现在高性能的 dubbo,目前我们正在 Service Mesh 的道路上探索,希望能够实现微服务框架的全面标准化、以及云原生。过去(自研服务框架)携程从 .Net 技术栈开始,最开始是基于 ESB 总线,虽然解决了内网服务调用的治理问题,但是集中式的服务架构,经常会出现单个服务把整个总线拖垮的情况,进而导致全网瘫痪的现象。基于注册中心的 SOA 服务架构,通过分布式的服务调用,解决了单点转载 2020-11-30 16:36:58 · 135 阅读 · 0 评论 -
超值干货:微服务架构下如何解耦,对于已经紧耦合下如何重构?
今天准备谈下微服务架构下各个微服务间如何解耦,以及对于已经紧耦合的微服务如何进行重构。要明白实际上微服务后续出现的诸多问题往往都是一开始微服务模块划分就不合理导致,对于具体的模块划分方法和原则,我总结出了以下几点。原则1:划分为<10个微服务模块原则2:强数据关联模块不要拆分原则3:以数据聚合驱动业务功能聚合原则4:从纵向功能划分思路到横向分层思路转变原则5:高内聚、松耦合的基础原则对于具体的内容在这篇文章不再重复给出。可以看到对于微服务模块拆分更多的是属于业务建模和系统分析方面的内.原创 2020-11-27 14:37:12 · 662 阅读 · 0 评论 -
熬夜肝出5大点,18张图带你彻底弄懂MySQL事务日志
在当今社会,充斥着大量的数据。从众多APP上的账户资料到银行信用体系等个人档案,都离不开对大量数据的组织、存储和管理。而这,便是数据库存在的目的和价值。目前数据库的类型主要分为两种,一种是关系型数据库,另一种是非关系型数据库(NoSQL)。而我们今天的主角MySQL就是关系型数据库中的一种。一、关系型数据库与NoSQL关系型数据库,顾名思义,是指存储的数据之间具有关系。这种所谓的关系通常用二维表格中的行列来表示,即一个二维表的逻辑结构能够反映表中数据的存储关系。概念总是拗口难懂的。那么简单来说,关系原创 2020-11-18 15:06:15 · 217 阅读 · 0 评论 -
缓存就会用!它架构还没听过?分布式多级缓存架构知识大瓶装,25 张图打包拎走
一谈缓存,内心顿时豁然开朗。迫于key-value的形式,总感觉轻风扶面,杨柳依依,一切都尽在我掌握之中。犹如那一眼相中佳人的冲动,脑子里尽是佳人的容颜。那缓存如果站在网站架构的角度,你知道它的设计原理和影响作用吗?絮叨在商业的世界里,常说的一句话是 “现金为王”。在互联网、移动互联网乃至整个软件技术的世界里面,与之相近的就是 “缓存为王”。为何这么说呢?试想一下,你个完整的网络请求(HTTP、SOAP、RPC等),如果在执行过程的某个部分尚有缓存,是不是就能提前响应给客户端呢?为何现在很原创 2020-10-09 15:19:45 · 466 阅读 · 0 评论 -
三分钟快速了解微服务中的限流逻辑与算法
在微服务架构中一个会被经常提及的概念就是“服务的熔断与限流”。而之所以如此频繁的提及这个概念,是因为在高并发场景下,瞬间的流量洪峰很容易超出微服务中各个系统的最大承受能力,从而造成服务的整体不可用。所以在设计高并发场景下的微服务架构时,要根据服务所能承受的最大流量制定限流策略,从而保证在高并发场景下服务的稳定性。今天的文章就和大家聊一聊关于限流的内容,包括常见的限流算法及目前微服务架构中主要的限流框架。限流的概念先介绍下什么是限流?其实日常生活中的限流场景随处可见,例如北京地铁早高峰,每天都是人山人.原创 2020-09-24 13:26:36 · 399 阅读 · 0 评论