![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
springcloud
Kevin_cai09
无情的bug maker
展开
-
zookeeper整理
zookeeper文章目录zookeeper应用场景统一配置管理统一集群管理服务注册和服务发现分布式锁zookeeper架构特点数据结构节点类型节点数据结构leader选举watch机制原理写数据请求ZAB协议应用场景统一配置管理分布式环境下,配置文件同步非常常见在一个集群中,一般要求所有节点的配置信息都是一致的对配置文件修改后,希望能快速同步到各个节点上zookeeper可以作为一个分布式的配置中心:可将配置信息写入zookeeper的一个ZNode各个客户端服务器监听这个ZNod原创 2020-08-09 18:57:39 · 209 阅读 · 0 评论 -
分布式锁
文章目录分布式锁一,为什么需要分布式锁二,分布式锁实现2.1 Redis实现分布式锁加锁解锁原理实现深入探索Redisson加锁解锁原理不足2.2 zookeeper实现分布式锁加锁解锁原理实现优缺点分布式锁一,为什么需要分布式锁在单台服务器系统中,我们在解决并发问题时常用本地锁(synchronized,lock)去处理,但是在集群部署下,本地锁只能在单实例下起作用,服务和服务之前不能保证并发线程安全,所以,针对分布式环境下的并发问题就需要用到分布式锁去解决。分布式锁特性:**互斥性:**分布原创 2020-07-15 12:41:37 · 178 阅读 · 0 评论 -
springcloud bus
springcloud busspring cloud bus配合spring cloud config可以实现配置的动态刷新作用:管理和传播分布式系统间的消息广播状态更改,事件推送等做微服务间的通信通道基本原理:configClient实例都监听MQ中同一个topic(默认是springcloudBus)当一个服务刷新数据时,他会把这个消息放入到topic中,这样其他监听同一个topic的服务就能得到通知,然后去更新自身的配置原理demo搭建服务端搭建添加依赖:原创 2020-06-20 23:06:08 · 194 阅读 · 0 评论 -
sentinel
文章目录sentinel简介sentinel安装sentinel基本使用流控规则相关概念降级系统规则demosentinel简介随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助您保障微服务的稳定性。sentinel安装在这里推荐docker安装拉取镜像docker pull bladex/sentinel-dashboard运行镜像docker run --原创 2020-06-18 01:30:44 · 210 阅读 · 0 评论 -
springcloud config demo搭建
springcloud config demo服务端搭建新建远程git仓库,保存配置,并将仓库拉到本地,以后更新配置可在本地更新,在push到远程仓库新建3355配置中心模块添加依赖: <!--config server--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId原创 2020-06-17 02:00:15 · 328 阅读 · 0 评论 -
Apollo配置中心
文章目录配置中心springboot集成ApolloApollo安装springboot集成配置中心原来的单体项目,我们在做配置的时候其实是很轻松的,一个配置文件就可以搞定了,但是在分布式环境下,如果想动态改变系统配置,无非就是以下几种方式:将配置写入数据库,定时任务定时轮询,更新系统配置,但是这种方案有一定的延时,而且定时轮询也会消耗大量的数据库资源人肉修改每台机器上的配置文件将配置写到分布式缓存,每次业务调用都从缓存读取最新配置。这种方式是反伸缩模式的,而且缓存很容易成为热点和单点那么配原创 2020-06-17 00:48:51 · 4484 阅读 · 0 评论 -
gateway服务网关
文章目录服务网关简介Gateway工作流程三大核心概念处理流程demo服务网关简介服务网关能提供一种简单有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如熔断,限流,重试等Gateway是基于spring5,springboot2和project reactor等技术网关是所有微服务的入口Gateway工作流程三大核心概念路由路由是构建网关的基本模块,他由ID,目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由断言判断接收到的请求和断言是否匹配,原创 2020-06-15 00:39:23 · 2614 阅读 · 1 评论 -
hystrix服务熔断和降级
hystrix简介分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免的失败当多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的扇出,如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,从而引出系统崩溃,这就是服务雪崩解决方案hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统中,许多依赖不可避免的会调用失败,比如超时,异原创 2020-06-14 02:55:26 · 453 阅读 · 1 评论 -
openFeign服务调用
文章目录openFeign设计原理传统http请求流程openFeign流程实践openFeign设计原理openFeign是轻量级的Http请求框架,不再像restTemplate那样显式声明请求URL,参数,返回类型,直接通过模块化的思想,将服务调用层封装为一个模块,在controller层像调用普通service那样调用,相对更加直观。封装了Http调用流程,更适合面向接口化的变成习惯传统http请求流程类似httpclient,restTemplate,OkHttp都是如此openFei原创 2020-06-12 01:19:05 · 1503 阅读 · 0 评论 -
Java代码实现负载均衡五种算法
文章目录概况轮询法加权轮询法随机法加权随机法IP哈希法参考:Java代码实现负载均衡五种算法概况轮询法轮询算法按顺序把每个新的连接请求分配给下一个服务器,最终把所有请求平分给所有的服务器。优点:绝对公平缺点:无法根据服务器性能去分配,无法合理利用服务器资源。@Configuration@Slf4jpublic class RoundMethod { // 指向该服务的server的指针 AtomicInteger index = new AtomicInteger(原创 2020-06-10 11:35:55 · 718 阅读 · 0 评论 -
Ribbon负载均衡
文章目录Ribbon简介ribbon使用Ribbon简介ribbon是一种客户端负载均衡工具负载均衡是什么?简单来说就是将用户的请求平摊的分配到多个服务商,从而达到系统的HA(高可用),nginx,LVS都是常见的负载均衡的工具Ribbon客户端负载均衡和nginx服务端负载均衡的区别?nginx服务端负载均衡是客户端将请求提交到nginx,由nginx实现负载均衡(集中式负载均衡)ribbon客户端负载均衡是客户端本地负载均衡,在调用微服务接口的时候,会在注册中心上获取注册信息服务列表原创 2020-06-10 01:15:36 · 197 阅读 · 0 评论 -
zookeeper服务注册和服务发现
文章目录zookeeper docker单机安装使用和连接zookeeper数据结构zookeeper集群模式springcloud整合zookeeper作为注册中心zookeeper docker单机安装使用和连接拉取镜像docker pull zookeeper启动容器并添加映射docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest客户端命令连接zookeepe原创 2020-06-09 16:06:40 · 1090 阅读 · 0 评论 -
eureka服务注册
文章目录一,注册中心概述1.1 注册中心解决了什么问题?1.2 微服务的注册中心1.3 常见的注册中心二,Eureka2.1 Eureka基本组成2.2 Eureka服务治理机制2.3 搭建Eureka server2.4 搭建Eureka client2.5 注册中心集群部署2.6 Eureka自我保护机制一,注册中心概述1.1 注册中心解决了什么问题?微服务是不同的服务分布在不同的主机上,服务跟服务之间可能存在调用关系,那么之前我们可能是通过硬编码写死服务地址的方式来调用其他服务,这样对于后期服务原创 2020-06-07 23:53:05 · 355 阅读 · 0 评论