自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 服务注册发现:Eureka源码剖析(8)核心机制之服务下线与实例摘除

本篇发布于2020-02-25 19:11:11当调用eureka client的shutdown方法时,会走服务下线流程。(这个shutdown方法会在Spring Cloud Netflix中spring上下文关闭时调用)触发下线监听器停止调度任务(心跳、拉取注册表)调用eureka server的 DELETA /v2/apps/APP_NAME/服务实例ID 接口释放一系列jersey client的网络资源注销监控心跳监控注册表监控eureka server.

2021-06-06 11:24:21 176

原创 服务注册发现:Eureka源码剖析(7)核心机制之Eureka-Clien与Eureka-Server之间的心跳机制

本篇发布于2020-02-18 19:30:11当eureka client启动时,会有一个定时任务每隔30秒向eureka server发送心跳心跳会将服务实例信息带上请求的eureka server的 PUT /v2/apps/APP_NAME/服务实例ID根据响应做如下处理如果返回状态码为404说明eureka server没有这个服务实例,此时会走服务注册流程如果返回状态码200,说明心跳成功了,会更新本地的最近一次成功心跳时间戳...

2021-06-06 11:24:07 175

原创 服务注册发现:Eureka源码剖析(6)核心机制之Eureka-Client间隔30s增量抓取

本篇发布于 2020-02-16 22:10:13eureka client启动后,每隔30秒会有一个定时任务抓取增量注册表请求的eureka server的 GET v2/apps/delta 接口会根据返回的服务实例的类型,比如新增、修改、删除来分别处理新增、修改 直接添加到本地注册表(添加操作实际上是幂等的,会先删除,再添加)删除 直接从本地注册表删除eureka server的ApplicationsResource.getContainerDifferenti.

2021-06-06 11:23:57 644

原创 服务注册发现:Eureka源码剖析(5)核心机制之Eureka-Server的注册表多级缓存

本篇发布于 2020-02-08 19:20:19注册表多级缓存(就是那个ResponseCache)的原理如下:第一级缓存 readOnlyCacheMap,所有的读请求都会先走这一层第二级缓存是一个基于Guava Cache的 readWriteCacheMap 当第一层获取不到数据时,会走这一层数据加载 将自己的本地注册表数据以key为ALL_APPS填充到第二级缓存中去缓存失效时机二级缓存失效时机当服务注册、服务下线、服务状态变更、服务剔除时会触发缓存失效.

2021-06-06 11:23:45 184

原创 服务注册发现:Eureka源码剖析(4)核心机制之Eureka-Client首次启动抓取全量注册表

本篇发布于2020-02-03 19:10:11Eureka Client首次抓取是在启动时进行的通过eurekaTransport.queryClient这个jersey客户端,请求eureka server的 GET /v2/apps/APP_NAME 接口拿到响应的Applications后会将顺序打乱,然后存到本地eureka server的ApplicationsResource.getContainers方法会收到请求从响应缓存中把key为ALL_APPS的数据数据返回给客户端.

2021-06-06 11:23:34 1318

原创 服务注册发现:Eureka源码剖析(3)服务注册

