CN107819607A - 基于dubbo的微服务监控*** - Google Patents

基于dubbo的微服务监控*** Download PDF

Info

Publication number
CN107819607A
CN107819607A CN201710950152.1A CN201710950152A CN107819607A CN 107819607 A CN107819607 A CN 107819607A CN 201710950152 A CN201710950152 A CN 201710950152A CN 107819607 A CN107819607 A CN 107819607A
Authority
CN
China
Prior art keywords
information
micro services
dubbo
service
wechat
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710950152.1A
Other languages
English (en)
Other versions
CN107819607B (zh
Inventor
周龙波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Danlu Network Technology Co Ltd
Original Assignee
Chengdu Danlu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Danlu Network Technology Co Ltd filed Critical Chengdu Danlu Network Technology Co Ltd
Priority to CN201710950152.1A priority Critical patent/CN107819607B/zh
Publication of CN107819607A publication Critical patent/CN107819607A/zh
Application granted granted Critical
Publication of CN107819607B publication Critical patent/CN107819607B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了基于dubbo的微服务监控***,包括以下工作步骤:(1)进行前期的准备工作;(2)设置定时信息,***根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);(3)获取监控目标的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);(4)进行数据处理;(5)通过grafana对处理后的数据进行显示。本发明提供基于dubbo的微服务监控***,能够在不修改业务代码的情况下收集服务监控信息,还能够根据监控信息动态修改调用负载,同时还拥有告警功能,大大提升了***的使用安全性与使用效果。

Description

