分布式微服务
文章平均质量分 93
分布式微服务
奋斗的小媛
这个作者很懒,什么都没留下…
展开
-
SpringCloud Ribbon 负载均衡
Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具。可以将面向服务的 REST 模板请求自动转化成客户端负载均衡的服务调用。Spring Cloud Ribbon 虽然是一个工具类框架,但它不像服务注册中心、配置中心、API网关那样需要独立部署。但是它几乎存在于每一个 Spring Cloud 构建的微服务和基础设置中。因为微服务间的调用,API 网关的请求转发等内容,实际上都是通过 Ribbon 来实现的,包括 Feign 它也是基于 Ribbon 实现的工具。原创 2021-05-05 15:09:09 · 212 阅读 · 0 评论 -
Nacos 配置中心的实现及原理
什么是 NacosNacos 是阿里发起的开源项目,地址:https://github.com/alibaba/nacos。Nacos 主要提供两种服务,一是配置中心,支持配置注册、变更下发、层级管理等,意义是不停机就可以动态刷新服务内部的配置项;二是作为命名服务,提供服务的注册和发现功能,通常用于在 RPC 框架的 Client 和 Server 中间充当媒介,还附带有健康监测、负载均衡等功能。本文聚焦于 Nacos 的第一块功能,即配置中心的实现。先叙述一个配置中心通常需要哪些组成部分,再结合 Na原创 2021-04-18 14:56:58 · 1953 阅读 · 0 评论 -
Spring Cloud-Feign设计原理
Spring Cloud-Feign设计原理2019-05-25阅读 1.4K0 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.csdn.net/article/details/82821294什么是Feign?Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的转载 2021-03-25 23:43:18 · 212 阅读 · 0 评论 -
apollo 与 nacos 功能对比
apollo与nacos 都为目前比较流行且维护活跃的2个配置中心,笔者对nacos(1.1.4版本)与 apollo(2020.1月更新源码部署)版本从几个方面进行了详细的对比。一:界面对比在界面上对2个对比,个人感觉2者都差不多,nacos可能看起来比较简洁,直接把所有项目和配置都直接展示出来了,但是apollo再项目划分概念上就比较清晰,进入后首先需要选择项目,选择项目后跳转才可以看到里面的配置,在配置上与nacos不同,apollo将每个配置项都分开解析出来了,每个配置项都有单独的发布和未发转载 2021-03-22 22:50:24 · 8307 阅读 · 0 评论 -
Sentinel 对比 Hystrix
先来看一下 Hystrix 的官方介绍:Hystrix is a library that helps you control the interactions between these distributed services by adding latency tolerance and fault tolerance logic. Hystrix does this by isola...原创 2020-04-16 00:21:58 · 431 阅读 · 0 评论 -
Sentinel 流量控制
一、Sentinel 介绍Sentinel 是阿里巴巴出品的面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从限流,流量整形、熔断降级、系统负载保护等多个维度来保障微服务的稳定性。主页地址SentinelHystrixresilience4j隔离策略信号量隔离(并发线程隔离)链接线程池隔离/信号量隔离信号量隔离熔断降级策略基于响应时间、异常比率、异常数基于异常比率基于异常比率、响应时间实时统计实现滑动窗口滑动窗口Ring Bit Buf原创 2021-03-21 15:36:57 · 476 阅读 · 0 评论 -
Gateway 网关
Spring Cloud Gateway 作为 Spring Cloud框架的第二代网关,在功能上要比 Zuul更加的强大,性能也更好。随着 Spring Cloud的版本迭代,Spring Cloud官方有打算弃用 Zuul的意思。在笔者调用了 Spring Cloud Gateway的使用和功能上,Spring Cloud Gateway替换掉 Zuul的成本上是非常低的,几乎可以无缝切换。Spring Cloud Gateway几乎包含了 Zuul的所有功能。一、网关定义API 网关是一个.原创 2021-03-20 23:38:54 · 676 阅读 · 0 评论 -
SpringCloud Fegin 负载均衡
Spring Cloud Ribbon 和 Spring Cloud Hystrix 在微服务中实现了客户端负载均衡的服务调用以及通过断路器来保护微服务应用。这两者作为基础工具类框架广泛地应用在各个微服务的实现中,不仅包括我们自身的业务类微服务,也包括一些基础设置类微服务(比如网关)。在实践中,这两个框架的使用几乎是同时出现的。那么是否有更高层次的封装来整合这两个基础工具,有就是Spring Cloud Fegin。基于 Netflix Feign 实现,除了整合上面两个强大的功能之外,还提供了一种声明式.原创 2021-03-20 23:24:49 · 251 阅读 · 0 评论 -
Nacos 服务发现
一、Nacos 简介Nacos 是阿里的一个开源产品,它是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。Nacos 使服务更容易注册,并通过 DNS或 HTTP接口发现其他服务,Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求;官网**为什么需要注册中心:**微服务可能是部署在云环境的,服务实例的网络位置或许是动态分配的。另外,每一个服务一般会有多个实例来做负载均衡,由于宕机或升级,服务实例网络地址会经常发生变动改变。再者,每一个服务也可能应对临时访问压力增原创 2021-03-20 22:55:38 · 1545 阅读 · 0 评论 -
Nacos 实现 AP+CP原理[Raft 算法 ]
一、什么是 Raft算法Raft 适用于一个管理日志一致性的协议,相比于 Paxos 协议 Raft 更易于理解和去实现它。为了提高理解性,Raft 将一致性算法分为了几个部分,包括领导选取(leader selection)、日志复制(log replication)、安全(safety),并且使用了更强的一致性来减少了必须需要考虑的状态。Raft算法将 Server划分为3种状态,或者也可以称作角色:【1】Leader:负责 Client交互和 log复制,同一时刻系统中最多存在1个。【2】F原创 2021-03-20 22:46:11 · 6773 阅读 · 0 评论 -
注册中心技术选型
市面上流行的开源注册中心很多,耳熟能详的有 Eureka、Zookeeper、Nacos、Consul。我们在选型的时候也主要从这四个组件中进行筛选。下面就对我们内部的讨论内容进行整理:**第一个维度:**开源公司的实力Eureka 是 Netflix 公司出品的一款注册中心,Netflix 是一家美国公司,主要做在线影片租赁提供商。嗯…,类似于爱奇艺吧。2012-2014开源,发布了一个 release版本;Spring Cloud 是基于 Netflix Eureka 做了二次封装。Eureka提原创 2021-03-20 21:53:46 · 396 阅读 · 0 评论 -
Zookeeper
一、Zookeeper 的高可用性原理一个 ZooKeeper 集群如果要对外提供可用的服务,那么集群中必须要有过半的机器正常工作并且彼此之间能够正常通信。如果想搭建一个能够允许 N 台机器 down 掉的集群,那么就要部署一个由 2N+1 台服务器构成的 ZooKeeper 集群。所以部署3个节点,那么就得至少有2个节点可用则该集群才可用。4个节点同样还是要2个以上。所以 Zookeeper集群部署的节点(非Observer)数一般为奇数。高可用机制其实基于 ZAB协议*[链接]**。二、Zooke原创 2020-11-09 16:14:41 · 92 阅读 · 0 评论 -
Zookeeper Leader选举
Zookeeper Leader选举Leader选举是保证分布式数据一致性的关键所在。当 Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入 Leader选举:【1】服务器初始化启动;【2】服务器运行期间无法和 Leader保持连接;服务器启动时期的 Leader选举若进行 Leader选举,则至少需要二台机器,这里选取三台机器组成的服务器集群为例。在集群初始化阶段,当有一台服务器 Server1启动时,其单独无法进行和完成 Leader选举,当第二台服务器 Server2启动原创 2020-11-09 16:10:28 · 93 阅读 · 0 评论 -
Zab(Zookeeper Atomic Broadcast)协议
Zab(Zookeeper Atomic Broadcast)协议一、什么是 Zab协议Zab( Zookeeper Atomic Broadcast**:Zookeeper原子广播)Zookeeper 通过 *Zab 协议*保证分布式事务的最终一致性。【1】Zab协议是为分布式协调服务Zookeeper 专门设计的,是 Zookeeper保证数据一致性的核心算法。Zab借鉴了 Paxos算法,但又不像 Paxos那样,是一种通用的分布式一致性算法。支持崩溃恢复 的 原子广播协议。【2】在 Zoo原创 2020-11-09 16:08:17 · 244 阅读 · 1 评论 -
Java面试——微服务
一、什么是微服务就目前而言,对于微服务业界并没有一个统一的,标准的定义。但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。另外,应避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择原创 2020-07-08 23:33:11 · 207 阅读 · 0 评论 -
分布式中的一致性hash算法
|0业务场景近年来B2C、O2O等商业概念的提出和移动端的发展,使得分布式系统流行了起来。分布式系统相对于单系统,解决了流量大、系统高可用和高容错等问题。功能强大也意味着实现起来需要更多技术的支持。例如系统访问层的负载均衡,缓存层的多实例主从复制备份,数据层的分库分表等。我们以负载均衡为例,常见的负载均衡方法有很多,但是它们的优缺点也都很明显:随机访问策略。系统随机访问,缺点:可能造成...转载 2020-04-15 21:56:11 · 210 阅读 · 0 评论 -
三种实现分布式锁的方式
一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几台机器上...转载 2020-04-15 21:39:09 · 164 阅读 · 0 评论 -
Dubbo架构图和Dubbo执行流程
Dubbo架构图从架构图可以看出,Consumer服务消费者,Provider服务提供者。Container服务容器。消费当然是invoke提供者了,invoke这条实线按照图上的说明当然是同步的意思了。但是在实际调用过程中,Provider的位置对于Consumer来说是透明的,上一次调用服务的位置(IP地址)和下一次调用服务的位置,是不确定的。这个地方就需要使用注册中心来实现软负载。...转载 2020-04-12 23:21:39 · 917 阅读 · 0 评论 -
微服务与 SOA 服务的区别
【1】服务拆分粒度:SOA 首先要解决的是异构应用的服务化;微服务强调的是服务拆分尽可能小,最好是独立的原子服务。【2】服务依赖:传统的 SOA 服务,由于需要重用已有的资产,存在大量服务间依赖;微服务的设计理念是服务自治、功能单一独立,避免依赖其他服务产生耦合,耦合会带来更高的复杂度。【3】服务规模:传统 SOA 服务粒度比较大,多数会采用将多个服务合并打成 war 包的方案,因此服务实例数...原创 2020-04-02 23:16:17 · 284 阅读 · 0 评论 -
Eureka 和 Zookeeper 都可以提供服务注册与发现的功能,请说说两个的区别?
Zookeeper 保证了CP(C:一致性,P:分区容错性),Eureka保证了AP(A:高可用)【1】当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的信息,但不能容忍直接 down 掉不可用。也就是说,服务注册功能对高可用性要求比较高,但 zk 会出现这样一种情况,当 master 节点因为网络故障与其他节点失去联系时,剩余节点会重新选 leader。问题在于,选取 ...原创 2020-04-02 23:16:31 · 238 阅读 · 0 评论 -
SpringCloud五大组件详解
springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合。基于springboot构建。springcloud的版本说明:springcloud项目是由多个独立项目集合而成的,每个项目都是独立的,各自进行自己的迭代和版本发布。所以springcloud不方便使用版本号来管理,而是使用版本名。以避免和子项目版本号的冲突。SpringCloud 5大常用组件服务发现—...原创 2020-04-02 23:16:53 · 1965 阅读 · 0 评论 -
SpringCloud 和 Dubbo 有哪些区别
Dubbo SpringCloud 服务注册中心 Zookeeper Eureka 服务调用方式 RPC REST API 服务监控 Dubbo-monitor Spring BootAdmin 断路器 不完善 Spring Cloud Netflix Hystrix 服务网关 无 Spring Clo...原创 2020-04-02 23:17:06 · 222 阅读 · 0 评论 -
java面试---SpringCloud 和 Dubbo
SpringCloud 和 Dubbo 有哪些区别 Dubbo SpringCloud 服务注册中心 Zookeeper Eureka 服务调用方式 RPC REST API 服务监控 Dubbo-monitor Spring BootAdmin 断路器 不完善 Spring Cloud Netflix Hystri...原创 2020-03-30 16:12:57 · 169 阅读 · 0 评论 -
Gateway 网关
Spring Cloud Gateway 作为 Spring Cloud框架的第二代网关,在功能上要比 Zuul更加的强大,性能也更好。随着 Spring Cloud的版本迭代,Spring Cloud官方有打算弃用 Zuul的意思。在笔者调用了 Spring Cloud Gateway的使用和功能上,Spring Cloud Gateway替换掉 Zuul的成本上是非常低的,几乎可以无缝切换。Spring Cloud Gateway几乎包含了 Zuul的所有功能。一、网关定义API 网关是一..原创 2020-11-09 10:20:28 · 1724 阅读 · 0 评论 -
java面试---SpringCloud
一.微服务的优点缺点?说下开发项目中遇到的坑?优点:1.每个服务直接足够内聚,代码容易理解2.开发效率高,一个服务只做一件事,适合小团队开发3.松耦合,有功能意义的服务。4.可以用不同语言开发,面向接口编程。5.易于第三方集成6.微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面结合.7.可以灵活搭配,连接公共库/连接独立库缺点:1.分布式系统的责任性2.多服务...原创 2020-04-15 23:20:56 · 128 阅读 · 0 评论