文章目录Eureka Client启动流程Eureka Client是如何进行服务注册的Eureka Server是如何完成服务注册的总结本篇发布于2019-12-13 19:30:22Eureka Client启动流程public class ExampleEurekaClient { public static void main(String[] args) throws UnknownHostException { ExampleEurekaClient sampl

2021-06-06 11:23:22 120

原创 服务注册发现:Eureka源码剖析(2)Eureka-Server启动

文章目录Eureka Server模块分析1、Eureka Server原来是一个简单的Servlet应用2、找到了入口代码`com.netflix.eureka.EurekaBootStrap`环境初始化 & 基于单例模式的配置管理器配置文件加载以及面向接口的配置项读取基于构造器模式的服务实例构造将自己作为Eureka Client完成复杂构造服务上下文构造以及初始化总结本篇发布于 2019-12-09 19:15:13Eureka Server模块分析1、Eureka Server原来

2021-06-06 11:23:07 274

原创 服务注册发现:Eureka源码剖析(1)源码阅读环境搭建

文章目录源码阅读环境搭建工程结构速览调试须知本篇发布于2019-12-08 22:10:13源码阅读环境搭建ide:IntelliJ IDEA包管理:gradleeureka版本:1.9.13源码下载:https://github.com/Netflix/eureka/archive/refs/tags/v1.9.13.zip将build.gradle中的如下插件版本改一下,否则导入idea会报错:plugins { id 'nebula.netflixoss' versio

2021-06-06 11:22:52 357

原创 服务注册发现:Eureka-入门

文章目录Eureka解决了什么问题快速体验Eureka1、构建一个Eureka Server2、开发一个服务提供者3、开发一个服务调用者4、进行实验5、画图讲解Hello Word原理Eureka集群实战1、eureka注册中心集群2、将服务改造为注册到eureka server集群服务健康自检机制1、基于`spring-boot-actuator`的服务健康检查2、`spring-cloud-eureka`整合`spring-boot-actuator`实现自定义服务健康检查3、生产经验分享Eureka常

2021-06-06 11:22:36 224

原创 Spring-Cloud-Netflix技术栈系列文章

为什么写?时下Spring Cloud Netflix全家桶已经成为了事实上的微服务实践落地的不二选择,笔者在公司也负责、参与一系列的微服务改造项目,该系列文章涵盖了笔者从刚接触该技术栈的入门到实战,再到源码分析的整个过程,是对自己经历的一次梳理,希望对您也有所帮助。准备写哪些内容?主要针对Spring Cloud Netflix主要技术栈,包括:服务注册发现Eureka负载均衡 Ribbon声明式接口调用 Feign资源隔离、限流、熔断、降级 Hystrix网关 Zuul预计会按照此

2021-06-06 11:22:12 176

原创 Maven打Jar包

目标 将所有依赖打成一个fatJar,并设置主程序入口方便使用。 1. pom.xml里添加assembly插件,指定main入口路径 <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <

2017-04-04 14:58:57 1302

原创 Shell编程实战

# 隔一秒检查MySQL在执行的DML语句while true; do sudo mysql --default-character-set=utf8 -h ${host} -P 3306 -u${username} -p${passwd} -e "show processlist" | grep Query; sleep 1; done# 以逗号分隔每一行,取第一列awk -F,

2017-04-04 14:48:33 776

原创 Java并发编程(理论篇 上)

Java并发编程(原理篇)一、前言七月的天气分外炎热,心中燥意难以抚平,决定梳理下之前落下的笔记。正好最近对JMM比较感兴趣,就整理出了这篇文字。二、序言即使你的程序没有显示的创建任何线程,框架也可能为你创建了一些线程,这些线程调用的代码必须是线程安全(thread safe)的。这一点给开发人员的设计和实现赋予了更重要的一分责任。本文上下两篇,主要通过图文结合的方式描述了如下五个方面,希望有所帮助

2016-07-26 21:36:43 1404

原创 面向对象分析

前言读《大象》的这一章节感觉很有指导意义,虽然工程中不能全部实践,但作为心法来驱动设计是绰绰有余了。特质一切都是对象在面向对象者的眼里,一切有名字的东西都是对象,都应该使用对象的观点来看待它、分析他。哪怕这个东西的名字叫某某业务流程,它仍然应该看作是一个对象,而不是一个过程。这意味着,无论什么时候都应当采用接下来讲述的一些观点和方法来看待和分析事物。对象都是独立的独立性是面向对象的一大特点,承认对象

2016-07-21 15:35:16 1353

原创 关于在Eclipse中启动Tomcat报java.lang.OutOfMemoryError: PermGen space的解决方法

runtime environmentTomcat Ver. : Tomcat 7.0.62Eclipse Ver. : Eclipse Luna SR1 (4.4.2)JDK Ver. : 1.7Errorjava.lang.OutOfMemoryError: PermGen spacesolution-XX:MaxPermSize=512m

2015-06-30 15:02:27 532

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-06-25 14:49:02 266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除