CN108874833B - 一种实现Etcd Java客户端的方法及装置 - Google Patents

一种实现Etcd Java客户端的方法及装置 Download PDF

Info

Publication number
CN108874833B
CN108874833B CN201710340366.7A CN201710340366A CN108874833B CN 108874833 B CN108874833 B CN 108874833B CN 201710340366 A CN201710340366 A CN 201710340366A CN 108874833 B CN108874833 B CN 108874833B
Authority
CN
China
Prior art keywords
etcd
java
client
java client
class
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.)
Active
Application number
CN201710340366.7A
Other languages
English (en)
Other versions
CN108874833A (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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Shenzhen Kaola Suhui Technology Co.,Ltd.
Original Assignee
Wuhan Douyu 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710340366.7A priority Critical patent/CN108874833B/zh
Publication of CN108874833A publication Critical patent/CN108874833A/zh
Application granted granted Critical
Publication of CN108874833B publication Critical patent/CN108874833B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供的一种实现Etcd Java客户端的方法及装置,该方法包括:使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;使用Gson解析框架在Java对象与Http消息之间进行转换。从而得到轻量级的Etcd Java客户端,并且OkHttp网络请求框架和Gson解析框架都得到了生产环境的检验,使得通过OkHttp网络请求框架和Gson解析框架构建的Etcd Java客户端具有较高的健壮性。

Description

一种实现Etcd Java客户端的方法及装置
技术领域
本发明涉及软件工程领域,更具体地,涉及一种实现Etcd Java客户端的方法及装置。
背景技术
Java是一种跨平台的、解释型语言。Java编译工具将Java源代码被编译成为Java字节码文件,由Java虚拟机负责对Java字节码文件进行解释执行。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
Etcd应用在分布式环境下的key/value存储服务,是一个高可用的键值存储系统,主要用于共享配置和服务发现。利用Etcd的特性,应用程序可以在集群中共享信息、配置或服务发现,Etcd会在集群的各个节点中复制这些数据并保证这些数据始终正确。Etcd无论是在CoreOS还是Kubernetes体系中都是不可或缺的一环。Google的容器集群管理系统Kubernetes、开源PaaS平台CloudFoundry和CoreOS的Fleet都广泛使用了Etcd。
目前的Etcd Java客户端虽然有多种,但是这些客户端都存在着一些不足,如并未经过严格的测试和生产环境的验证,依赖的第三方库比较陈旧等,以至于业内没有很好的Etcd java客户端。
发明内容
针对上述的技术问题,本发明提供一种实现Etcd Java客户端的方法及装置。
第一方面,本发明提供一种实现Etcd Java客户端的方法,包括:使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;使用Gson解析框架在Java对象与Http消息之间进行转换。
其中,所述方法还包括:使用Client类为Etcd中的每个应用程序编程接口提供至少一个与所述应用程序编程接口对应的执行方法。
其中,所述方法还包括:在Etcd Java客户端与Etcd之间进行异步调用。
其中,所述使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接包括:使用OkHttp网络请求框架在Etcd Java客户端中的Client类与Etcd之间建立HttpRESTful方式的通信连接。
其中,所述使用Gson解析框架在Java对象与Http消息之间建立转换包括:使用Gson解析框架,Etcd Java客户端中的消息解析类实现Java对象与Http消息之间的转换。
其中,所述在Etcd Java客户端与Etcd之间进行异步调用包括:Client类对Etcd的应用程序编程接口提供watch方法,以及提供回调适配器类实现Etcd回调接口到OkHttp回调接口的转换。
其中,所述Etcd回调接口包括:onFailure和onResponse两个执行方法。
第二方面,本发明提供一种实现Etcd Java客户端的装置,包括:通信模块,用于使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;转换模块,用于使用Gson解析框架在Etcd Java客户端与Http消息之间进行转换;
第三方面,本发明提供一种实现Etcd Java客户端的装置,其特征在于,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中,所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至7任一所述的方法。
第四方面,本发明提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一所述的方法。
本发明提供的一种实现Etcd Java客户端的方法及装置,通过使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接,以及使用Gson解析框架在Java对象与Http消息之间建立转换,从而得到轻量级的Etcd Java客户端,并且OkHttp网络请求框架和Gson解析框架都得到了生产环境的检验,使得通过OkHttp网络请求框架和Gson解析框架构建的Etcd Java客户端具有较高的健壮性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的实现Etccd Java客户端的方法的流程图;
图2为本发明实施例提供的实现Etccd Java客户端的装置的结构框图;
图3为本发明另一实施例提供的实现Etccd Java客户端的装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的实现Etccd Java客户端的方法的流程图,如图1所示,该方法包括:S1,使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;S2,使用Gson解析框架在Java对象与Http消息之间进行转换。
其中,OkHttp网络请求框架是一个处理网络请求的开源项目,是安卓端的轻量级框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpClient。
其中,Gson解析框架是Google提供用于Java对象和json数据之间进行转换的Java类库,可以把json字符串与Java对象进行互转。Gson解析框架的优势在于:快速高效、面向对象、只需要少量的代码就可以解析,实现起来方便简洁。
其中,json是JavaScript Object Notation,是一种轻量级的数据交换格式。
其中,超文本传输协议(HyperText Transfer Protocol,Http)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计Http最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了Http超文本传输协议标准架构的发展根基。
具体地,在实现Etcd Java客户端时,通过OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接,使得Etcd Java客户端能够避免从零开始开发Http请求与处理功能;并且OkHttp社区比较活跃,问题修复比较快,从而使得Etcd Java客户端具有健壮性,这是其他Etcd Java客户端不具有的。由于Etcd返回的Http消息是json格式的字符串,使用Google开源的优秀json解析库Gson在Java对象与Http消息之间建立转换功能,方便开发人员以面向对象的思想与Etcd进行交互。
在本发明实施例中,通过使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接,以及使用Gson解析框架在Java对象与Http消息之间建立转换,从而得到轻量级的Etcd Java客户端,并且OkHttp网络请求框架和Gson解析框架都得到了生产环境的检验,使得通过OkHttp网络请求框架和Gson解析框架构建的Etcd Java客户端具有较高的健壮性。
在上述实施例的基础上,所述方法还包括:使用Client类为Etcd中的每个应用程序编程接口提供至少一个与所述应用程序编程接口对应的执行方法。
其中,Client类是整个Etcd Java客户端的核心类,为开发者提供与Etcd交互的统一应用程序编程接口。
其中,应用程序编程接口(Application Programming Interface,API)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码或理解内部工作机制的细节。
具体地,在实现Etcd Java客户端时,需要定义Etcd Java客户端支持的Etcd应用程序编程接口,即为Etcd应用程序编程接口提供一个或多个与该应用程序编程接口对应的执行方法,例如,以Etcd v2版本为例进行说明,但并不用于限制本发明的保护范围。实现的Etcd Java客户端支持Etcd v2版本中的所有API,例如,描述Etcd的Set API,即对某个键设置值,例如,为message键设置Hello word值,则其描述为:
Figure BDA0001295087270000061
为了方便开发人员使用,对于Etcd v2版本的每个API,Etcd Java客户端都有对应于该API的方法,例如,以Etcd v2版本中为键(key)设置值(value)的API为例描述这种对应关系,但并不用于限制本发明的保护范围。
Etcd Java客户端中的Client类(即EtcdClient类)其提供set方法对应Etcd提供的Set API,EtcdClient类中的set方法如下所示:
public void set(String key,String value)
该方法有两个参数,分别是String类型的键(key),String类型的值(value),提供与Etcd v2版本的Set API相同的语义,即为Etcd中的某个key设置value。同时EtcdClient类中也提供了重载的set方法,如下:
public void set(String key,String value,int ttl)
提供为某个键设置值的同时,对这个键设置过期时间,对于过期的键,Etcd会自动的进行清除。
public void set(String key,String value,int ttl,
Boolean prevExist)
提供在某个键存在的情况下,设置是否更新这个键,同时支持为这个键设置过期时间。
本发明实施例中,通过使用EtcdClient类为Etcd中的每个应用程序编程接口提供一个或多个与所述应用程序编程接口对应的执行方法,方便开发者能够较方便的使用EtcdJava客户端,并且保持与Etcd v2API完全一致的语义,所以开发者在了解Etcd v2API文档的情况下就可以使用该Etcd Java客户端。
在上述实施例的基础上,所述方法还包括:在Etcd Java客户端与Etcd之间进行异步调用。
其中,异步调用(asynchronous call)是一个可以无需等待被调用函数的返回值就让操作继续进行的方法。
具体地,大部分的Etcd Java客户端都没有提供给开发者异步调用Etcd的功能,从而导致了Etcd Java客户端不能很好的支持Wait API,即监听某个key的变化。通过在EtcdJava客户端与Etcd之间进行异步调用,如果Etcd Java客户端对监听的key进行写操作,则监听该key的客户端则会收到通知,因此,异步执行Etcd API能让开发人员实时了解到key的变化情况。
在本发明实施例中,通过在Etcd Java客户端与Etcd之间进行异步调用,使得EtcdJava客户端的性能得以提高。
在上述实施例的基础上,所述使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接包括:使用OkHttp网络请求框架在Etcd Java客户端中的Client类与Etcd之间建立Http RESTful(符合REST设计风格的)方式的通信连接。
其中,RESTful是一种软件架构风格,是设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
其中,REST(Representational State Transfer,简称REST)描述了一个架构样式的网络系统,比如web应用程序。在目前主流的三种Web服务交互方案中,REST相比于简单对象访问协议(Simple Object Access protocol,SOAP)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现。值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。
具体地,由于Etcd提供的API是Http RESTful方式的,而EtcdClient类在OkHttp网络请求框架上进行了封装,使得Java开发人员无需关心与Etcd进行Http通信的具体细节,而只要调用EtcdClient类提供的与Etcd v2版本的API相同语义的方法,即可完成通过Http方式调用Etcd v2版本的API相同的功能。虽然其他的Etcd Java客户端也能提供同样的功能,但是本发明实施例提供的方法依赖的是OkHttp网络请求框架,而其他的Etcd Java客户端依赖的网络请求框架还相对陈旧,没有OkHttp框架优秀,有的则依赖Netty这一网络通信框架,虽然Netty是非常优秀的网络通信框架,但是对于仅仅支持Etcd v2API的Etcd Java客户端来说则没那么必要因为OkHttp相比Netty更加的轻量简洁。
在本发明实施例中,通过使用OkHttp网络请求框架在EtcdClient类与Etcd之间建立Http RESTful方式的通信连接,使得Etcd Java客户端更加轻量简洁。
在上述实施例的基础上,所述使用Gson解析框架在Java对象与Http消息之间建立转换包括:使用Gson解析框架,Etcd Java客户端中的消息解析类实现Java对象与Http消息之间的转换。
其中,消息解析类为EtcdMessageParser类,是Etcd Java客户端中的一个类,Parser(解析器)是指一个程序,通常是编译器的部分,接收输入的顺序源程序指令、交互式联机命令、标记或者一些其它定义的接口,将它们打破分成几个部分(例如名词(对象),动词(方法)和他们的属性或者选项),然后能够被其它的编程控制(如在编译器中的其它组成)。解析器也能用于检查是否所有的已经提供的输入都是必要的。
具体地,在Etcd Java客户端与Http消息之间建立转换功能时,消息解析类(即EtcdMessageParser类)依赖Gson解析框架提供Java对象到Http消息之间的转换工作。为了方便Java开发人员能够以面向对象的思想与Etcd进行交互,对Etcd返回的消息内容提供了Java类描述,即EtcdNode和EtcdResult两类。
EtcdNode类如下:
Figure BDA0001295087270000091
这里省略了set/get方法,key为Etcd中的键,createIndex和modifiedIndex与Etcd中的createIndex和modifiedIndex对应,开发人员无需关心。value是key对应的值;expiration是当前key的过期时间;unix时间戳的字符串表示形式;ttl是key的过期时间,单位是秒;dir表示当前节点是否是逻辑上的目录,对于目录节点可以包含子节点;nodes表示当前目录下的所有子节点。EtcdNode对Etcd中的节点的概念进行了描述。
EtcdResult类如下:
Figure BDA0001295087270000101
同样省略了set/get方法,EtcdResult对Etcd的消息对象进行描述,其中action表示与Etcd交互的命令,例如,请求的API,如set API;node表示当前节点的状态;prevNode表示Etcd在执行当前操作之前的节点的状态;errorCode对应Etcd定义的错误码;message表示在当前操作错误的情况下的错误信息;cause表示错误的原因;index对应Etcd的index。
EtcdMessageParser类的职责就是提供Java对象与Http消息之间的转换,由于Etcd返回的Http消息是json格式的字符串,EtcdMessageParser类依赖Gson解析框架实现Http消息与Java对象之间的转换,并提供了异常检验功能。
在本发明实施例中,通过EtcdMessageParser类依赖Gson解析框架实现Java对象与Http消息之间的转换,方便Java开发人员以面向对象的思考方式编程。
在上述实施例的基础上,所述在Etcd Java客户端与Etcd之间进行异步调用包括:Client类对Etcd的应用程序编程接口提供watch方法,以及提供回调适配器类实现Etcd回调接口到OkHttp回调接口的转换。所述Etcd回调接口包括:onFailure和onResponse两个执行方法。
其中,调适配器类为OkHttp3CallbackAdapter类,是Etcd Java客户端中的一个类,Adapter(适配器)是将一个类的接口变换成客户端所期待的一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
其中,watch方法是指异步执行订阅Etcd中键的变化事件,当指定键的状态发送变化时,回调函数会回调执行。
具体地,Client类(即EtcdClient类)对Etcd的应用程序编程接口提供了watch方法,如下:
public void watch(String key,EtcdCallback callback)
该接口的作用是异步执行订阅一个key的变化事件,当指定的key的状态发生变化的时候,callback提供的回调函数会回调执行。EtcdClient类在实现这种异步操作的功能上借助了OkHttp的异步功能,并提供了回调适配器类(即OkHttp3CallbackAdapter类)完成Etcd回调接口(即EtcdCallback接口)到OkHttp内部提供的回调接口的转换工作,从而避免开发者只关注业务逻辑。使用Etcd java客户端的开发人员将处理逻辑编写到EtcdCallback接口对应的函数中,然后调用watch方法,EtcdClient类负责命令的执行,当开发人员watch的key发生变化后,EtcdClient类会接到通知,然后回调EtcdCallback方法,完成对开发人员的异步通知。EtcdCallback的接口定义如下,
Figure BDA0001295087270000111
该接口有两个执行方法,分别是onFailure和onResponse。EtcdClient类在执行异步操作的时候,如果执行过程中出现异常,则会调用onFailure执行方法并将错误信息告知开发人员。如果执行成功,则会调用onResponse执行方法将结果返回给开发人员。这样开发人员只需要实现EtcdCallback接口即可。
在本发明实施例中,通过EtcdClient类对Etcd的应用程序编程接口提供watch方法,以及提供OkHttp3CallbackAdapter类实现Etcd回调接口到OkHttp回调接口的转换,从而实现Etcd Java客户端与Etcd之间的异步调用功能,提高了Etcd Java客户端的性能。
图2为本发明实施例提供的实现Etccd Java客户端的装置的结构框图,如图2所示,该装置包括:通信模块201和转换模块202。通信模块201用于使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;转换模块202用于使用Gson解析框架在EtcdJava客户端与Http消息之间建立进行功能。
具体地,在实现Etcd Java客户端时,通信模块201通过OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接,使得Etcd Java客户端能够避免从零开始开发Http请求与处理功能;并且OkHttp社区比较活跃,问题修复比较快,从而使得Etcd Java客户端具有健壮性,这是其他Etcd Java客户端不具有的。由于Etcd返回的Http消息是json格式的字符串,转换模块202使用Google开源的优秀json解析库Gson在Java对象与Http消息之间建立转换,方便开发人员以面向对象的思想与Etcd进行交互。
在本发明实施例中,通过通信模块使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接,以及转换模块使用Gson解析框架在Java对象与Http消息之间建立转换,从而得到轻量级的Etcd Java客户端,并且OkHttp网络请求框架和Gson解析框架都得到了生产环境的检验,使得通过OkHttp网络请求框架和Gson解析框架构建的Etcd Java客户端具有较高的健壮性。
图3为本发明另一实施例提供的实现Etcd Java客户端的装置的结构框图,如图3所示,该识别装置包括:处理器301、存储器302和总线303。
其中,处理器301和存储器302通过总线303完成相互间的通信;所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;使用Gson解析框架在Java对象与Http消息之间建立转换。
在另一实施例中,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;使用Gson解析框架在Java对象与Http消息之间建立转换。
上述各实施例提供的实现Etcd Java客户端的方法及装置,实现的Etcd Java客户端中的EtcdClient类依赖EtcdMessageParser类对消息进行编码与解析,即提供Java对象与Http消息之间的转换工作;依赖OkHttp3CallbackAdapter类提供给开发者与Etcd进行异步调用的交互方式,例如,监听Etcd上的某个key的变化,当key发生变化时,EtcdClient类异步通知开发人员;依赖OkHttp这一优秀的开源网络请求框架,与Etcd之间进行HttpRESTful方式的通信。
因此,实现的Etcd Java客户端支持Etcd v2版本中的所有的API,即为每个Etcdv2版本的API都提供了一个或多个重载的执行方法,方便开发者能够容易使用Etcd Java客户端,并且保持与Etcd v2API完全一致的语义,所以开发者在了解Etcd v2API文档的情况下就可以使用Etcd Java客户端。并且基于请求框架OkHttp和解析框架Gson构建的EtcdJava客户端具有轻量级和健壮性的特点。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种实现Etcd Java客户端的方法,其特征在于,包括:
使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;
使用Gson解析框架在Java对象与Http消息之间建立转换;
还包括:使用Client类为Etcd中的每个应用程序编程接口提供至少一个与所述应用程序编程接口对应的执行方法;
所述使用Gson解析框架在Java对象与Http消息之间建立转换,包括:
使用Gson解析框架,Etcd Java客户端中的消息解析类实现Java对象与Http消息之间的转换。
2.根据权利要求1所述的方法,其特征在于,还包括:在Etcd Java客户端与Etcd之间进行异步调用。
3.根据权利要求1所述的方法,其特征在于,所述使用OkHttp网络请求框架在EtcdJava客户端与Etcd之间建立通信连接包括:
使用OkHttp网络请求框架在Etcd Java客户端中的Client类与Etcd之间建立HttpRESTful方式的通信连接。
4.根据权利要求2所述的方法,其特征在于,所述在Etcd Java客户端与Etcd之间进行异步调用包括:
Client类对Etcd的应用程序编程接口提供watch方法,以及提供回调适配器类实现Etcd回调接口到OkHttp回调接口的转换。
5.根据权利要求4所述的方法,其特征在于,所述Etcd回调接口包括:onFailure和onResponse两个执行方法。
6.一种实现Etcd Java客户端的装置,其特征在于,包括:
通信模块,用于使用OkHttp网络请求框架在Etcd Java客户端与Etcd之间建立通信连接;
转换模块,用于使用Gson解析框架在Etcd Java客户端与Http消息之间建立转换;
执行模块,用于使用Client类为Etcd中的每个应用程序编程接口提供至少一个与所述应用程序编程接口对应的执行方法;
所述使用Gson解析框架在Java对象与Http消息之间建立转换,包括:
使用Gson解析框架,Etcd Java客户端中的消息解析类实现Java对象与Http消息之间的转换。
7.一种实现Etcd Java客户端的装置,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至5任一所述的方法。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使计算机执行如权利要求1至5任一所述的方法。
CN201710340366.7A 2017-05-15 2017-05-15 一种实现Etcd Java客户端的方法及装置 Active CN108874833B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710340366.7A CN108874833B (zh) 2017-05-15 2017-05-15 一种实现Etcd Java客户端的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710340366.7A CN108874833B (zh) 2017-05-15 2017-05-15 一种实现Etcd Java客户端的方法及装置

Publications (2)

Publication Number Publication Date
CN108874833A CN108874833A (zh) 2018-11-23
CN108874833B true CN108874833B (zh) 2021-02-02

Family

ID=64320480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710340366.7A Active CN108874833B (zh) 2017-05-15 2017-05-15 一种实现Etcd Java客户端的方法及装置

Country Status (1)

Country Link
CN (1) CN108874833B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519089A (zh) * 2019-08-23 2019-11-29 北京浪潮数据技术有限公司 一种sheepdog集群管理系统
CN115086424B (zh) * 2022-06-27 2023-10-13 北京快乐茄信息技术有限公司 一种网络请求监听的方法、装置、终端设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761880B2 (en) * 2006-09-27 2010-07-20 International Business Machines Corporation Dynamically extending XML-based service through client
CN103399734B (zh) * 2013-07-10 2017-02-08 北京慧点科技有限公司 生成rest服务和rest实现的方法及对应的设备
CN105681394A (zh) * 2015-12-29 2016-06-15 深圳市瑞铭无限科技有限公司 基于OKHttp和GSON的网络请求方法和装置

Also Published As

Publication number Publication date
CN108874833A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
US10726195B2 (en) Filtered stylesheets
US9665476B2 (en) Auto-deployment and testing of system application test cases in remote server environments
US10942922B2 (en) Generation of data flow from syntax tree
US8904343B2 (en) Adding services to application platform via extension
US10341194B2 (en) System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment
US20130007216A1 (en) Virtual machine migration tool
US10419568B2 (en) Manipulation of browser DOM on server
CN111414350B (zh) 一种服务生成方法及装置
US20190065164A1 (en) Computer speed via metadata-based business rule interpreter
Garbervetsky et al. Toward full elasticity in distributed static analysis: The case of callgraph analysis
Pinheiro et al. Model-based testing of RESTful web services using UML protocol state machines
US20180270299A1 (en) System and method for producing api-throttle and back-pressure avoidance among clients using distributed asynchronous components
CN108874833B (zh) 一种实现Etcd Java客户端的方法及装置
Ihrig et al. Full Stack JavaScript Development With MEAN: MongoDB, Express, AngularJS, and Node. JS
US8595291B2 (en) Server hierarchical structure on user-agents
KR102443171B1 (ko) 이기종 컴퓨팅 환경에서 데이터 타입 변환을 지원하기 위한 시스템 및 방법
US20200272434A1 (en) Generating Interfaces From Data and Service Definitions For Developing Applications
CN112579151A (zh) 一种模型文件的生成方法和装置
CN110599112A (zh) 一种网络页面开发、维护方法和装置
US9195704B2 (en) Automated logging for object-oriented environments
JP2024506528A (ja) アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法
CN106156339B (zh) 保单管理系统的访问方法、装置及系统
Mlinarić Challenges in dynamic software updating
US20240160459A1 (en) Continuous integration emulator
WO2004109503A2 (en) System and method for asynchronous resource management

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
TR01 Transfer of patent right

Effective date of registration: 20230518

Address after: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 430000 Wuhan Donghu Development Zone, Wuhan, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Effective date of registration: 20230518

Address after: 518000, 1307, Phase I, International Student Entrepreneurship Building, No. 3170 Keyuan South Road, Gaoxin District, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Kaola Suhui Technology Co.,Ltd.

Address before: Unit 2414-2416, main building, no.371, Wushan Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

TR01 Transfer of patent right