![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
微服务
dxx707099957
这个作者很懒,什么都没留下…
展开
-
熔断机制HYSTRIX
一、问题产生雪崩效应:是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程正常情况下的服务:某一服务出现异常,拖垮整个服务链路,消耗整个线程队列,造成服务不可用,资源耗尽: 形成过程: 1)服务提供者不可用 a)硬件故障:硬件损坏造成的服务器主机宕机, 网络硬件故障造成的服务提供者的不可访问 ...转载 2020-11-13 17:49:42 · 227 阅读 · 0 评论 -
微服务学习笔记-如何搭建微服务治理平台
一、微服务治理平台的基本功能1、服务管理通过微服务治理平台,可以调用注册中心提供的各种管理接口来实现服务的管理。根据我的经验,服务管理一般包括以下几种操作: 服务上下线。当上线一个新服务的时候,可以通过调用注册中心的服务添加接口,新添加一个服务,同样要下线一个已有服务的时候,也可以通过调用注册中心的服务注销接口,删除一个服务。 节点添加 / 删除。当需要给服务新添加节点时候,可以通过调用注册中心的节点注册接口,来给服务新增加一个节点。而当有故障节点出现或者想临时下线一些节点.原创 2020-08-20 10:05:00 · 1141 阅读 · 0 评论 -
微服务学习笔记-服务调用失败时得处理手段
一、超时单体应用被改造成微服务架构后,一次用户调用可能会被拆分成多个系统之间的服务调用,任何一次服务调用如果发生问题都可能会导致最后用户调用失败。而且在微服务架构下,一个系统的问题会影响所有调用这个系统所提供服务的服务消费者,如果不加以控制,严重的话会引起整个系统雪崩。所以在实际项目中,针对服务调用都要设置一个超时时间,以避免依赖的服务迟迟没有返回调用结果,把服务消费者拖死。这其中,超时时间的设定也是有讲究的,不是越短越好,因为太短可能会导致有些服务调用还没有来得及执行完就被丢弃了;当然时间也不.原创 2020-08-19 21:11:50 · 3407 阅读 · 0 评论 -
微服务学习笔记-如何应对服务端出现的故障
微服务系统可能出现故障的三种类型:集群故障,微服务系统一般都是集群部署的,根据业务量大小而定,集群规模从几台到甚至上万太都有可能。一旦某些代码出现bug,可能整个集群都会发生故障,不能提供对外提供服务。 单IDC故障,现在大多数互联网公司为了保证业务的高可用性,往往业务部署在不止一个 IDC。然而现实中时常会发生某个 IDC 的光缆因为道路施工被挖断,导致整个 IDC 脱网。 单机故障。顾名思义就是集群中的个别机器出现故障,这种情况往往对全局没有太大影响,但会导致调用到故障机器上的请求都失败,影响整原创 2020-08-19 10:58:31 · 651 阅读 · 0 评论 -
微服务学习笔记-如何使用服务路由
服务路由就是服务消费者在发起服务调用时,必须根据特定的规则来选择服务节点,从而满足某些特定的需求。一、服务路由的应用场景几种应用场景:分组调用。一般来讲,为了保证服务的高可用性,实现异地多活的需求,一个服务往往不止部署在一个数据中心,而且出于节省成本等考虑,有些业务可能不仅在私有机房部署,还会采用公有云部署,甚至采用多家公有云部署。服务节点也会按照不同的数据中心分成不同的分组,这时对于服务消费者来说,选择哪一个分组调用,就必须有相应的路由规则。 灰度发布。在服务上线发布的过程中,一般需要先在.原创 2020-08-19 10:01:05 · 584 阅读 · 0 评论 -
微服务学习笔记-如何使用负载均衡算法
为什么要引入负载均衡算法呢?主要有两个原因:一个是要考虑调用的均匀性,也就是要让每个节点都接收到调用,发挥所有节点的作用; 另一个是要考虑调用的性能,也就是哪个节点响应最快,优先调用哪个节点。常见的负载均衡算法1、随机算法从可用的服务节点中,随机挑选一个节点来访问。采用随机算法,在节点数量足够多,并且访问量比较大的情况下,各个节点被访问的概率是基本相同的。2、轮询算法按照固定的顺序,把可用的服务节点,挨个访问一次。轮询算法通常是把所有可用节点放到一个数组里,然后按照数组编号,挨个访.原创 2020-08-18 20:45:32 · 153 阅读 · 0 评论 -
微服务学习笔记-如何识别服务节点是否存活
心跳开关保护机制在网络频繁抖动的情况下,注册中心中可用的节点会不断变化,这时候服务消费者会频繁收到服务提供者节点变更的信息,于是就不断地请求注册中心来拉取最新的可用服务节点信息。当有成百上千个服务消费者,同时请求注册中心获取最新的服务提供者的节点信息时,可能会把注册中心的带宽给占满,尤其是注册中心是百兆网卡的情况下。所以针对这种情况,需要一种保护机制,即使在网络频繁抖动的时候,服务消费者也不至于同时去请求注册中心获取最新的服务节点信息。我曾经就遇到过这种情况,一个可行的解决方案就是给注册中心设置原创 2020-08-18 16:57:18 · 684 阅读 · 0 评论 -
微服务学习笔记-如何搭建一套服务追踪系统
服务追踪系统包含三个部分:埋点数据收集,负责在服务端进行埋点,来收集服务调用的上下文数据。 实时数据处理,负责对收集到的链路信息,按照traceId和spanId。 数据链路展示,把处理后的服务调用数据,按照调用链的形式展示处理。OpenZipkinOpenZipkin是Twitter开源的服务追踪系统。OpenZipkin主要由四个核心部分组成:Collector:负责收集探针Reporter埋点采集的数据,经过验证处理并建立索引。 Storage:存在服务调用的链路数据,默认原创 2020-08-18 15:30:15 · 260 阅读 · 0 评论 -
微服务学习笔记-如何搭建一个可靠的监控系统
一个监控系统主要涉及四个环节:数据收集、数据传输、数据处理和数据展示。不同的监控系统实现方案,在四个环节所使用的技术方案不同,适合的业务场景也不一样。比较流行的开源监控系统实现方案主要有两种:集中式日志解决方案,比如ELK 时序数据库解决方案,比如Graphite、TICK和PrometheusELKELK是Elasticsearch、Logstash、kibana三个开源软件产品首字母的缩写,它们三个通常配合使用,所以被称为ELK Stack。三个软件的功能各不相同:Log..原创 2020-08-14 16:09:56 · 480 阅读 · 0 评论 -
微服务学习笔记-开源RPC框架
一、PRC框架分类RPC框架主要分为两类:跟某种特定语言平台绑定,主要有:Dubbo:国内最早开源的RPC框架,由阿里巴巴公司开发并于2011年末对外开源,仅支持Java语言。 Motan:微博内部使用的RPC框架,于2016年对外开源,仅支持Java语言 Tars:腾讯内部使用的RPC框架,于2017年对外开源,仅支持C++语言 Spring Cloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,仅支持 Java 语言与语言无关即跨语言平台,主要有:gRPC原创 2020-08-13 21:16:03 · 679 阅读 · 0 评论 -
微服务学习笔记-开源服务注册中心选型
当下主流的服务注册与发现的解决方案主要有两种应用内注册与发现:注册中心提供服务端和客户端的SDK,业务应用通过引入注册中心提供的SDK,通过的SDK,通过SDK与注册中心交互,来实现服务的注册和发现。 应用外注册的发现:业务应用本身不需要通过SDK与注册中心打交道,而是通过其他方式与注册中心交互,间接完成服务注册与发现。两个典型的注册中心实现1、应用内采用应用内注册与发现的方式,最典型的案例要属Netflix开源的Eureka。Eureka的架构,主要由三个重要的组件组成:Eur原创 2020-08-12 18:23:29 · 446 阅读 · 0 评论 -
微服务学习笔记-注册中心如何落地
一、注册中心如何存储服务信息注册中心用来存储服务信息,服务信息春初节点信息(IP和端口)、请求失败时重试的次数、请求结果是否压缩等信息。服务信息通常用JSON字符串来存储,包含多个字段,每个字段代表不同的含义。服务一般分为多个不同的分组,每个分组的目的不同。主要集中分组方式:核心与非核心,从业务的核心程度来分。 机房,从机房的维度来分。 线上环境与测试环境,从业务场景维度来区分。所以注册中心存储的服务信息一般包含三部分内容:分组、服务名以及节点信息,节点信息又包括节点地址和几点其他信息。.原创 2020-08-11 21:24:44 · 200 阅读 · 0 评论 -
微服务学习笔记-服务发布和引用的实践
XML配置方式,服务发布和引用的具体实践以及可能遇到的问题。一、XML配置方式的服务发布和引用流程1、服务提供者定义接口服务提供者发布服务之前首先定义接口,声明接口名、传递参数以及返回值类型,然后把接口打包成JAR发布出去。2、服务提供者发布接口服务提供者发布的接口是通过在服务发布配置文件中定义接口来实现。一个具体的服务发布配置文件 user-last-status.xml ,它定义了要发布的接口 userLastStatusLocalService,对外暴露的协议是 Motan..原创 2020-08-10 11:38:14 · 179 阅读 · 0 评论 -
微服务学习笔记-Double框架中的微服务
一、服务发布与引用服务发布与引用的三种常用方式:RESTful、XML配置以及IDL文件。Double主要采用XML配置方式。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://dubbo.a原创 2020-08-07 18:12:01 · 4344 阅读 · 0 评论 -
微服务学习笔记-微服务治理得方式
可能会出现一些问题:注册中心宕机; 服务提供者右节点宕机; 服务消费者和注册中心之间网络不通; 服务提供者和服务提供者之间得网络不通; 服务提供者有些节点性能变慢; 消费提供者短时间内出现问题一、节点管理1、注册中心主动摘除机制服务提供者定时的主动向注册中心汇报心跳,注册中心根据服务提供者节点最近一次汇报心跳的时间与上一次汇报心跳时间做比较,如果超出一定时间,就认为服务提供者出现问题,继而把节点从服务列表中摘除,并把最近的可用服务节点列表推送给服务消费者。2、服务消费者摘除机制原创 2020-08-06 21:22:45 · 158 阅读 · 0 评论 -
微服务学习笔记-追踪微服务调用
微服务系统追踪微服务调用,跟踪记录一次用户请求经过哪些调用,经过哪些服务处理,并且记录每一次调用所设计的服务的详细信息。如果发生调用失败,可以根据日志快速定位出现问题的环节。一、作用 1.优化系统瓶颈 通过记录调用经过的每一条链路上的耗时,快速定位系统中的瓶颈点。 2.优化链路调用 通过服务追钟可以分析调用所经过的路径,然后评估是否合理,通过对调用链路进行分析,可以跨数据中心的服务调用,从而进行优化,尽量规避这种情况。 ...原创 2020-08-06 18:16:44 · 567 阅读 · 0 评论 -
微服务学习笔记-如何监控微服务调用
如何监控微服务调用一、监控对象二、监控指标三、监控维度四、监控系统原理一、监控对象用户端监控业务直接对用户提供的功能的监控接口监控业务提供的功能所依赖的具体RPC接口的监控资源监控某个接口依赖的资源的监控基础监控服务器本身的健康状况的监控二、监控指标请求量实时请求量:QPS(Queries Per Second)即每秒查询次数来衡量,反映服务调用的实时变化情况统计请求量:PV(Page View)即一段时间内用户的访问量来衡量响应时间:一段时间内所调用的平均耗时来反映原创 2020-08-05 11:21:44 · 546 阅读 · 0 评论 -
SOA架构和微服务架构的区别
1.SOA架构和微服务架构的区别首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,..转载 2020-08-04 20:37:42 · 150 阅读 · 0 评论 -
微服务学习笔记-微服务架构基本组件
1. 服务描述 解决的问题是服务如何对外描述。 常用的服务描述包括: ○ RESTful API ○ XML配置 ○ IDL 服务描述方式 使用场景 缺点 RESTful API 跨语言平台,组织内外皆可 使用HTTP作为通信协议,相比TCP协议,性能较差 XML配置 JAVA平台,一般作组织内部 不支持跨语言平台 IDL文件 跨语...原创 2020-08-02 15:29:49 · 217 阅读 · 0 评论 -
微服务学习笔记-实现远程服务调用
解决的问题:1、通信框架(解决客户端和服务端如何建立连接、管理连接以及服务端如何处理请求)HTTP Socket2、通信协议(解决客户端和服务端采用哪种数据传输协议的问题)同步阻塞方式(BIO)适用于连接数比较小的业务场景同步非阻塞方式(NIO)适用于连接数比较多并且请求消耗比较轻的业务场景异步非阻塞方式(AIO)适用于连接数比较多而且请求消耗比较重的业务场景通用通信框架如Netty、MINA3、序列化与反序列化(解决客户端和服务端采用哪种数据编码的问题)序列...原创 2020-07-31 10:03:53 · 164 阅读 · 0 评论 -
微服务学习笔记-注册中心
原创 2020-07-30 20:58:05 · 98 阅读 · 0 评论