基于dubbo的微服务监控***
技术领域
本发明涉及一种微服务监控***,具体是指基于dubbo的微服务监控***。
背景技术
如今的微服务监控***主要有两种制作方式,第一种是通过修改jvm启动参数来制作,第二种是通过修改代码添加监听来制作。
通过修改jvm启动参数的具体制作方式为:添加自己开发的jar包到服务启动执行目录下(classpath目录下)并修改jvm启动参数读取配置文件;这类操作方法可参考听云和oneapm的客户端部署方式;(比如启动命令java $JAVA_MEM_OPTS$JAVA_OPTS-classpath$CLASS_PATHcom.alibaba.dubbo.co ntainer.Main1>/dev/null2>>"$danlu_jar_logfile"&变为java-javaagent:${danlu_jar_DataDir}/${danlu_jar_HostnameDir}/OneAPM/oneapm.jar$JAVA_MEM_OPTS$JAVA_OPTS-classpath$CLASS_PATHcom.alibaba.dubbo .container.Main 1>/dev/null 2>>"$danlu_jar_logfile"&)。
通过修改代码添加监听的具体制作方式则与javamelody和dubbo-monitor两个工程。
上述的两种方式都需要在业务代码中添加其他的maven依赖和添加相应的jar包到对应lib目录下;他们的特点是如果要做监控就需要修改原来的业务代码;另外,除了修改业务代码外,还需要额外的功能来辅助监控信息的收集;javamelody修改业务代码是为了告诉别人我的哪些方法和接口要提供给别人来监控且该服务本身还得提供一个接口(方式)让别人通过这种接口(方式)来收集数据;dubbo-monitor是把自己伪造成客户端,他在业务代码中就告诉该服务所有的接口调用流量和状态信息就应该发送到dubbo-server。
上述的方法存在的问题如下:
(1)对业务代码有侵入性,即需要修改原业务代码;我们的监控数据收集和动态调整应该跟业务代码解耦;而收集数据、修改调用关系跟服务本身的业务部署本身应该没丝毫联系;
(2)javamoledy这种方法则存在安全隐患:他需要在每个服务上多增加一个接口便于监控服务端来收集数据;而实际的生产服务中本来就应该是接口越少越好,多一个接口开放就多一份风险;
(3)这两种类型都不能动态修改调用关系;而实际上,在理想状态下应该在集群中某些服务器的业务压力过大的时候会自动相应调整调用关系达到把请求分发到业务压力不大的服务器上;
(4)实现复杂度更高,需要各种修改启动jar包和修改代码;
(5)没有友好的运行趋势报告;
(6)没告警功能。
发明内容
本发明的目的在于克服上述问题,提供基于dubbo的微服务监控***,能够在不修改业务代码的情况下收集服务监控信息,还能够根据监控信息动态修改调用负载,同时还拥有告警功能,大大提升了***的使用安全性与使用效果。
本发明的目的通过下述技术方案实现:
基于dubbo的微服务监控***,包括以下工作步骤:
(1)进行前期的准备工作;
该准备工作包括:
(11)完成对dubbo架构的架设,准备至少一个注册中心zookeeper,且拥有在注册中心zookeeper上注册的微服务提供者;
(12)搭建邮件和微信告警服务;
(13)针对dubbo构架的信息里的负载、客户端连接数、数据库配置地址、线程池、内存使用、总体状态以及接口调用信息数量设计influxdb的measurements;
(2)设置定时信息,***根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);
(3)获取微服务提供者的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);
(4)进行数据处理;
(5)通过grafana对处理后的数据进行显示。
步骤(2)的具体步骤为:
(21)通过python定时读取注册中心zookeeper上面注册的所有微服务提供者的连接信息,并将读取的信息构建成网络拓扑;
(22)根据获取的网络拓扑生成监控对象、监控权重信息以及服务拓扑,若已有服务拓扑则对已有的服务拓扑做增加列表操作。
所述步骤(22)中若需要对服务拓扑中的服务进行更换或移除则需要人工介入进行操作。
步骤(3)中是通过python模拟底层telent以实现远程调用网络拓扑结构里的微服务提供者的监控信息,并将调用的监控信息格式化成json,且该信息包括负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况以及总体状态。
步骤(4)的数据处理的具体步骤为:
(41)对步骤(3)中获取的监控信息进行分类整理,格式化所有数据得到性能信息,并提取负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况的数据进行调用influxdb持久化落盘操作;
(42)对性能信息进行阈值分析和权重分配分析。
步骤(42)中需要事先输入相应的底层资源使用率的阀值,而所述的阈值分析的目的是分析底层资源使用率,在底层资源使用率达到不同的定义级别的阀值时,需要进行不同级别的邮件和微信告警;而权重分配分析则是将实时的资源使用情况与最近的历史资源使用情况进行对比,并根据对比的结果调整对应的权重信息,并将调整后的权重信息发送至注册中心zookeeper;其中,注册中心zookeeper的第一次权重信息是注册中心zookeeper默认值。
步骤(5)中所述的通过grafana对处理后的数据进行显示的具体步骤为:
(51)通过grafana插件把influxdb中的数据反应出来,并根据预先输入的需求形成dashboard大屏;
(52)根据具体的数据生成趋势报告,该趋势报告包括各个微服务提供者的服务的使用趋势报告以及整体的资源使用趋势报告。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明搭建了邮件和微信告警服务,能够在运行出现异常时通过邮件与微信进行告警,及时的提醒工作人员,使得工作人员可以及时的得知***的运行状态,并根据告警情况及时的对***运行遇到的问题进行处理,大大提升了***的使用安全性。
(2)本发明能够在不修改业务代码的情况下收集服务监控信息,还能够根据监控信息动态修改调用负载,大大提升了***的使用安全性与使用效果。
具体实施方式
下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不限于此。
实施例
基于dubbo的微服务监控***,包括以下工作步骤:
(1)进行前期的准备工作;
该准备工作包括:
(11)完成对dubbo架构的架设,准备至少一个注册中心zookeeper,且拥有在注册中心zookeeper上注册的微服务提供者;
(12)搭建邮件和微信告警服务;
(13)针对dubbo构架的信息里的负载、客户端连接数、数据库配置地址、线程池、内存使用、总体状态以及接口调用信息数量设计influxdb的measurements;
(2)设置定时信息,***根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);
具体步骤为:
(21)通过python定时读取注册中心zookeeper上面注册的所有微服务提供者的连接信息,并将读取的信息构建成网络拓扑;
(22)根据获取的网络拓扑生成监控对象、监控权重信息以及服务拓扑,若已有服务拓扑则对已有的服务拓扑做增加列表操作;若需要对服务拓扑中的服务进行更换或移除则需要人工介入进行操作。
(3)获取微服务提供者的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);
具体是通过python模拟底层telent以实现远程调用网络拓扑结构里的微服务提供者的监控信息,并将调用的监控信息格式化成json,且该信息包括负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况以及总体状态。
(4)进行数据处理;
数据处理的具体步骤为:
(41)对步骤(3)中获取的监控信息进行分类整理,格式化所有数据得到性能信息,并提取负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况的数据进行调用influxdb持久化落盘操作;
(42)对性能信息进行阈值分析和权重分配分析;
步骤(42)中需要事先输入相应的底层资源使用率的阀值,而所述的阈值分析的目的是分析底层资源使用率,在底层资源使用率达到不同的定义级别的阀值时,需要进行不同级别的邮件和微信告警;而权重分配分析则是将实时的资源使用情况与最近的历史资源使用情况进行对比,并根据对比的结果调整对应的权重信息,并将调整后的权重信息发送至注册中心zookeeper;其中,注册中心zookeeper的第一次权重信息是注册中心zookeeper默认值。
(5)通过grafana对处理后的数据进行显示。
所述的通过grafana对处理后的数据进行显示的具体步骤为:
(51)通过grafana插件把influxdb中的数据反应出来,并根据预先输入的需求形成dashboard大屏;
(52)根据具体的数据生成趋势报告,该趋势报告包括各个微服务提供者的服务的使用趋势报告以及整体的资源使用趋势报告。
如上所述,便可很好的实现本发明。

