导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:356
阅读量:1746389
访问量:218311
至今:
×
博文->>搜索结果(耗时0.072秒) 博文列表>>
Tags : Eureka,源码 发表时间: 2020-01-31 14:16:10
点击上方蓝色字关注我们~Eureka源码剖析之一:初始化-启动Eureka源码剖析之二:服务注册Eureka源码剖析之三:服务拉取Eureka源码剖析之四:服务续约Eureka源码剖析之五:服务下线总结下eureka系统架构和相关面试题。〓一、Eureka系统架构交互图来自网上更详细的图:〓二、定时任务汇总客户端定时任务1)每30秒刷新缓存(服务拉取)2)每30秒发送心跳(服务续约)服务端定时任务1)每10分钟更新集群节点数据2)每15分钟更新续约数及阈值3)每1分钟剔除过期注册信息〓三、常见(面试)问题汇总1、Server节点能否在配置文件里配置自身的Server地址?可以的!当一个Serv
类别:源码 | 阅读(932)| 回复(0)| (0) 阅读全文>>
Tags : Eureka,源码,自我保护机制 发表时间: 2020-01-31 14:13:22
点击上方蓝色字关注我们~Eureka源码剖析之一:初始化-启动Eureka源码剖析之二:服务注册Eureka源码剖析之三:服务拉取Eureka源码剖析之四:服务续约Eureka源码剖析之五:服务下线当EurekaServer由于自身发生网络故障等原因无法接收到EurekaClient端发送的心跳(续约)时,不会将未收到心跳(续约)请求的服务下线,虽然这样短时间内可能造成EurekaServer维护的注册列表信息不是完全准确的,但保证了EurekaServer可用性。主要通过expectedNumberOfRenewsPerMin,numberOfRenewsPerMinThreshold(ex
类别:源码 | 阅读(894)| 回复(0)| (0) 阅读全文>>
Tags : Eureka,源码,服务下线 发表时间: 2020-01-31 14:12:25
点击上方蓝色字关注我们~Eureka源码剖析之一:初始化-启动Eureka源码剖析之二:服务注册Eureka源码剖析之三:服务拉取Eureka源码剖析之四:服务续约现在研究下Eureka服务下线的源码。由服务续约的源码我们知道,如果客户端在90秒内没有继续跟服务端进行心跳的话,服务端会进行下线客户端并且更改状态将其剔除,并且也会在集群中告知(同步)其它节点。〓EurekaClient/***注销服务,调用client的cancel服务,往里面看也就是调用了服务端的httpdelete请求进行服务下线*/voidunregister(){//ItcanbenullifshouldRegister
类别:源码 | 阅读(1355)| 回复(0)| (0) 阅读全文>>
Tags : Eureka,源码,服务续约 发表时间: 2020-01-31 14:11:07
Eureka源码剖析之一:初始化-启动Eureka源码剖析之二:服务注册Eureka源码剖析之三:服务拉取这里主要看下Eureka关于服务续约的源码,其实大致跟服务注册流程类似,不过更多细节和逻辑还是很大不同的。〓EurekaClient//在DiscoveryClient里有renew方法,大概知道其是服务续约的入口。renew使用http的方式发送心跳给服务端,如果服务端返回404,说明是某些原因造成服务是没有注册成功,那么就会再次调用register注册接口进行注册。@SingletonpublicclassDiscoveryClientimplementsEurekaClient{..
类别:源码 | 阅读(874)| 回复(0)| (0) 阅读全文>>
Tags : Eureka,源码,服务拉取 发表时间: 2020-01-31 14:09:36
点击上方蓝色字关注我们~Eureka源码剖析之一:初始化-启动Eureka源码剖析之二:服务注册前面已经剖析了Eureka初始化、Eureks服务注册,现在继续Eureka服务拉取。Eureka服务集群中,客户端会向服务端拉取已经注册的实例,实时更新注册服务列表。〓EurekaClient//DiscoveryClient实例创建时会调用服务拉取,默认开启拉取注册信息。//接着调用拉取注册方法,如果拉取失败,则从备份中拉取if(clientConfig.shouldFetchRegistry()&&!fetchRegistry(false)){//拉取服务失败,则从配置中获取备
类别:源码 | 阅读(1193)| 回复(0)| (0) 阅读全文>>
Tags : Eureka,源码,服务注册 发表时间: 2020-01-31 14:07:22
Eureka源码剖析之一:初始化-启动EurekaClient在启动时会进行一系列初始化操作,本篇文章主要解析EurekaClient端向EurekaServer端发起注册请求的具体过程,具体分为EurekaClient端发送请求和EurekaServer端接收请求。在较新的版本看到代码进行了优化,所以还是以某一版本为准进行剖析。这里是1.X版本最新版本1.9.15。〓EurekaClient发出注册请求//DiscoveryClient构造器中:if(clientConfig.shouldRegisterWithEureka()&&clientConfig.shouldEnf
类别:源码 | 阅读(899)| 回复(0)| (0) 阅读全文>>
Tags : Eureka,源码剖析 发表时间: 2020-01-16 21:26:13
Eureka启动的过程有client端和server端,Eurekaclient端入口是DiscoveryClient类,Eurekaserver端入口是EurekaBootStrap类,接下来我们就从源码看下它们做了什么吧!〓EurekaClient端启动1)看下DiscoveryClient类图:由此看出DiscoveryClient实现了EurekaClient、LookupService接口,并且定义了内部类:DiscoverClientOptionalArgs,可选参数类,源码里实现为空,是默认实现,具体的需要去查看AbstractDiscoveryClientOptionalArg
类别:源码 | 阅读(1307)| 回复(0)| (1) 阅读全文>>
Tags : 面试题,dubbo,源码 发表时间: 2018-10-29 22:45:56
整理了一些dubbo可能会被面试的面试题,感觉非常不错。如果你基本能回答说明你看懂了dubbo源码,对dubbo了解的足够全面。你可以尝试看能不能回答下。我们一起看下有哪些问题吧?dubbo中"读接口"和"写接口"有什么区别?谈谈dubbo中的负载均衡算法及特点?最小活跃数算法中是如何统计这个活跃数的?简单谈谈你对一致性哈希算法的认识?服务发布过程中做了哪些事?dubbo都有哪些协议,他们之间有什么特点,缺省值是什么?什么是本地暴露和远程暴露,他们的区别?服务提供者能实现失效踢出是根据什么原理?讲讲dubbo服务暴露中本地暴露,并画图辅助说明?一般选择什么注册中心,还有别的选择吗?dubbo中
类别:面试 | 阅读(5099)| 回复(0)| (0) 阅读全文>>
Tags : 高性能,Netty,FastThreadLocal,源码 发表时间: 2018-09-09 13:16:36
说到Netty的FastThreadLocal类,自然而然的想到JDK的ThreadLocal,为什么Netty觉得ThreadLocal不好?不够快吗?那么这里直接说下ThreadLocal存在的问题。1、JDKThreadLocal的问题Thread中的ThreadLocalMap存储ThreadLocal,ThreadLocalMap内部使用ThreadLocalMap.Entry数组存储每一个ThreadLocal,存储计算和HashMap类似,要计算key的索引位置=key.threadLocalHashCode&(len-1),中间可能需要计算冲突,使用的是线程探测方法(当
类别:源码 | 阅读(2487)| 回复(0)| (0) 阅读全文>>
Tags : Zookeeper,zk,源码 发表时间: 2018-04-28 23:13:32
1.从zkServer.sh启动脚本可以看到启动类QuorumPeerMain2.调用initializeAndRun初始化参数和启动服务:①解析配置文件zoo.cfg,②DatadirCleanupManager启动和调度清洗任务,③如果启动加上配置文件参数且有severs配置,则启动集群模式,否则启动standalone单机模式3.单机:1)启动ZooKeeperServerMain2)反射创建连接工厂(无配置,默认):NIOServerCnxnFactory3)调用其configure,初始化连接等参数4)启动startup:①保证当前线程是启动着;②设置zkServer;③加载、初始化
类别:源码 | 阅读(1702)| 回复(0)| (0) 阅读全文>>
Tags : 区块链,源码 发表时间: 2018-07-23 20:52:04
比特币BTC源码:https://github.com/bitcoin以太坊ETH源码:https://github.com/ethereum以太经典ETC源码:https://github.com/ethereumproject小蚁NEO源码:https://github.com/neo-project标准链CZR源码:https://github.com/canonchain柚子EOS源码:https://github.com/eosio量子链QTUM源码:https://github.com/qtumproject比原链BTM源码:https://github.com/bytom莱特币L
类别:区块链 | 阅读(1708)| 回复(0)| (0) 阅读全文>>
Tags : ZooKeeper,ZooKeeper源码 发表时间: 2016-03-27 23:19:56
这里有介绍Zookeeper和入门的文章:http://www.itd4j.com/opensource/15614.htmlhttp://www.itd4j.com/opensource/151522.html你可以先了解一下再来研究源码哦:)1系列目录ZooKeeper源码研究系列(1)源码环境搭建ZooKeeper源码研究系列(2)客户端创建连接过程分析​ZooKeeper源码研究系列(3)单机版服务器介绍ZooKeeper源码研究系列(4)集群版服务器介绍2搭建步骤2.1到github中fork该项目项目地址https://github.com/apache/zookeeper。for
类别:编程开发 | 阅读(938)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析 发表时间: 2016-02-12 23:02:10
题记:关于SolrCloud的Recovery策略已经写了四篇了,这篇应该是系统介绍Recovery策略的最后一篇了。本文主要介绍Solr的主从同步复制。它与前文<Solr4.8.0源码分析(22)之SolrCloud的Recovery策略(三)>略有不同,前文讲到的是SolrCloud的leader与replica之间的同步,不需要通过配置solrconfig.xml来实现。而本文主要介绍单机模式下,利用solrconfig.xml来实现主从服务器的同步。分布式环境下,由于高并发的问题,通常我们需要部署多台服务器来负载均衡,从而避免,单点访问的热点问题,或者因负载过高而造成服务器
类别:搜索引擎 | 阅读(1048)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析 发表时间: 2016-02-12 00:10:05
题记:本来计划的SolrCloud的Recovery策略的文章是3篇的,但是没想到Recovery的内容蛮多的,前面三章分别介绍了Recovery的原理和总体流程,PeerSync策略,Replication策略。本章主要介绍我在实际生产环境中碰到的recovery的几个问题,以及前面漏下的几个点。一.日志中多次出现"StoppingrecoveryforzkNodeName=..."我在公司的生产环境中总是会看到连续多次出现"WARN:StoppingrecoveryforzkNodeName=..."或者"INFO:Startingrecoveryprocess.core=..."这样的日
类别:搜索引擎 | 阅读(1074)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析 发表时间: 2016-02-02 19:55:10
本文是SolrCloud的Recovery策略系列的第三篇文章,前面两篇主要介绍了Recovery的总体流程,以及PeerSync策略。本文以及后续的文章将重点介绍Replication策略。Replication策略不但可以在SolrCloud中起到leader到replica的数据同步,也可以在用多个单独的Solr来实现主从同步。本文先介绍在SolrCloud的leader到replica的数据同步,下一篇文章将介绍通过配置SolrConfig.xml来实现多个Solr节点间的主从同步。一.Replication策略介绍Replication的作用在前文已经介绍过了,当需要同步的数据较多时
类别:搜索引擎 | 阅读(1232)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析 发表时间: 2016-02-01 19:01:27
题记:前文<Solr4.8.0源码分析(20)之SolrCloud的Recovery策略(一)>中提到Recovery有两种策略,一是PeerSync和Replication。本节将具体介绍下PeerSync策略。PeeySync是Solr的优先选择策略,每当需要进行recovery了,Solr总是会先去判断是否需要进入PeerSync,只有当PeerSync被设置为跳过或者PeerSync时候发现没符合条件才会进入到Replication。这是由PeeySync的特性决定的,PeeySync是面向中断时间短,需要recovery的document个数较少时使用的策略,因此它Rec
类别:搜索引擎 | 阅读(993)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析 发表时间: 2016-01-31 19:58:27
题记:我们在使用SolrCloud中会经常发现会有备份的shard出现状态Recoverying,这就表明SolrCloud的数据存在着不一致性,需要进行Recovery,这个时候的SolrCloud建索引是不会写入索引文件中的(每个shard接受到update后写入自己的ulog中)。关于Recovery的内容包含三篇,本文是第一篇介绍Recovery的原因以及总体流程。1.Recovery的起因Recovery一般发生在以下三个时候:SolrCloud启动的时候,主要由于在建索引的时候发生意外关闭,导致一些shard的数据与leader不一致,那么在启动的时候刚起的shard就会从lead
类别:搜索引擎 | 阅读(1309)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析,缓存机制 发表时间: 2016-01-30 13:24:07
前文<Solr4.8.0源码分析(18)之缓存机制(一)>介绍了Solr缓存的生命周期,重点介绍了Solr缓存的warn过程。本节将更深入的来介绍下Solr的四种缓存类型,以及两种SolrCache接口实现类。1、SolrCache接口实现类前文已经提到SolrCache有两种接口实现类:solr.search.LRUCache和solr.search.LRUCache。那么两者具体有啥区别呢?1.1solr.search.LRUCacheLRUCache具有以下几个参数:size:cache中可保存的最大的项数,默认是1024initialSize:cache初始化时的大小,默认
类别:搜索引擎 | 阅读(1114)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析,缓存机制 发表时间: 2016-01-28 20:53:22
前文在介绍commit的时候具体介绍了getSearcher()的实现,并提到了Solr的预热warn。那么本文开始将详细来学习下Solr的缓存机制。1.简介Solr目前支持4中cache类型,每种缓存对应一种查询类型。filterCachedocumentCachefieldvalueCachequeryresultCacheSolr提供了两种SolrCache接口实现类:solr.search.LRUCachesolr.search.FastLRUCache。FastLRUCache是1.4版本中引入的,其速度在普遍意义上要比LRUCache更fast些。本文开始将详细介绍以上的内容,而本
类别:搜索引擎 | 阅读(1236)| 回复(0)| (0) 阅读全文>>
Tags : Solr,源码分析 发表时间: 2016-01-27 19:21:51
前面几节以add为例已经介绍了solrcloud索引链建索引的三步过程,delete以及deletebyquery跟add过程大同小异,这里暂时就不介绍了。由于commit流程较为特殊,那么本节主要简要介绍下commit的流程。1.SolrCloud的commit流程SolrCloud的commit流程同样分为三步,本节主要简单介绍下三步过程。1.1LogUpdateProcessorLogUpdateProcessor的commit比较简单,主要包含两个步骤,调用DistributedUpdateProcessor的commit以及将commit信息写入日志。1publicvoidproce
类别:搜索引擎 | 阅读(956)| 回复(0)| (0) 阅读全文>>