- 博客(236)
- 资源 (42)
- 收藏
- 关注
原创 Ribbon IPing机制源码探秘
文章目录IPing机制用时间换空间?Ribbon IPing机制源码探秘IPing机制Ribbon会主动判断服务节点的当前状态,决定是否可作为目标节点,只有当前可用的节点才会作为负载均衡器的目标节点。IPing有以下几个手段:DummyPing:默认返回true,即认为所有节点都可用,这也是单独使用Ribbon时的默认模式NIWSDiscoveryPing:借助Eureka服务发现机制获取节点状态,假如节点状态是UP则认为是可用状态PingUrl:主动向服务节点发起一次http调用,如果对方有响
2023-07-02 12:06:10 3651 107
原创 Ribbon LoadBalanced底层机制源码探秘
通过本文你可以学习到:1. LoadBalanced作用原理2. 拦截器到Rule的调角链路3. IPing机制
2023-06-18 10:45:16 3330 110
原创 【Java基础 3】Java 数组详解
数组是相同数据类型的多个数据的容器。这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素。(“简单理解就是:一个跟一个顺序排列”)二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,二分查找要求数组数据必须采用顺序存储结构有序排列。
2023-06-10 20:33:22 1978 12
原创 Ribbon 负载均衡策略 —— 图解、源码级解析
文章目录负载均衡策略RandomRuleRoundRobinRuleRetryRuleWeightedResponseTimeRuleBestAvailableRuleAvailabilityFilteringRuleZoneAvoidanceRuleRibbon 负载均衡策略源码通过本文你可以学习到:常见的7种负载均衡策略思想自旋锁的使用方式防御性编程负载均衡策略RandomRule该策略会从当前可用的服务节点中,随机挑选一个节点访问,使用了yield+自旋的方式做重试,还采用了严格的
2023-06-03 21:07:48 3090 81
原创 【Java基础 3】流程控制
一种基本的控制结构,它按照语句出现的顺序执行操作循环语句功能在循环条件满足的情况下,反复执行特定代码循环语句分类for 循环while 循环do/while 循环。
2023-05-28 15:35:41 1929 12
原创 Eureka 心跳和服务续约源码探秘——图解、源码级解析
文章目录关于心跳关于服务续约Eureka 心跳和服务续约源码关于心跳SpringCloud借助“心跳”来知晓服务的可用性,心跳检测有以下特点:客户端发起同步状态服务剔除服务续约客户端发起: 心跳服务是由一个个服务节点根据配置的时间主动发起的。同步状态: “心跳”不只要告诉注册中心自己的状态,快不行了(OUT_OF_SERVICE)或是一切正常(UP状态)服务剔除: 对一段时间无响应的服务,那便要主动从注册列表中剔除,以防服务调用方请求失败。服务续约: 服务续约底层也是靠着心跳来实现
2023-05-25 20:57:22 4869 77
原创 【Java基础 2】Java 基础语法
1 变量与基本数据类型1.1 变量变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。变量分类:按所属的数据类型划分:基本数据类型变量引用数据类型变量按被声明的位置划分:局部变量:方法或语句块内部定义的变量成员变量:方法外部、类的内部定义的变量特别注意:类的外面不能有变量的声明1.2 数据类型由于变量记录的数据内容大小不同, 导致所需的存储单元大小不同,在 Java 语言中使用数据类型的概念加以描述。字节是计算机信息
2023-05-07 13:10:25 1623 23
原创 Eureka 服务注册源码探秘——图解、源码级解析
文章目录关于注册中心Eureka 服务注册源码关于注册中心服务注册是为了解决“你是谁”这个问题,即获取所有服务节点的身份信息和服务名称,从注册中心的角度来说我们有以下两种比较直观的解决方案:由注册中心主动访问网络节点中所有机器注册中心等待服务节点上门注册目前主流的注册中心都选择第二种方案,主要原因是第一种方案有很多弊端:模型复杂: 网络环境浩如烟海,轮询每个节点的做法通常是注册中心发局域网广播,客户端响应的方式。现实中对于跨局域网的分布式系统来说,响应模型更加复杂网络消耗大: 整个网络环
2023-05-02 22:10:17 5028 104
原创 【Java基础 1】Java 环境搭建
1 java发展史及特点1.1 发展史1992年:Oak面向对象语言1994年:将 OaK 应用于万维网1995年:正式更名为 Java,代表性技术:Java 虚拟机、Applet、AWT 等1996年:JDK1.01997年:JDK 1.1,代表性技术:JDBC、JavaBeans、RMI、JAR 文件格式、Java 语法中的内部类和反射1998年:JDK1.2,代表性技术:Swing、Java IDL、EJB、Java Plug-in 等,在 API 文档中,添加了 strictfp 关键
2023-04-22 17:08:24 2780 22
原创 RocketMQ 消费者Rebalance 解析——图解、源码级解析
文章目录什么是消息负载均衡?Rebalance的原因负载策略使用方法消息消费默认策略什么是消息负载均衡?Rebalance机制: 将一个Topic下的多个队列在同一个消费者组下的多个消费者实例之间进行重新分配。该机制的目的是为了提高消息的并行处理能力例如: 一个Topic下有5个队列,如果只有一个消费者的话,这个消费者就会处理所有队列的消息。如果有两个消费者的话,就可以两个消费者共同处理这5个队列但Rebalance机制也存在明显的限制与危害:如果消费者组下的消费者实例数量大于队列数量时,多
2023-04-15 11:27:20 2118 70
原创 Code Review时学到的技巧之isAssignableFrom
📆 最近更新:2023年4月1日🍊 个人简介:通信工程本硕 for NJU💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2023-04-01 23:55:24 3105 86
原创 RocketMQ 事务消息 原理及使用方法解析
📆 最近更新:2023年3月24日🍊 个人简介:通信工程本硕 for NJU💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2023-03-24 20:30:52 3011 66
原创 RocketMQ Broker消息处理流程剩余源码解析
📆 最近更新:2023年3月4日🍊 个人简介:通信工程本硕 for NJU💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2023-03-04 21:19:39 2313 77
原创 RocketMQ Broker消息处理流程及部分源码解析
📆 最近更新:2023年2月10日🍊 个人简介:通信工程本硕 for NJU💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2023-02-10 21:53:03 3515 83
原创 RocketMQ 存储优化技术 解析——图解、源码级解析
写入消息时,`CommitLog`会先从`MappedFileQueue`(队列)中获取一个`MappedFile`,`MappedFile`对象的预分配过程如下图所示:
2023-01-13 19:49:02 2818 95
原创 RocketMQ NameServer 概览
再次回看一下RocketMQ的集群架构,里面的注册中心就是NameServer,它是一个轻量级的Topic路由注册中心,角色类似于Dubbo里的ZooKeeper,支持BrokerBroker管理路由信息管理BrokerNameServer接收Broker集群的注册信息并保存下来作为路由信息。此外,还会提供心跳检测机制,监测Broker是否“存活”。NameServer会保存关于Broker集群的整个路由信息和用于客户端查询的队列信息,之后Producer和Consumer就可以通过。
2022-11-18 19:46:17 3098 104
原创 RocketMQ 消息重新投递 解析——图解、源码级解析
死信队列重新投递当消息消费失败时,消息队列RocketMQ会自动进行消息重试,达到最大重试次数后,如果依然没有消费成功的话,说明消费者无法正常消费该消息了。在这种情况下,RocketMQ不能直接把消息给丢弃掉,而是会将其发送到该消费者对应的死信队列中。定时重新投递...
2022-11-04 19:27:08 1894 95
原创 RocketMQ 消息失败重试 解析——图解、源码级解析
📆 最近更新:2022年10月24日🍊 个人简介:通信工程本硕💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2022-10-24 21:46:17 3392 94
原创 RocketMQ 消费者Rebalance算法 解析——图解、源码级解析
📆 最近更新:2022年10月15日🍊 个人简介:通信工程本硕💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2022-10-15 20:38:37 2634 103
原创 RocketMQ 消费者拉取消息(Pull) 解析——图解、源码级解析
📆 最近更新:2022年9月30日🍊 个人简介:通信工程本硕💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2022-09-30 20:26:54 3044 100
原创 RocketMQ 消费者消息回发 解析——图解、源码级解析
📆 最近更新:2022年9月9日🍊 个人简介:通信工程本硕💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2022-09-16 21:52:31 2169 95
原创 RocketMQ Push消息给消费者 解析——图解、源码级解析
文章目录概述Push消息消费流程开启消息消费接收消息概述RocketMQ中消费者有两种方式获得消息来消费:Push模式和Pull模式Push模式:服务端将消息推送到客户端Pull模式:客户端不断请求服务端,或许消息实际上这两种模式的底层实现都是采用的Consumer主动拉取消息的方式在Push方式里,把Consumer轮询过程封装起来了,并注册了MessageListener监听器,当拉取到消息后唤醒监听器来消费,所以感觉消息就像是被服务端推过来的一样在Pull模式中,Consumer
2022-09-09 19:30:37 1956 92
原创 RocketMQ 消费者监听模型 解析——图解、源码级解析
文章目录前面已经把RocketMQ发送消息的主要流程梳理了一遍,接下来我将介绍消费者消费消息的源码及流程,主要包含但不仅限于一下内容:消息消费模式消息消费的流程消费者负载均衡算法消费失败如何进行重试消息如何进行重新投递...
2022-09-02 19:23:48 3175 138
原创 RocketMQ 消息存储机制分析
作为一个消息中间件,消息存储的效率直接影响到消息存取的效率,RocketMQ的单机吞吐量达到10w级别也和其存储设计有关,文本就对其进行一些探索。
2022-08-26 19:26:43 3152 104
原创 RocketMQ 发送失败重试机制 解析——图解、源码级解析
文章目录重试机制重试机制源码分析重试设置重试机制由于在复杂的分布式系统中,经常会有网络波动、服务器宕机、程序出现异常,所以就有可能出现消息发送或消费失败的问题。所以MQ就必须提供消息重试的机制,如果没有消息重试,就可能会产生消息丢失的问题,对系统产生较大的影响,整体示意图如下图所示:MQ消费者的消费逻辑失败时,可以通过设置返回状态来达到消息重试的结果。MQ消息重试只对集群消费方式生效,广播消息不提供失败重试的特性,消费失败后会继续往后消费新的消息。重试机制源码分析/** * 发送消息
2022-08-20 08:55:44 2478 108
原创 RocketMQ 容错策略 解析——图解、源码级解析
📆 最近更新:2022年8月12日🍊 个人简介:通信工程本硕💪、Java程序员🌕。做过科研paper,发过专利,优秀的程序员不应该只是CRUD。
2022-08-12 20:11:53 2282 91
原创 RocketMQ 延迟消息解析——图解、源码级解析
文章目录定义DDMQdelay service的设计细节RocketMQ中的延迟消息生产者发送延迟消息Broker端处理延迟消息延迟消息与消息重试机制的关系定义延迟消息: 生产者发送消息之后,不能立刻被消费者消费,而是应该等到一定时间之后才可以被消费。例如: 在淘宝购物时,当用户提交一个订单之后,如果30min还没有支付的话,就给用户发送一条提示消息Broker提供延迟消息功能的核心思路是一致的:将延迟消息先存放在一个临时的空间里,等到期后才发送给Topic如上图所示,实现延迟消息的步骤如下:
2022-08-05 19:39:09 2163 123
原创 IaaS基础架构云 —— 云网络
用户购买的资源不直接暴露在公网上,只有一个内网IP地址,通过VPC进行串联,外部需要访问它时要通过负载均衡器SLB(可能是四层的网络负载均衡器,也可能是七层的HTTP负载均衡器),负载均衡器外面有WAF防御,DDoS防御,CDN网络加速等等。当用户购买资源时,买的其实是一个虚拟机,指定内存、CPU网络带宽就行了;特点易于使用、终态声明、基础架构即代码、不可变基础架构、支持传参、乐高编程。三大自动化平台Terraform,CloudFormation,ROS。创建自动化脚本,从而实现资源的创建。...
2022-07-22 20:04:03 2320 113
原创 云原生应用的四大思考点和代码上云改造详细流程
一份代码多次发布关键点:一个应用 = 一份代码库 = 多个版本编译发布和运行分离关键点:一次发布 = 一次编译 = 多配置多环境发布环境一致性开发、准生产、生产三个环境的技术栈、CICD、运行时环境、后台数据库、中间件全部一致无状态进程关键点:不共享磁盘 + 缓存外置同步并发快速启动优雅关闭关键点:无状态 + 无依赖 + 秒级启停依赖明示除了对第三方包会有一些依赖之外,对系统也可能有一些依赖,比如:需要用Gradle / Maven来明确指出需要依赖第三方什么库和什么包,在操作系统层面可以尝试采用
2022-07-08 19:49:55 2507 156
原创 RocketMQ 消息负载均衡策略解析——图解、源码级解析
Producer发送消息时,会首先获取Topic路由信息(通过本地 + 注册中心拉取),RocketMQ的架构里有多个Broker服务器,而消息队列也会存在于多个Broker服务器里,所以就需要负载均衡策略来将流量尽可能均匀的打到所有服务器上。本章节就介绍一下RocketMQ中常用的四种负载均衡策略。找到Producer发送消息时选择消息队列的逻辑,在类中定义了方法:进入到方法里:上述代码的类中定义了方法:根据源码可以很清楚地看到,默认策略就是依次选择消息队列进行发送,具体的执行细节如下:如何选一个
2022-07-01 21:52:38 3792 110
原创 毕业季,既是告别,也是新的开始
又是一年毕业季,大家好,我是小王,结束了一天的工作之后,突然就很想回忆一下整个学生时代,至于为什么是回忆整个学生时代,因为我确信我不会再去深造了,这一路走来,还是有不少心酸与收获的,尽管收获也有,但我做科研的热情已经基本磨灭了… …所以我现在对院士的敬意是拉满的,真心钦佩!还记得三年前第一次迈入南大校园的时候,校园里各种庄严的建筑着实让我震撼,本科期间一直生活在湖大古朴的校园里,就像从民国穿越到了现代,给我的震撼感是很强的,这一种奇怪的感觉也让我当时对科研充满了近乎无限的热情。说实话在我的潜意识里认为,“当
2022-06-30 08:33:04 1755 18
原创 从 jsonpath 和 xpath 到 SPL
XML和Json不仅是结构化文本,而且擅长表示多层数据,可承载足够通用和足够丰富的信息,因此常被用于各种数据交换和信息传递事务,比如WebService/Restful,微服务等。但多层数据要比传统的二维表结构复杂,取数后再处理的难度也大。早期,没有专业的json/XML的后处理技术,JAVA开发者通常要采取硬写代码或入库再算的方式。硬编码计算能力差,代码量大,开发效率很低。入库虽然解决了部分计算能力,但步骤多,延迟大,额外制造了JAVA与数据库的紧耦合,架构性很差,而且数据库只擅长计算二维表,处理多层结构
2022-06-22 10:58:49 651 78
原创 云原生之混合云网络互联
LVS直接路由:这种方式效率最高,可以达到几百万的并发支持优点:回包不经过负载均衡器,性能较高缺点:内网必须配置VIP,当内网支持的负载均衡个数变多时,需要配置更多的VIP,如果不是处在局域网内时,会有很多的安全隐患,网络出口可能发给任何ip的任何端口LVS IP隧道负载均衡器接收到用户发来的请求之后,会将CIP+VIP部分进行一个加密,再加上一个DIP和RIP发给服务器......
2022-06-15 21:59:00 677 35
原创 RocketMQ 消息路由解析——图解、源码级解析
???? Java学习:Java从入门到精通总结???? Spring系列推荐:Spring源码解析???? 最近更新:2022年1月26日???? 个人简介:通信工程本硕????、代码界新人????。我的故事充满机遇、挑战与翻盘,欢迎关注作者来共饮一杯鸡汤???? 点赞 ???? 收藏 ⭐留言 ???? 都是我最大的动力!文章目录消息路由获取Topic获取路由信息函数tryToFindTopicPublishInfoTopic 路由信息表合并路由数据消息路由在RocketMQ的系
2022-06-04 10:44:44 2320 167
原创 OAuth2.0第三方授权原理与实战
🍊 Java学习:Java从入门到精通总结🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想🍊 绝对不一样的职场干货:大厂最佳实践经验指南📆 最近更新:2022年5月28日🍊 个人简介:通信工程本硕💪、Java程序员🌕。做过科研,发过专利,优秀的程序员不应该只是CRUD🍊 点赞 👍 收藏 ⭐留言 📝 都是我最大的动力!文章目录RFC6749OAuth 2.0授权4大模式合同到期后的续约机制OAuth2.0第三方授权实战oauth-clientoauth-serv.
2022-05-29 11:23:31 1527 42
原创 RocketMQ 消息投递解析—— 时序图、调用链、源码级解析
在前几篇文章里我曾经也画过消息投递的模型图,这里再来简单复习一下:消息生产者集群从注册中心获取到路由信息(负载均衡),然后将消息发送给Broker集群;注册中心是无状态集群,即每一台服务器都不影响其他的服务器。
2022-05-24 20:33:35 1990 114
JSON解析大礼包.zip
2020-08-26
CP_OFDM多载波调制matlab代码
2020-08-10
FBMC多载波调制matlab代码
2020-08-10
mybatis一对多、多对多demo
2020-08-04
java实现随机迷宫生成、走迷宫小游戏
2020-04-05
java实现迷宫小游戏
2020-03-31
HCNA综合实验.zip
2019-12-06
David Silver 增强学习.pdf
2019-10-24
Matlab仿真数字音乐合成器
2019-03-29
Matlab仿真ACO-OFDM信号发送与接收
2019-03-21
图像识别、分布式、推荐系统.zip
2022-05-03
TensorflowIO操作.zip
2022-05-03
Tensorflow基础.zip
2022-05-03
线性回归、岭回归、逻辑回归、聚类.zip
2022-05-03
sklearn、knn、朴素贝叶斯、决策树.zip
2022-05-03
机器学习概述、特征工程、机器学习算法.zip
2022-05-03
机器学习课件HTML版笔记.zip
2022-05-03
Tensorflow与深度学习HTML版笔记.zip
2022-05-03
MIMO-3D Kronecker模型matlab建模.zip
2021-11-01
MIMO-WINNER模型matlab建模.zip
2021-11-01
ssm_bill_manager.zip
2020-10-31
JavaWeb综合项目——快递e栈
2020-10-15
mybatis_design.zip
2020-07-22
JavaWeb综合旅游网项目
2020-06-29
redis + ajax实现异步下拉列表加载
2020-06-13
java用户信息管理系统
2020-06-03
Java实现五子棋游戏(人机对战)
2020-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人