Claims (7)

1.基于dubbo的微服务监控***,其特征在于:包括以下工作步骤:
(1)进行前期的准备工作;
该准备工作包括:
(11)完成对dubbo架构的架设,准备至少一个注册中心zookeeper,且拥有在注册中心zookeeper上注册的微服务提供者;
(12)搭建邮件和微信告警服务;
(13)针对dubbo构架的信息里的负载、客户端连接数、数据库配置地址、线程池、内存使用、总体状态以及接口调用信息数量设计influxdb的measurements;
(2)设置定时信息,***根据该定时信息对注册中心zookeeper进行网络拓扑结构的循环收集,若收集失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若收集成功则进行步骤(3);
(3)获取微服务提供者的服务数据,若获取失败则根据搭建的邮件和微信告警服务进行邮件与微信的告警,若获取成功则进行步骤(4);
(4)进行数据处理;
(5)通过grafana对处理后的数据进行显示。
2.根据权利要求1所述的基于dubbo的微服务监控***,其特征在于:步骤(2)的具体步骤为:
(21)通过python定时读取注册中心zookeeper上面注册的所有微服务提供者的连接信息,并将读取的信息构建成网络拓扑;
(22)根据获取的网络拓扑生成监控对象、监控权重信息以及服务拓扑,若已有服务拓扑则对已有的服务拓扑做增加列表操作。
3.根据权利要求2所述的基于dubbo的微服务监控***,其特征在于:所述步骤(22)中若需要对服务拓扑中的服务进行更换或移除则需要人工介入进行操作。
4.根据权利要求3所述的基于dubbo的微服务监控***,其特征在于:步骤(3)中是通过python模拟底层telent以实现远程调用网络拓扑结构里的微服务提供者的监控信息,并将调用的监控信息格式化成json,且该信息包括负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况以及总体状态。
5.根据权利要求4所述的基于dubbo的微服务监控***,其特征在于:步骤(4)的数据处理的具体步骤为:
(41)对步骤(3)中获取的监控信息进行分类整理,格式化所有数据得到性能信息,并提取负载、注册中心、客户端连接数、数据库配置地址、线程池、内存使用情况的数据进行调用influxdb持久化落盘操作;
(42)对性能信息进行阈值分析和权重分配分析。
6.根据权利要求5所述的基于dubbo的微服务监控***,其特征在于:步骤(42)中需要事先输入相应的底层资源使用率的阀值,而所述的阈值分析的目的是分析底层资源使用率,在底层资源使用率达到不同的定义级别的阀值时,需要进行不同级别的邮件和微信告警;而权重分配分析则是将实时的资源使用情况与最近的历史资源使用情况进行对比,并根据对比的结果调整对应的权重信息,并将调整后的权重信息发送至注册中心zookeeper;其中,注册中心zookeeper的第一次权重信息是注册中心zookeeper默认值。
7.根据权利要求6所述的基于dubbo的微服务监控***,其特征在于:步骤(5)中所述的通过grafana对处理后的数据进行显示的具体步骤为:
(51)通过grafana插件把influxdb中的数据反应出来,并根据预先输入的需求形成dashboard大屏;
(52)根据具体的数据生成趋势报告,该趋势报告包括各个微服务提供者的服务的使用趋势报告以及整体的资源使用趋势报告。
CN201710950152.1A 2017-10-13 2017-10-13 基于dubbo的微服务监控*** Active CN107819607B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710950152.1A CN107819607B (zh) 2017-10-13 2017-10-13 基于dubbo的微服务监控***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710950152.1A CN107819607B (zh) 2017-10-13 2017-10-13 基于dubbo的微服务监控***

