CN103475690B - Memcached节点配置方法及装置 - Google Patents
Memcached节点配置方法及装置 Download PDFInfo
- Publication number
- CN103475690B CN103475690B CN201310239970.2A CN201310239970A CN103475690B CN 103475690 B CN103475690 B CN 103475690B CN 201310239970 A CN201310239970 A CN 201310239970A CN 103475690 B CN103475690 B CN 103475690B
- Authority
- CN
- China
- Prior art keywords
- memcached
- node
- data
- information
- server
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种Memcached节点配置方法及装置,包括:将Memcached的使用协议封装成应用服务器的统一类库中的接口,存储所有Memcached节点的信息;统一类库根据Memcached节点的信息通过socket与Memcached服务器中对应Memcached节点建立TCP连接;应用服务器获取接口请求和数据,统一类库将接口请求转换为Memcached的使用协议,将数据转换为Memcached识别的二进制数据,并发送至建立了TCP连接的Memcached节点。本发明能够解决负载均衡导致数据能存却不能取回的问题,提升应用程序的性能,响应速度。
Description
技术领域
本发明涉及高效统一动态变化节点的分布式缓存与即时监控预警***,特别涉及一种Memcached节点配置方法及装置。
背景技术
从Memcached当前的Wiki(参见http://code.***.com/p/memcached/wiki/NewStart)看出Memcached主要解决了分布式缓存高效存取的问题。但是还有一些问题没有解决:
(1)Memcached节点信息缺少统一的管理;
(2)Memcached使用中各项关键参数无法在运行时修改:
(3)Memcached节点无法在使用过程中动态增减;
(4)负载均衡可能会导致数据能存,却不能取回;
(5)Memcached只解决内存分配的问题,并不解决各种编程语言的接入使用以及数据序列化、数据压缩等问题;
(6)Memcached不能解决读写分离***的一致性问题;
(7)Memcached没有对内存使用率、命中率等数值的监控与预警。
发明内容
本发明的目的在于提供一种Memcached节点配置方法及装置,能够实现Memcached节点信息统一管理、关键参数在运行时修改、动态增减Memcached节点、C#语言接入使用Memcached、数据序列化、数据压缩、读写分离***使用Memcached的一致性、对Memcached内存和命中率监控预警,及解决负载均衡导致数据能存却不能取回的问题。
为解决上述问题,本发明提供一种Memcached节点配置方法,包括:
将Memcached的使用协议封装成应用服务器的统一类库中的接口,在数据库服务器中存储所有Memcached节点的信息;
所述统一类库通过Memcached服务***从所述数据库服务器获取Memcached节点的信息,并根据Memcached节点的信息通过socket与Memcached服务器中对应Memcached节点建立TCP连接;
应用服务器获取用户通过浏览器发出的接口请求和数据,所述统一类库将所述接口请求转换为Memcached的使用协议,将所述数据转换为Memcached识别的二进制数据,并将所述转换好的Memcached的使用协议和数据发送至建立了TCP连接的Memcached节点。
进一步的,在上述方法中,所述统一类库根据Memcached节点的信息通过socket与Memcached服务器中对应Memcached节点建立TCP连接的步骤之前还包括:
在Memcached服务器上安装Memcached1.4.13;
使每个Memcached节点的最大可存储的键值对大小为6M,并使每个Memcached应用总容量有冗余;
应用服务器将超过1M的数据切分为大小接近的数据块,并将超过预设阈值的数据进行压缩。
进一步的,在上述方法中,所述Memcached节点的信息包括该Memcached节点是否可用的状态信息。
进一步的,在上述方法中,用户向对应Memcached节点存取数据的步骤之后还包括:
监控每个Memcached节点的命中率、内存使用率、启动时间、版本、当前连接数、get次数、set次数、已使用内存大小、当前已存入的项、丢弃值,当命中率、内存使用率、丢弃值超出预设阀值的阀值时进行报警。
根据本发明的另一面,提供一种Memcached节点配置装置,包括:
数据库服务器,用于存储所有Memcached节点的信息;
Memcached服务***,用于从数据库服务器获取Memcached节点的信息并返回至所述统一类库;
应用服务器,用于获取用户通过浏览器发出的接口请求和数据,并发送至统一类库;
统一类库,用于通过Memcached服务***从所述数据库服务器获取Memcached节点的信息,并根据Memcached节点的信息通过socket与Memcached服务器中对应Memcached节点建立TCP连接,将从应用服务器获取的所述接口请求转换为Memcached的使用协议,将从应用服务器获取的所述数据转换为Memcached识别的二进制数据,并将所述转换好的Memcached的使用协议和数据发送至建立了TCP连接的Memcached节点。
进一步的,在上述***中,所述Memcached服务器,用于安装Memcached1.4.13;使每个Memcached节点的最大可存储的键值对大小为6M,并使每个Memcached应用总容量有冗余。
进一步的,在上述***中,所述应用服务器,还用于将超过1M的数据切分为大小接近的数据块,并将超过预设阈值的数据进行压缩。
进一步的,在上述***中,所述数据库服务器中Memcached节点的信息包括该Memcached节点是否可用的状态信息。
进一步的,在上述***中,还包括一监控报警***,用于监控每个Memcached节点的命中率、内存使用率、启动时间、版本、当前连接数、get次数、set次数、已使用内存大小、当前已存入的项、丢弃值,当命中率、内存使用率、丢弃值超出预设阀值的阀值时进行报警。
与现有技术相比,本发明能够实现Memcached节点信息统一管理、关键参数在运行时修改、动态增减Memcached节点、C#语言接入使用Memcached、数据序列化、数据压缩、读写分离***使用Memcached的一致性、对Memcached内存和命中率监控预警,及解决负载均衡导致数据能存却不能取回的问题,提升应用程序的性能,响应速度。
附图说明
图1是本发明一实施例的Memcached节点配置方法的流程图;
图2是本发明一实施例的Memcached节点配置装置的模块示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
如图1所示,本发明提供一种Memcached节点配置方法,包括步骤S1至步骤S3。具体的,Memcached是高性能的分布式内存缓存服务,一般的使用目的是,将数据库查询结果缓存起来,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
步骤S1,将Memcached的使用协议封装成应用服务器(BussinessApp)的统一类库(MemcachedClientLibrary)中的接口(API),在数据库服务器(Database)中存储所有Memcached节点(instance)的信息;具体的,应用服务器的统一类库便于统一管理、配置、监控、维护和升级,可将Memcached节点的信存储在数据库服务器中,并可建立一套专门维护节点信息的***,分权限开放给机票、酒店、度假等各小组进行配置,这样带来的好处是,界面化的人机互动,集中管理,日志追溯操作记录,维护方便。另外,简化的接口(API)可使用户无需了解繁琐的底层细节和配置,直接利用简单的API调用即可获得缓存功能。
优选的,所述Memcached节点的信息包括该Memcached节点是否可用的状态信息。具体的,Memcached在扩展性上的良好表现,就是可以横向扩展,无需停机维护,无需暂停业务,而新加入的Memcached节点,在所述统一类库中可以在1分钟内自动感知,并将部分数据迁移到新的Memcached节点上,而不是影响全局的数据分布。对于读写分离的***,写***可能已经无法写了,另一个读***还在拼命的读,这时候有可能就读到脏数据;可由写***通知读***关于某个Memcached节点失效即不可用,写***和读***可一起转移向另一个可用的Memcached节点进行读写,具体实现方式是将Memcached节点是否可用状态信息存储在所述数据库服务器中,读写分离的***都从数据库服务器中获取Memcached节点状态,当一边不可用,就修改节点状态,这样另一边就知道了,从而实现运行时动态增加节点,错误自动移出节点。
步骤S2,所述统一类库通过Memcached服务***(MemcachedRestfulService)从所述数据库服务器获取Memcached节点的信息,并根据Memcached节点的信息通过socket与Memcached服务器(MemcachedCluster)中对应Memcached节点建立TCP连接,以供用户向对应Memcached节点存取数据。具体的,所述统一类库与对应Memcached节点经过三次握手之后,TCP连接建立,这时应用服务器中应用程序就可以向建立连接的Memcached节点存取数据。
优选的,步骤S2之前还包括:
在Memcached服务器上安装Memcached1.4.13;
使每个Memcached节点的最大可存储的键值对大小为6M,并使每个Memcached应用总容量有冗余;
应用服务器将超过1M的数据切分为大小接近的数据块,并将超过预设阈值的数据进行压缩。具体的,在分布式***中传输大数据,会占用带宽和时间,可以特别为超过一定阀值的数据进行了压缩,减小它的体积,降低占用带宽,减少传输时间,可采用高速序列化框架,确保存取的高效性。
步骤S3,应用服务器获取用户通过浏览器(Browser)发出的接口请求和数据,所述统一类库将所述接口请求转换为Memcached的使用协议,将所述数据转换为Memcached识别的二进制数据即数据序列化,并将所述转换好的Memcached的使用协议和二进制数据发送至建立了TCP连接的Memcached节点。
优选的,步骤S3之后还包括:
监控每个Memcached节点的命中率、内存使用率、启动时间、版本、当前连接数、get次数、set次数、已使用内存大小、当前已存入的项、丢弃值,当命中率、内存使用率、丢弃值超出预设阀值的阀值时进行报警,如以邮件的形式通知用户和管理员,只在需要时查看Memcached节点的上述使用状态,可通过程序自动监控对于超过警戒值的情况报警,从而实现提供监控和预警功能。
另外,还可开发一套开发者技术查询网站,风格是类似MSDN的,并完善提示信息,当开发者运用API时,会出现良好的智能提示良好的文档支持、异常和提示信息。
本实施例能够实现Memcached节点信息统一管理、关键参数在运行时修改、动态增减Memcached节点、C#语言接入使用Memcached、数据序列化、数据压缩、读写分离***使用Memcached的一致性、对Memcached内存和命中率监控预警,及解决负载均衡导致数据能存却不能取回的问题,提升应用程序的性能,响应速度。
实施例二
如图2所示,本发明还提供另一种Memcached节点配置装置,包括:
数据库服务器1,用于存储所有Memcached节点的信息;
应用服务器2,用于获取用户通过浏览器3发出的接口请求和请求数据,并发送至统一类库4;
统一类库4,用于通过Memcached服务***5从所述数据库服务器1获取Memcached节点的信息,并根据Memcached节点的信息通过socket与Memcached服务器6中对应Memcached节点61建立TCP连接,将从应用服务器2获取的所述接口请求转换为Memcached的使用协议,将从应用服务器2获取的所述数据转换为Memcached识别的二进制数据,并将所述转换好的Memcached的使用协议和二进制数据发送至建立了TCP连接的Memcached节点,以供用户向对应Memcached节点61存取数据;
Memcached服务***5,用于从数据库服务器1获取Memcached节点的信息并返回至所述统一类库4。
优选的,Memcached服务器6,用于在Memcached服务器安装Memcached1.4.13;使每个Memcached节点的最大可存储的键值对大小为6M,并使每个Memcached应用总容量有冗余。
优选的,所述应用服务器2,还用于将超过1M的数据切分为大小接近的数据块,并将超过预设阈值的数据进行压缩。
优选的,所述数据库服务器1中Memcached节点61的信息包括该Memcached节点61是否可用的状态信息。
实施例二的详细内容具体可参见实施例一,在此不再赘述。
综上所述,本发明能够实现Memcached节点信息统一管理、关键参数在运行时修改、动态增减Memcached节点、C#语言接入使用Memcached、数据序列化、数据压缩、读写分离***使用Memcached的一致性、对Memcached内存和命中率监控预警,及解决负载均衡导致数据能存却不能取回的问题,提升应用程序的性能,响应速度。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (9)
1.一种Memcached节点配置方法,其特征在于,包括:
将Memcached的使用协议封装成应用服务器的统一类库中的接口,在数据库服务器中存储所有Memcached节点的信息;
所述统一类库通过Memcached服务***从所述数据库服务器获取Memcached节点的信息,并根据Memcached节点的信息通过socket与Memcached服务器中对应Memcached节点建立TCP连接;
应用服务器获取用户通过浏览器发出的接口请求和数据,所述统一类库将所述接口请求转换为Memcached的使用协议,将所述数据转换为Memcached识别的二进制数据,并将所述转换好的Memcached的使用协议和二进制数据发送至建立了TCP连接的Memcached节点。
2.如权利要求1所述的Memcached节点配置方法,其特征在于,所述统一类库根据Memcached节点的信息通过socket与Memcached服务器中对应Memcached节点建立TCP连接的步骤之前还包括:
在Memcached服务器上安装Memcached1.4.13;使每个Memcached节点的最大可存储的键值对大小为6M,并使每个Memcached应用总容量有冗余;
应用服务器将超过1M的数据切分为大小接近的数据块,并将超过预设阈值的数据进行压缩。
3.如权利要求1所述的Memcached节点配置方法,其特征在于,所述Memcached节点的信息包括该Memcached节点是否可用的状态信息。
4.如权利要求1所述的Memcached节点配置方法,其特征在于,用将所述转换好的Memcached的使用协议和数据发送至建立了TCP连接的Memcached节点的步骤之后还包括:
监控每个Memcached节点的命中率、内存使用率、启动时间、版本、当前连接数、get次数、set次数、已使用内存大小、当前已存入的项、丢弃值,当命中率、内存使用率、丢弃值超出预设阀值的阀值时进行报警。
5.一种Memcached节点配置装置,其特征在于,包括:
数据库服务器,用于存储所有Memcached节点的信息;
Memcached服务***,用于从数据库服务器获取Memcached节点的信息并返回至统一类库;
应用服务器,用于获取用户通过浏览器发出的接口请求和数据,并发送至统一类库;
统一类库,用于通过Memcached服务***从所述数据库服务器获取Memcached节点的信息,并根据Memcached节点的信息通过socket与Memcached服务器中对应Memcached节点建立TCP连接,将从应用服务器获取的所述接口请求转换为Memcached的使用协议,将从应用服务器获取的所述数据转换为Memcached识别的二进制数据,并将所述转换好的Memcached的使用协议和二进制数据发送至建立了TCP连接的Memcached节点。
6.如权利要求5所述的Memcached节点配置装置,其特征在于,所述Memcached服务器,用于安装Memcached1.4.13;使每个Memcached节点的最大可存储的键值对大小为6M,并使每个Memcached应用总容量有冗余。
7.如权利要求5所述的Memcached节点配置装置,其特征在于,所述应用服务器,还用于将超过1M的数据切分为大小接近的数据块,并将超过预设阈值的数据进行压缩。
8.如权利要求5所述的Memcached节点配置装置,其特征在于,所述数据库服务器中Memcached节点的信息包括该Memcached节点是否可用的状态信息。
9.如权利要求5所述的Memcached节点配置装置,其特征在于,还包括一监控报警***,用于监控每个Memcached节点的命中率、内存使用率、启动时间、版本、当前连接数、get次数、set次数、已使用内存大小、当前已存入的项、丢弃值,当命中率、内存使用率、丢弃值超出预设阀值的阀值时进行报警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310239970.2A CN103475690B (zh) | 2013-06-17 | 2013-06-17 | Memcached节点配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310239970.2A CN103475690B (zh) | 2013-06-17 | 2013-06-17 | Memcached节点配置方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103475690A CN103475690A (zh) | 2013-12-25 |
CN103475690B true CN103475690B (zh) | 2016-06-08 |
Family
ID=49800383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310239970.2A Expired - Fee Related CN103475690B (zh) | 2013-06-17 | 2013-06-17 | Memcached节点配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103475690B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105224348A (zh) * | 2014-06-11 | 2016-01-06 | 中兴通讯股份有限公司 | 一种MySQL数据库的安装方法及装置 |
CN105554069B (zh) * | 2015-12-04 | 2018-09-11 | 国网山东省电力公司电力科学研究院 | 一种大数据处理分布式缓存***及其方法 |
CN106936623A (zh) * | 2015-12-31 | 2017-07-07 | 五八同城信息技术有限公司 | 分布式缓存***及缓存集群的管理方法 |
CN106503032A (zh) * | 2016-09-09 | 2017-03-15 | 深圳大学 | 一种数据压缩的方法及装置 |
CN110809013B (zh) * | 2018-08-06 | 2022-06-28 | 北京神州泰岳软件股份有限公司 | 一种监控数据采集方法、装置、电子设备及存储介质 |
CN111158747B (zh) * | 2019-12-05 | 2022-11-22 | 苏宁云计算有限公司 | App提示消息动态配置方法、***、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存***和数据查询方法 |
CN102148871A (zh) * | 2011-03-18 | 2011-08-10 | 浪潮(北京)电子信息产业有限公司 | 存储资源调度方法和装置 |
CN102662993A (zh) * | 2012-03-14 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种页面数据提供方法 |
CN102917036A (zh) * | 2012-10-08 | 2013-02-06 | 浪潮齐鲁软件产业有限公司 | 一种基于Memcached的分布式缓存数据同步实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914405B2 (en) * | 2010-10-08 | 2014-12-16 | Salesforce.Com, Inc. | Methods and systems for latency-free database queries |
-
2013
- 2013-06-17 CN CN201310239970.2A patent/CN103475690B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存***和数据查询方法 |
CN102148871A (zh) * | 2011-03-18 | 2011-08-10 | 浪潮(北京)电子信息产业有限公司 | 存储资源调度方法和装置 |
CN102662993A (zh) * | 2012-03-14 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种页面数据提供方法 |
CN102917036A (zh) * | 2012-10-08 | 2013-02-06 | 浪潮齐鲁软件产业有限公司 | 一种基于Memcached的分布式缓存数据同步实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103475690A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103475690B (zh) | Memcached节点配置方法及装置 | |
CN110908879B (zh) | 埋点数据的上报方法、装置、终端和存储介质 | |
US11099937B2 (en) | Implementing clone snapshots in a distributed storage system | |
US20190213085A1 (en) | Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System | |
CN101799751B (zh) | 一种构建主机监控代理软件的方法 | |
CN103428241B (zh) | 服务部署方法及*** | |
US20120047239A1 (en) | System and Method for Installation and Management of Cloud-Independent Multi-Tenant Applications | |
CN111142971B (zh) | 一种适应传统应用云化的云平台应用就绪检查方法 | |
CN104679500B (zh) | 实体类自动生成实现方法及装置 | |
CN106484544B (zh) | 一种对物联网设备进行虚拟化的方法和装置 | |
CN111930706B (zh) | 基于远程调用的分布式网络文件存储***和方法 | |
CN101246424A (zh) | 一种基于文件的菜单自动生成***和方法 | |
WO2021008425A1 (zh) | 一种***启动方法以及相关设备 | |
WO2022063032A1 (zh) | 一种面向分布式***的故障信息关联上报方法及相关设备 | |
CN114629883B (zh) | 服务请求的处理方法、装置、电子设备及存储介质 | |
Weng et al. | Kmon: An in-kernel transparent monitoring system for microservice systems with ebpf | |
CN114185734B (zh) | 一种监控集群的方法、装置及电子设备 | |
CN112181950B (zh) | 一种分布式对象数据库的构建方法 | |
JP6418419B2 (ja) | ハードディスクがアプリケーションコードを実行するための方法および装置 | |
CN115344610A (zh) | 两级缓存数据获取方法及装置 | |
CN102103633A (zh) | 基于使用模式改进信息***性能的方法和*** | |
US20220383219A1 (en) | Access processing method, device, storage medium and program product | |
US7676475B2 (en) | System and method for efficient meta-data driven instrumentation | |
US9384466B2 (en) | Systems and methods for extending any service to existing systems by using an adaptive common interface | |
CN113377816B (zh) | 一种分布式数据存取*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160206 Address after: 200335 Shanghai city Changning District Admiralty Road No. 968 Building No. 16 10 floor Applicant after: Shanghai Ctrip Business Co.,Ltd. Address before: 200335 Shanghai Changning District Fuquan Road No. 99 Applicant before: CTRIP COMPUTER TECHNOLOGY (SHANGHAI) Co.,Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160608 |
|
CF01 | Termination of patent right due to non-payment of annual fee |