4.Radar客户端 - SpringCloud/spring-cloud-radar GitHub Wiki

1. 客户端接入

界面使用指南

  • 说明
    • 客户端接入分为spring boot接入和spring mvc接入
    • 客户端实例有两种角色provider 和 consumer
    • provider 是指对外提供外部服务的应用程序,同时自己也可以作为Consumer消费外部的服务,如果一个实例是Provider角色时,会在注册中心插入一条记录,可以在注册中心portal中查询到。
    • consumer指当前实例仅仅只消费外部的服务,本身不对外提供服务。

同时当用户登录到portal 管理界面中,在 接入说明 菜单中,也有详细的接入说明。用户可自行查看

1.1. spring boot接入

  • 添加maven引用
<dependency>
    <groupId>com.ppdai.infrastructure</groupId>
	<artifactId>radar-client-springboot</artifactId>
	<version>0.0.1</version>(推荐最新版)
</dependency>
  • 服务provider端 properties 配置(也可yml)
radar.register.url=http://fat-radar.********.com //注册中心地址必须
radar.instance.appId=1010111 //appid,必须
radar.instance.clusterName=default //集群名,可以不用配置
radar.instance.tag.test1=test1 //tag,不是必须
radar.instance.tag.test2=test2 //
server.port=8080 //端口号
spring.application.name=radar-demo-provider //服务名,建议必须
  • 纯消consumer端properties 配置(也可yml)
radar.register.url=http://fat-radar.********.com //注册中心地址
radar.instance.registerSelf=false //必须

1.2. spring mvc 接入

  • 添加maven引用
<dependency>
	<groupId>com.ppdai.infrastructure</groupId>
	<artifactId>radar-client-spring</artifactId>
	<version>0.0.1</version>(推荐最新版)
</dependency>
  • 添加servlet bean扫描
<context:component-scan base-package="com.ppdai.infrastructure.radar.client"/>
  • 服务provider,注册bean
@Bean
public RadarClientConfig radarClientConfig(){
	RadarClientConfig radarClientConfig=new RadarClientConfig("http://fat-radar.********.com");
	radarClientConfig.setAppName("radar-demo-provider-1");
	radarClientConfig.setCandAppId("1010111");
	radarClientConfig.setClusterName("default");
	radarClientConfig.setPort(8085);
	radarClientConfig.setCandInstanceId("radar-demo-provider-5");
	radarClientConfig.getTags().put("test1", "test1");
	radarClientConfig.getTags().put("test2", "test2");
	return radarClientConfig;
	}			
  • 纯消费consumer端注册bean
@Bean
public RadarClientConfig radarClientConfig(){
 RadarClientConfig radarClientConfig=new RadarClientConfig("http://fat-radar.********.com");
 radarClientConfig.setRegisterSelf(false);//如果是纯consumer端,这个必须
 return radarClientConfig;
}

1.3. 事件接口

默认情况下,radar 提供了开箱即用的功能,但是为了应对用户的一些特殊需求,radar框架本身提供了一些扩展接口,用户可以自行扩展。系统内置提供了三个事件接口。

  • PreRegisterListener 开始注册之前事件 如果用户在radar客户端中注册了此事件,则当系统启动后,radar向注册中心发起注册时,用户可以对一些注册项进行修改。
  • RegisterCompletedListener 注册完成事件 如果用户注册了此事件,当radar客户端注册成功后,会触发此事件。
  • AppChangedListener,应用变更事件 如果用户注册了此事件,当应用配置和实例发生变化时,会触发此事件。注意此事件的接口参数是当前应用的结果值,不是变化值。

1.4. debug接口

如果客户端是sping 接入,radar客户端默认自带了一些用来调试的接口。ip和port 是只客户端实例的ip和端口地址。

1.5. 注意

canAppId 和 appName 必须唯一,同时必须一一对应,否则注册不成功。如下图 Radar交互图 如果此前已经注册了一个应用ID为1000002070和应用名为soa_rest_test_new_1的应用实例,如果此时注册一个应用ID为1000002070 但是应用名不是soa_rest_test_new_1,那么此时注册时,会提示appid和应用不一一对应,需要在portal界面中修改应用名,才能重新注册。

⚠️ **GitHub.com Fallback** ⚠️