Publications (2)

Publication Number Publication Date
CN107819607A true CN107819607A (zh) 2018-03-20
CN107819607B CN107819607B (zh) 2020-09-01

Family

ID=61607299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710950152.1A Active CN107819607B (zh) 2017-10-13 2017-10-13 基于dubbo的微服务监控***

Country Status (1)

Country Link
CN (1) CN107819607B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965461A (zh) * 2018-08-03 2018-12-07 华数传媒网络有限公司 服务治理方法、装置及dubbo服务***
CN109639472A (zh) * 2018-12-04 2019-04-16 科大国创软件股份有限公司 基于Grafana的容器云平台的集成告警控制方法及***
CN110505219A (zh) * 2019-08-12 2019-11-26 南京莱斯信息技术股份有限公司 基于dubbo的微服务服务注册控制管理***及方法
CN110888783A (zh) * 2019-11-21 2020-03-17 望海康信(北京)科技股份公司 微服务***的监测方法、装置以及电子设备
CN113157523A (zh) * 2021-04-21 2021-07-23 平安付科技服务有限公司 服务监控方法、装置、计算机设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162884A (zh) * 2015-09-25 2015-12-16 浪潮(北京)电子信息产业有限公司 一种基于微服务架构的云管理平台
CN105930491A (zh) * 2016-04-28 2016-09-07 安徽四创电子股份有限公司 一种基于时间序列数据库InfluxDB的监控数据存储方法
CN105959390A (zh) * 2016-06-13 2016-09-21 乐视控股(北京)有限公司 微服务的统一管理***及方法
CN106330576A (zh) * 2016-11-18 2017-01-11 北京红马传媒文化发展有限公司 容器化微服务自动伸缩及迁移调度的方法、***和设备
US20170041406A1 (en) * 2014-10-21 2017-02-09 Twilio, Inc. System and method for providing a micro-services communication platform
CN106878393A (zh) * 2017-01-16 2017-06-20 深圳市商沃科技发展有限公司 一种基于融合微服务架构的***
CN106991035A (zh) * 2017-04-06 2017-07-28 北京计算机技术及应用研究所 一种基于微服务架构的主机监控***
CN107102847A (zh) * 2016-02-23 2017-08-29 中国水电工程顾问集团有限公司 基于微服务的软件开发方法、装置及***

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170041406A1 (en) * 2014-10-21 2017-02-09 Twilio, Inc. System and method for providing a micro-services communication platform
CN105162884A (zh) * 2015-09-25 2015-12-16 浪潮(北京)电子信息产业有限公司 一种基于微服务架构的云管理平台
CN107102847A (zh) * 2016-02-23 2017-08-29 中国水电工程顾问集团有限公司 基于微服务的软件开发方法、装置及***
CN105930491A (zh) * 2016-04-28 2016-09-07 安徽四创电子股份有限公司 一种基于时间序列数据库InfluxDB的监控数据存储方法
CN105959390A (zh) * 2016-06-13 2016-09-21 乐视控股(北京)有限公司 微服务的统一管理***及方法
CN106330576A (zh) * 2016-11-18 2017-01-11 北京红马传媒文化发展有限公司 容器化微服务自动伸缩及迁移调度的方法、***和设备
CN106878393A (zh) * 2017-01-16 2017-06-20 深圳市商沃科技发展有限公司 一种基于融合微服务架构的***
CN106991035A (zh) * 2017-04-06 2017-07-28 北京计算机技术及应用研究所 一种基于微服务架构的主机监控***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HTTPS://BLOG.CSDN.NET/ZHDD99/ARTICLE/DETAILS/52263609: "微服务的一种开源实现方式——dubbo+zookeeper", 《CSDN》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108965461A (zh) * 2018-08-03 2018-12-07 华数传媒网络有限公司 服务治理方法、装置及dubbo服务***
CN109639472A (zh) * 2018-12-04 2019-04-16 科大国创软件股份有限公司 基于Grafana的容器云平台的集成告警控制方法及***
CN110505219A (zh) * 2019-08-12 2019-11-26 南京莱斯信息技术股份有限公司 基于dubbo的微服务服务注册控制管理***及方法
CN110888783A (zh) * 2019-11-21 2020-03-17 望海康信(北京)科技股份公司 微服务***的监测方法、装置以及电子设备
CN110888783B (zh) * 2019-11-21 2023-07-07 望海康信(北京)科技股份公司 微服务***的监测方法、装置以及电子设备
CN113157523A (zh) * 2021-04-21 2021-07-23 平安付科技服务有限公司 服务监控方法、装置、计算机设备及存储介质
CN113157523B (zh) * 2021-04-21 2022-11-11 平安付科技服务有限公司 服务监控方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN107819607B (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
CN107819607A (zh) 基于dubbo的微服务监控***
CN111736875B (zh) 版本更新监控方法、装置、设备及计算机存储介质
CN101846985B (zh) 远程数据采集***及方法
CN107678907A (zh) 数据库业务逻辑监控方法、***、及存储介质
CN107203450A (zh) 故障的分类方法和设备
CN106447584A (zh) 一种面向高速公路网络运营的决策支持***及其使用方法
CN110162445A (zh) 基于主机日志及性能指标的主机健康评价方法及装置
CN107659443A (zh) 一种实时业务的监控方法及其***
CN107395379A (zh) 一种集群巡检***及方法
CN109670584A (zh) 一种基于大数据的故障诊断方法及***
CN114020581A (zh) 基于拓扑优化FP-Growth算法的告警关联方法
CN111176680A (zh) 基于物联网的企业终端管理方法、***、设备及介质
WO2018232953A1 (zh) 一种基于物联网的产品生产方法和装置
CN113131612A (zh) 智能配电监测方法、***、智能终端及存储介质
CN110968479B (zh) 一种针对应用程序的业务级全链路监控方法及服务器
CN104991849A (zh) 一种通过zabbix监控Linux进程占用***资源的方法
CN109858807A (zh) 一种企业运营监控的方法及***
CN107609203A (zh) 一种搜索引擎优化效果量化评估的数据分析***及方法
CN110765164A (zh) 对支付请求消息进行处理的方法、***及存储介质
CN110210890A (zh) 一种基于Spring Cloud的活动分享***及实现方法
CN109193949A (zh) 一种光伏电站自动监控云平台及***
CN109544430A (zh) 一种客户资料真实性的***稽核方案
CN102609785B (zh) 复合事件处理***及其部署方法
CN109064687A (zh) 一种自助服务终端运行状态检测***及方法
CN108052637A (zh) 电网时标量测数据接入全生命周期实时图文监控方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant