- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 Spring Cloud Eureka 源码跟踪(5.客户端负载均衡)
5.1 LoadBalancerAutoConfiguration 客户端负载均衡器的的自动配置类型5.2 restTemplate调用请求时会被LoadBalancerInterceptor类的intercept方法拦截5.3 intercept方法调用LoadBalancerClient接口实现类RibbonLoadBalancerClient的execute方法执行5.4 ILoadBanancer loadBalancer=this.getLoadBalancer(serviceId)根
2020-06-11 00:35:25 178
原创 Spring Cloud Eureka 源码跟踪(4.服务注册中心)
通过DiscoveryClient.register方法发送请求到AbstractInstanceRegistry中的register方法注册,存储在ConcurrentHashMap<String, Map<String, Lease>> registry对象中。
2020-06-11 00:30:34 103
原创 Spring Cloud Eureka 源码跟踪(3.服务续约)
通过定时线程类(ScheduledExecutorService scheduler)间隔renewalIntervalInSecs(默认30s)执行DiscoveryClient.HeartbeatThread方法获取服务。this.scheduler.schedule(new TimedSupervisorTask(“heartbeat”, this.scheduler, this.heartbeatExecutor, renewalIntervalInSecs, TimeUnit.SECONDS
2020-06-11 00:26:49 131
原创 Spring Cloud Eureka 源码跟踪(2.服务获取)
说明:通过定时线程类(ScheduledExecutorService scheduler)间隔renewalIntervalInSecs(默认30s)执行 DiscoveryClient.CacheRefreshThread方法获取服务。scheduler.schedule调用完整代码this.scheduler.schedule(newTimedSupervisorTask(“cacheRefresh”,this.scheduler,this.cacheRefreshExecutor
2020-06-11 00:24:02 152
原创 Spring Cloud Eureka 源码跟踪(1.服务注册)
DiscoveryClient类的initScheduledTasks()方法会创建InstanceInfoReplicator(线程对象),并将当前实例传入其构造函数(函数中定义线程池),然后执行线程对象启动方法启动方法中定义线程池线程 间隔initialDelayMs,执行InstanceInfoReplicator.run()方法,run()会回调discoveryClient中的注册方法通过REST请求将客户端元数据(InstanceInfo)发送给注册中心。...
2020-06-11 00:16:49 181
原创 Spring Cloud Eureka 原理结构
“服务注册中心-1” 和 “服务注册中心-2”,他们互相注册组成高可用集群。“服务提供者” 启动了两个实例,一个注册到“服务注册中心-1” 上,另外一个注册到 “服务注册中心-2” 上。还有两个 “服务消费者” ,它们也都分别指向了一个注册中心。服务提供者服务注册 “服务提供者” 在启动的时候会通过发送REST请求的方式将自己注册到Eureka Server 上,同时带上了自身服务的一些元数据信息。Eureka Server 接收到这个REST请求后,将元数据信息存储在一个双层结构Map中,.
2020-06-11 00:02:05 166
原创 CentOS 7的常用操作命令
2 Linux操作基础2.1 Shell和命令基础2.1.3 文件及Linux目录结构2.1.3.1 软链接 ln -s ln 链接命令-s 软链接(创建一个软链接相当于Windows中的快捷方式 ) 用法 ln -s 源路径 /usr/local/bin 创建链接后的链接显示2.1.3.2 Linux目录结构2.2...
2020-03-01 23:15:11 1037
原创 基于oracle 11g 的SQL优化
1.查看当前数据库版本: select* from v$version;(以下示例基于oracle 11.2.0.1.0)2.ROWIDoracle数据库的表中的每一行数据都有一个唯一的标识符,该标识符表明了该行在oracle数据库中的物理具体位置.3.execute procedure 命令是在PL/SQL命令窗口执行的。SQL/PLUS下查看执行计划详细信息说明:recursi...
2020-01-24 01:43:11 3455
原创 JVM内存模型与垃圾回收
-1 参考书籍深入理解Java虚拟机:JVM高级特性与最佳实践(最新第二版).pdf0 JVM和Java HotSpotjava -version出来信息包含两部分:Java软件包发行版本信息和内核(JVM)版本信息。虚拟机(JVM)版本是25.121-b131 JVM内存结构及说明:1.1 结构1.2各部说明1.2.1 程序计数器它是当前线程执行字节码的行号指示器,字节码解...
2019-11-02 19:53:09 403 1
原创 Tomcat 总体设计
0 tomcat中的socket服务线程:tomcat说白了就是一个socket服务线程,监听8080端口,一旦有连接过来就生成一个socket来对应,然后把socket扔给后端的Executor线程池,由线程池中的一个线程负责进行后续的处理,而ServerSocket线程继续监听等待下一个连接的到来。1.Connetor 链接器( 链接器框架名称是Coyote) ,它包含以以下功能:...
2019-11-02 19:36:10 291
原创 tomcat8.5 manager 远程部署war
1.解决远程访问Manager 403(没有权限)conf/tomcat-user.xml 添加以下代码admin-gui- 访问host-manager (host-manager这个webapp则是提供了虚拟主机的web管理界面)界面。manager-gui - 访问manager HTML界面。manager-status - 只能访问“服务器状态”页面。manager-scri...
2019-11-02 19:30:04 553
超级宝贵的技术收藏资源
2018-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人