1. 项目应用接入(探针)
NTC除了对服务器管理(代理节点实现)外,还能对项目应用进行各种监控,日志,链路等各种管理。本部分主要介绍应用要接入NTC的话,需要做的工作。
这部分首先介绍的是探针最基本的功能,也就是应用要接入NTC必须要完成的基础工作,完成了这部分就具备了基础功能,至于如果需要接入更高级的链路,配置中心等更高级的功能,具体操作参见下文3.非基础功能接入和探针深入部分。
1.1. 应用NTC探针接入
1.1.1. 上传next-probe_版本号.jar到maven私服(通常是nexus)
请自行操作。
1.1.2. 修改pom.xml,添加依赖
<dependency>
<groupId>com.csii.next</groupId>
<artifactId>next-probe</artifactId>
<version>版本号</version>
</dependency>
1.1.3. 启用
Springboot项目
1.添加注解@EnableNextProbe
2.应用属性配置文件(properties)添加以下属性:
#应用探针是否激活
next.probeActive=true
#ntc服务器地址,多个IP可以配置参考 next.ntcIps=192.168.1.200,192.168.1.201,192.168.1.202
next.ntcIps=ntcIps
#应用探针监听端口,每个应用要配置不同的端口,可以考虑分配20125 20225 20325
next.probePort=probePort
#应用名称,不同的应用必须配置不同的名称,不需要区分环境
next.appName=appName
#应用目录路径,探针将保存数据在此目录,不要在应用部署路径下,以免被清除,路径要加上应用名称避免导致冲突,需要填写绝对路径
next.appHome=appHome
#应用访问的业务端口,比如tomcat的应用,我们应用暴露的业务端口通常是8080,根据实际情况进行设置
next.appPort=appPort
3.双中心部署时,应用属性配置文件(properties)添加以下属性:
properties
#按照具体数据中心规划,key为数据中心名称,value为该数据中心NTC服务器ip地址
next.idc.mapping={"A中心":"ip1,ip2,ip3","B中心":"ip4,ip5,ip6"}
yaml
#按照具体数据中心规划,key为数据中心名称,value为该数据中心NTC服务器ip地址
next:
idc:
mapping: '{" A中心": "ip1,ip2,ip3"," B中心": "ip4,ip5,ip6"}'
非springboot项目
1.添加探针bean
任意xml添加appProbe:
<bean name="appProbe" class="com.csii.next.probe.AppProbe">
</bean>
如果是web项目,web.xml添加filter,listener:
<listener>
<listener-class>com.csii.next.probe.ProbeSessionListener</listener-class>
</listener>
<filter>
<display-name>ProbeFilter</display-name>
<filter-name>ProbeFilter</filter-name>
<filter-class>com.csii.next.probe.ProbeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ProbeFilter</filter-name>
<servlet-name>Dispatcher1</servlet-name>
</filter-mapping>
2.应用属性配置文件(properties)添加以下属性:
#应用探针是否激活
next.probeActive=true
#ntc服务器地址,多个IP可以配置参考 next.ntcIps=192.168.1.200,192.168.1.201,192.168.1.202
next.ntcIps=ntcIps
#应用探针监听端口,每个应用要配置不同的端口,可以考虑分配20125 20225 20325
next.probePort=probePort
#应用名称,不同的应用必须配置不同的名称,不需要区分环境
next.appName=appName
#应用目录路径,探针将保存数据在此目录,不要在应用部署路径下,以免被清除,路径要加上应用名称避免导致冲突,需要填写绝对路径
next.appHome=appHome
#应用访问的业务端口,比如tomcat的应用,我们应用暴露的业务端口通常是8080,根据实际情况进行设置
next.appPort=appPort
3.双中心部署时,应用属性配置文件(properties)添加以下属性:
properties
#按照具体数据中心规划,key为数据中心名称,value为该数据中心NTC服务器ip地址
next.idc.mapping={"A中心":"ip1,ip2,ip3","B中心":"ip4,ip5,ip6"}
yaml
#按照具体数据中心规划,key为数据中心名称,value为该数据中心NTC服务器ip地址
next:
idc:
mapping: '{" A中心": "ip1,ip2,ip3"," B中心": "ip4,ip5,ip6"}'
1.2. 上传应用探针包
备注:1-2如果在快速接入-部署管控台及依赖软件上传了,则不用执行了;如未上传,可按照1-2执行,上传资源路径:ntc-版本号/package/upload
1. 从6.0.0版本开始为了方便应用快速接入NTC,设计了全新的接入方式,对于应用来说只需要依赖最基本的探针基础包,完成探针基础配置,即上文的流程,接下来需要在NTC上传应用探针包(应用启动的时候会自动下载,应用探针包包含了实际功能的jar包,探针基础包next-probe_版本号.jar只是暴露给应用的api)。
2.进入资源中心-版本仓库,点击上传按钮,上传应用探针包,上传文件为ntc-probe_版本号.zip
3.完成了上面的流程后,就可以进行启动应用了。
4.如果没问题可以看到应用成功启动起来并自动注册成功,在应用启动的过程中会自动从NTC平台下载应用探针包并自动激活基础功能(NTC能对项目应用进行各种监控,日志,链路等各种管理,默认激活了日志等等基础功能。)至于如果需要接入更高级的链路,配置中心等更高级的功能,具体操作参见下文1.3.非基础功能接入和探针深入部分。
1.3. 非基础功能接入
1.3.1. 功能需求
1.上面我们完成了最基本的部分,这部分不需要项目做其他的修改了,这部分功能是绝大部分项目都会使用到的功能,如果有特殊情况比如不使用功能或者报错,请联系NTC团队,接下来我们介绍高级部分(默认关闭的功能),项目组根据现场情况进行对接使用。NTC是一个全方位管控平台,我们知道在分布式或非分布式系统中,每个系统都会接收请求,处理请求(数据库操作等),调用其他业务系统,我们需要对上面提到的各个关键组件能够进行动态代理,从而完成链路跟踪,服务监控,限流降级等等功能,同时还对项目应用没有侵入性;或者分布式配置中心等等高级功能,下面我们介绍怎么完成这些高级功能。
1.3.2. 应用探针配置
1.为了方便配置管理,如果应用要使用或不使用某些功能或者进行一些修改,统一使用应用中心-应用探针菜单进行修改发布然后重新启动应用就可以生效了。这里介绍整个应用探针菜单的操作流程,便于后续对探针深入部分更好地运用。
2. 点击配置管理,我们可以看到应用的探针使用情况,根据需要进行操作。
3.我们目前管理的配置有:服务(模块),代理。服务(模块)里面主要探针使用的服务(模块);代理里面是针对各种主流技术栈的代理,这部分默认是全部关闭的(应用使用的技术栈各不相同),在进行探针深入具体章节功能前完成,之后根据探针深入具体章节功能进行接入。
4.完成修改后点击左上方的保存修改按钮,然后点击立即发布进行发布并重新启动应用生效。
5.如果是NTC团队提供的应用探针包有问题,请联系NTC团队索要新的应用探针包上传然后选择对应的版本,然后发布并重新启动应用即可。