自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何使用Etcd来完成选举

在某个项目中,需要使用选举的功能来由Leader完成一些类似任务分配的工作。在最初的版本是使用Zookeeper配合curator框架来实现的,curator的api相对来说也比较直观,文档也比较齐全,实现起来并不耗费多少力气。可是由于公司的Zookeeper集群版本相对较低,curator不得不使用低版本来兼容,运行一段时间之后碰上了一些低BUG的,添加了一些兜底的保障来完善选举流程。然而,公司的Etcd集群版本相对较新,便萌生了使用Etcd来替代Zookeeper的想法。...

2022-06-29 22:12:33 1849 1

原创 k8s中Spring Cloud应用的配置管理

前言最近,公司内的k8s集群逐渐完善,恰逢有一个不是非常紧急的新项目开始推进,与SA讨论后决定尝试在k8s集群中进行应用的部署,加强对服务的全面管理以及提升服务的灵活性。前段时间摸索完一些市面上常用的应用配置管理方案后,刚配合公司内的配置管理服务实现了一套JAVA SDK,自然而然的在讨论转型方案开始时第一个想到的问题就是,在k8s集群内我们是不是还需要用到这些嵌入在应用内的配置SDK呢?其实,应用迁移到k8s集群中并不是非要做什么特殊改造,即便是最传统的进程部署的方式也只需要进行把应用容器化即可,关于

2021-10-25 00:29:45 1007

原创 Spring Cloud Alibaba Nacos Config原理分析

前言Nacos Spring Cloud的使用方法与Nacos Spring Boot的使用方法类似,都是通过添加依赖与在配置文件中增加配置来完成接入。需要注意的是在Spring Cloud应用中必须要配置spring.application.name,因为它是构成 Nacos 配置管理dataId字段的一部分,在Nacos Spring Cloud中配置文件的dataId完整格式为prefix-spring.profiles.active.file-extension,当然Nacos Spring Cl

2021-08-17 10:56:20 404

原创 Nacos Config Spring Boot Starter源码分析

整体概述Nacos Config Spring Boot Starter项目所提供的配置管理的功能均基于Nacos Spring Project,利用了Spring Boot的特性提供了更加方便快捷的分布式环境下的配置管理。仅需要通过在Maven中添加nacos-config-spring-boot-starter依赖,在application.properties配置nacos server相关属性即可完成远程配置文件的加载,同时结合在Nacos Spring Project中提供的相关注解,即可完成属

2021-08-17 09:43:52 2209

原创 Nacos Spring Project配置管理源码分析(二)

在之前的文章中我们分析了Nacos spring project的配置过程以及通用注解的实现,在这篇文章中将会针对Nacos spring project配置管理中提供的若干注解进行实现原理上面的分析。@NacosValue@Controller@RequestMapping("config")public class ConfigController { @NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)

2021-08-17 09:43:12 397

原创 Nacos Spring Project配置管理源码分析(一)

Nacos spring project主要是面向仅使用spring框架的项目,主要提供了Nacos-client中的配置管理模块与服务发现模块在spring框架中集成的相关功能。从整个项目上面来看,可以大致的分为以下两个部分,Nacos相关配置Bean的解析与注入以及Nacos相关功能注解的解析与处理。其中配置Bean的解析注入分为XML配置与注解配置两个部分。而Nacos相关功能注解主要包含了@NacosValue、@NacosConfigListener、@NacosInjected等注解的处理,主要

2021-08-17 09:42:32 672

原创 Spring配置属性管理(二)— Environment

在上一篇文章中我们从@Value注解入手大致讲解了一下配置属性在Spring项目中应用的基本原理,本文将会围绕Spring的Environment对org.springframework.core.env包中的重要类进行进一步的解析。The Environment interface is an abstraction integrated in the container that models two key aspects of the application environment: profi

2021-08-05 17:48:09 1175

原创 Spring配置属性管理(一)— @Value注解解析

为了能够更好的说明nacos-spring-project的设计原理,我们将首先介绍一下在Spring框架中是如何管理系统属性以及用户的配置属性的。本文将从一个项目中常用的属性使用例子入手,简要的分析属性解析注入的过程,在后续的文章中将从Environment的角度分析Spring是如何进行全局的属性管理的。@Value注解@Servicepublic class Test { @Value("${test}") private String test;}在项目中,如上面的代

2021-08-05 17:47:27 634

原创 Nacos Client 源码解析-Config模块

Nacos Client Config相关源码解析整体概览最近在筹备对接公司内自研的ACM服务,但由于ACM短期内尚未计划提供完备的JAVA SDK,所以需要自行研究学习一下Nacos是如何实现的,来开发配套的SDK。由于公司内提供的也是长轮询机制的HTTP接口,所以本文的分析是基于Nacos 1.4.2版本的。后续也会继续对nacos-spring、nacos-spring-boot、nacos-spring-cloud进行研究。nacos-client依赖了nacos-api与nacos-com

2021-08-05 14:13:35 1419 2

原创 Sentinel通信模块解析

Sentinel通信模块解析概览在Sentinel中有两个模块需要进行远程通信,分别是Sentinel Client与Dashboard的通信以及Sentinel Client与Token Server的通信,分别位于Sentinel项目中的sentinel-transport模块与sentinel-cluster模块。其中Sentinel Client与Dashboard之间相互通信采用的是传统HTTP方式,Client开放HTTP接口接收来自Dashboard的控制指令,Dashboard开放HTT

2021-08-03 15:37:54 1287

原创 Seata通信模块分析

Seata通信模块分析Server整体概览在seata项目中,client与server是利用netty来完成基于tcp的通信的。在server模块中,RemotingServer接口定义了Server的基本功能,AbstractNettyRemoting实现了远程消息的处理、同步/异步发送、任务超时管理等基本功能,AbstractNettyRemotingServer基于AbstractNettyRemoting近一步进行封装,定义了处理远程消息的ServerHandler,实现了RemotingS

2021-08-03 15:36:35 650

原创 Nacos GRPC通信模块分析

Nacos通信模块分析Server整体概览在2.0版本中Nacos采用了Grpc作为通信模块,BaseRpcServer定义了基本的服务启动关闭的接口,BaseGrpcServer则实现了基本的Server模块功能,GrpcClusterServer用于集群节点之间的交互,GrpcSdkServer用于客户端与服务器的交互,分别定义了各自的执行线程池。BaseGrpcServerBaseGrpcServer利用Grpc实现了远程Server端点的功能,首先初始化了一个服务调用的拦截器,在这个拦截

2021-08-03 15:34:40 4553

空空如也

空空如也

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

TA关注的人

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