![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 82
LuciferCoder
这个作者很懒,什么都没留下…
展开
-
SpringCloud---Ribbon
先看一下官方的结构图在一个微服务架构中,服务中心我们以Eureka举例,客户端从EurekaServer拿到服务注册表时,会先缓存到本地。然后通过Ribbon组件决定去调用哪一个具体服务实例。Ribbon是Netflix发布的云中间层服务开源项目,其主要功能是提供客户端实现负载均衡算法。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,Ribbon是一个客户端负载均衡器,我们可以在配置文件中Load Balancer后面的所有机器,Ribbon会自动的帮助你基于某种规则(如简单转载 2021-04-24 21:10:26 · 63 阅读 · 0 评论 -
Spring Cloud Alibaba配置中心 - nacos
基本概念同样的我们首先也先介绍一下和注册中心相关的一些基本名词概念:命名空间(namespace):和注册中心一样,命名空间属于Nacos顶层的结构,用于进行租户级别的隔离,我们最常用的就是不同环境比如测试环境,线上环境进行隔离。配置管理:系统配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动。配置项:一个具体的可配置的参数与其值域,通常以 param-key=param-value 的形式存在。例如我们常配置系统的日志输出级别(logLevel=INFO|WARN|ER转载 2021-04-18 20:18:54 · 197 阅读 · 0 评论 -
RocketMq常见面试题汇总
1、说说你们公司线上生产环境用的是什么消息中间件?见【2、多个mq如何选型?】2、多个mq如何选型?3、为什么要使用MQ?因为项目比较大,做了分布式系统,所有远程服务调用请求都是同步执行经常出问题,所以引入了mq4、RocketMQ由哪些角色组成,每个角色作用和特点是什么?5、RocketMQ中的Topic和JMS的queue有什么区别?queue就是来源于数据结构的FIFO队列。而Topic是个抽象的概念,每个Topic底层对应N个queue,而数据也真实存在queue上的。6、Ro转载 2021-03-28 16:22:17 · 1156 阅读 · 0 评论 -
RocketMQ常见面试题汇总
1、说说你们公司线上生产环境用的是什么消息中间件?见【2、多个mq如何选型?】2、多个mq如何选型?3、为什么要使用MQ?因为项目比较大,做了分布式系统,所有远程服务调用请求都是同步执行经常出问题,所以引入了mq4、RocketMQ由哪些角色组成,每个角色作用和特点是什么?5、RocketMQ中的Topic和JMS的queue有什么区别?queue就是来源于数据结构的FIFO队列。而Topic是个抽象的概念,每个Topic底层对应N个queue,而数据也真实存在queue上的。6、Ro原创 2021-03-28 16:20:14 · 441 阅读 · 0 评论 -
RocketMQ之分布式事务篇(搞懂消息事务,一篇就够!)
前言在系统变的复杂后,分布式、微服务等架构技术,就要考虑到应用在系统中了。尤其数据量大了后,就需要对数据库进行拆分。一旦数据库进行了分拆,那就出现很多头疼的问题,其中之一就是事务问题。那我们就来看看问题是怎么出现的?场景进行数据拆分后,就类似上面的架构上图中我们就拿用户的数据进行举例,用户量一旦几千万时,就需要进行分库分表;上图就分了3个库,每个库都保证了高可用。这样的架构设计,会遇到事务问题,我们来看看具体的业务场景:用户A转账100元给用户B,这个业务比较简单,我们来分析一下里面具体的步骤原创 2021-03-20 20:44:42 · 233 阅读 · 0 评论 -
利用Redis进行分布式限流,实现令牌桶算法
分布式限流方案计数:简单,双倍临界情况漏桶:恒定速度,不能应对峰值令牌桶:允许一定突然,丢掉部分请求有待商榷,令牌桶普遍用得多一些成熟方案可见,阿里Sentinel:https://sentinelguard.io/zh-cn/docs/basic-implementation.html计数实现原理:没超出显示进行自增local key = "rate.limit:" .. KEYS[1]local limit = tonumber(ARGV[1])local expire_time =原创 2021-03-14 17:13:41 · 1818 阅读 · 0 评论 -
RocketMQ可靠性传输关键点详解
讨论可靠性传输这个问题,我们需要从三个角度来分析:生产者弄丢数据、RocketMQ弄丢数据、消费者弄丢数据。消费端弄丢了数据对于消费端,如果我们在使用 Push 模式的情况下,只有我们消费返回成功,才会异步定期更新消费进度到 Broker 上。 如果消费端异常崩溃,可能导致消费进度未更新到 Broker 上,那么无非是 Consumer 可能重复拉取到已经消费过的消息。关于这个,就需要消费端做好消费的幂等性。Broker弄丢了数据我们首先来看看Broker的刷盘和复制方式。刷盘(1)原创 2021-02-28 20:56:49 · 188 阅读 · 0 评论 -
RocketMQ之Producer
一、RocketMQ 4.X 生产者常见核心配置compressMsgBodyOverHowmuch :消息超过默认字节4096后进行压缩retryTimesWhenSendFailed : 失败重发次数maxMessageSize : 最大消息配置,默认128ktopicQueueNums : 主题下面的队列数量,默认是4autoCreateTopicEnable : 是否自动创建主题 Topic, 开发建议为 true,生产要为 falsedefaultTopicQueueNums : 自动原创 2021-01-24 22:45:41 · 792 阅读 · 0 评论 -
RocketMQ之NameServer详解
NameServer介绍Name Server 是专为 RocketMQ 设计的轻量级名称服务,具有简单、可集群横吐扩展、无状态,节点之间互不通信等特点。整个Rocketmq集群的工作原理如下图所示:可以看到,Broker集群、Producer集群、Consumer集群都需要与NameServer集群进行通信:Broker集群:Broker用于接收生产者发送消息,或者消费者消费消息的请求。一个Broker集群由多组Master/Slave组成,Master可写可读,Slave只可以读,Master原创 2021-01-23 22:20:50 · 8097 阅读 · 1 评论 -
分布式锁的前世今生
一、为什么要使用分布式锁我们在开发应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!注意这是单机应用,也就是所有的请求都会分配到当前服务器的JVM内部,然后映射为操作系统的线程进行处理!而这个共享变量只是在这个JVM内部的一块内存空间!后来业务发展,需要做集群,一个应用需要部署到几台机器上然后做负载均衡,大致如下图:上图可以看到,变量A存在JVM1、JVM2、JVM3三个JVM内存中(这个变量A主要体原创 2021-01-17 11:14:20 · 125 阅读 · 0 评论