The invention discloses a method and a system for managing distributed services. The implementation of configuration information acquisition and container service in the container when starting the binding template, and based on the configuration information service configuration information template generation container service; container engine via the service discovery agent registration server configuration information sent to the service container service; service registration server receives the configuration information of container service based on the registration of all service deployment in the same container in the host container via service discovery engine; the registration server sends the service request to the heartbeat service agent; service registration server based on the received service request to detect heartbeat, all services are deployed in the same container in the host. The implementation of the deployment of all services in the same container in the container with the engine through the host registration, cancellation request and service heartbeat request, reduces the communication overhead of the registration server, lighten the load of the registration server.
【技術實現步驟摘要】
本專利技術涉及分布式系統領域,特別涉及一種分布式服務的管理方法和系統。
技術介紹
服務發現是面向服務的分布式系統中實現服務透明調用的關鍵技術,用基于服務名字的通信方式代替傳統基于IP/主機名的通信方式,服務提供者用服務名向注冊服務器注冊服務配置,服務使用者用服務名向注冊服務器查詢服務配置,綁定服務的實際IP和端口。典型的服務發現機制如圖1所示,包括服務提供者、服務使用者和服務注冊服務器,服務提供者和服務使用者均內置了服務發現SDK,服務發現SDK負責與注冊服務器進行通信,向服務提供者和服務使用者提供透明的服務發現API。服務提供者啟動后通過服務發現SDK向注冊服務器注冊服務配置信息,注冊服務器記錄服務名與服務配置信息的對應關系。服務使用者需要使用服務時通過服務發現SDK向用服務名向注冊服務器查詢服務配置、綁定服務配置,并向服務提供者發起服務調用。在現有服務發現技術中,服務使用者的每次服務查詢請求和服務提供者的每次服務注冊、服務心跳、注銷請求都要與注冊服務器進行一次通信,而大型的分布式應用往往由數以萬計的服務使用者和服務提供者實例構成,大量并發的服務查詢、注冊和注銷通信會造成大量的網絡開銷,也對注冊服務器的負載帶來巨大壓力。
技術實現思路
本專利技術實施例所要解決的一個技術問題是:分布式服務的注冊服務器負載過大的問題。根據本專利技術實施例的一個方面,提供的一種分布式服務的管理方法,包括:在啟動容器時獲取與容器綁定的服務的配置信息模板,并基于所述服務的配置信息模板生成容器服務的配置信息;容器引擎經由服務發現代理向服務注冊服務器發送容器服務的配置信 ...
【技術保護點】
一種分布式服務的管理方法,其特征在于,包括:在啟動容器時獲取與容器綁定的服務的服務配置信息模板,并基于所述服務配置信息模板生成容器服務的配置信息;所述容器引擎經由服務發現代理向服務注冊服務器發送所述容器服務的配置信息;所述服務注冊服務器基于接收到所述容器服務的配置信息,對所述部署在同一容器主機中的全部服務進行注冊;所述容器引擎經由服務發現代理向服務注冊服務器發送服務心跳請求,其中所述服務心跳請求包括所述容器服務的配置信息;所述服務注冊服務器基于所接收到的所述服務心跳請求,對所述部署在同一容器主機中的全部服務進行檢測。
【技術特征摘要】
1.一種分布式服務的管理方法,其特征在于,包括:在啟動容器時獲取與容器綁定的服務的服務配置信息模板,并基于所述服務配置信息模板生成容器服務的配置信息;所述容器引擎經由服務發現代理向服務注冊服務器發送所述容器服務的配置信息;所述服務注冊服務器基于接收到所述容器服務的配置信息,對所述部署在同一容器主機中的全部服務進行注冊;所述容器引擎經由服務發現代理向服務注冊服務器發送服務心跳請求,其中所述服務心跳請求包括所述容器服務的配置信息;所述服務注冊服務器基于所接收到的所述服務心跳請求,對所述部署在同一容器主機中的全部服務進行檢測。2.根據權利要求1所述的管理方法,其特征在于,所述服務注冊服務器基于所接收到的所述服務心跳請求,對所述部署在同一容器主機中的全部服務進行心跳檢測,具體包括:若所述服務注冊服務器接收到所述服務心跳請求,則獲取部署在同一容器主機中的全部服務的配置信息,并向所述容器引擎返回服務心跳響應;若容器引擎未接收到服務心跳,則所述容器引擎刪除所述服務配置信息。3.根據權利要求1所述的管理方法,其特征在于,所述容器引擎經由服務發現代理向服務注冊服務器發送所述容器服務的配置信息,具體包括:所述容器引擎向服務發現代理發送容器服務的配置信息;所述服務發現代理接收所述容器服務的配置信息,獲取部署在同一容器主機中的全部服務的配置信息,并將所述全部服務的配置信息
\t存儲在服務發現代理的本地緩存中。4.根據權利要求1所述的方法,其特征在于,所述服務的配置信息包括:服務名、服務實例號、服務過期時間(TimetoLive,TTL)、通信協議、服務接口、服務IP地址和服務端口。5.根據權利要求4所述的管理方法,其特征在于,所述的管理方法還包括:當容器引擎查詢服務時,服務發現代理查詢存儲在本地緩存中的部署在同一容器主機中的全部服務的配置信息;若通過服務發現代理查詢到服務的配置信息時,判斷查詢到的服務的配置信息的當前時間是否超過服務的配置失效時間;若當前時間沒有超過服務的配置失效時間時,服務發現代理向容器管理者返回查詢到的服務的配置信息;若當前時間超過服務的配置失效時間時,服務發現代理刪除本地緩存中的超過服務的配置失效時間的服務的配置信息,并向服務注冊服務器發送服務查詢請求,以便服務注冊服務器為容器引擎分配服務的配置信息;其中,所述服務的配置失效時間=服務的配置消息的設置時間+TTL。6.根據權利要求5所述的管理方法,其特征在于,若未查詢到服務的配置信息時,服務發現代理向服務注冊服務器發送服務查詢請求;服務注冊服務器接收所述服務查詢請求,并通過服務發現代理向容器引擎發送服務的配置信息。7.根據權利要求6所述的管理方法,其特征在于,通過服務發現代理向管理服務器發送服務的配置信息,具體包括:服務注冊服務器向服務發現代理發送服務的配置信息;服務發現代理接收服務注冊服務器發送的服務的配置信息,并將所述服務的配置信息存儲到服務發現代理的本地緩存;服務發現代理將所述服務的配置信息發送給容器引擎。8.根據權利要求4所述的管理方法,其特征在于,所述的管理方法還包括:容器引擎通過服務發現代理的查詢接口,根據服務的調度策略,查詢存儲在本地緩存中的部署在同一容器主機中的全部服務的配置信息;或者容器引擎通過服務發現代理的查詢接口,根據服務的配置信息中的服務名和服務實例號,查詢存儲在本地緩存中的部署在同一容器主機中的全部服務的配置信息;或者容器引擎通過服務發現代理的查詢接口,根據服務配置的服務名和服務IP地址,查詢存儲在本地緩存中的部署在同一容器主機中的全部服務的配置信息。9.根據權利要求1所述的管理方法,其特征在于,所述的管理方法還包括:在容器引擎通過服務發現代理向服務注冊服務器發送服務心跳請求或容器服務配置請求前,對所述服務心跳請求或容器服務配置請求進行壓縮。10.根據權利要求4所述的管理方法,其特征在于,所述的方法還包括:容器引擎在接收到服務的配置信息后,根據服務配置信息中的通信協議、服務IP地址、服務端口和服務接口信息向容器發送服務調用請求;容器引擎接收所述服務調用請求,向容器引擎返回服務調用響應,以便容器管理者完成服務調用。11.根據權利要求1所述的管理方法,其特征在于,所述的方法還包括:當容器停止服務或暫停服務時,容器引擎根據同一容器主機中的全部服務的服務名生成容器服務的配置信息;所述容器引擎經由服務發現代理向服務注冊服務器發送所述容器服務的配置信息;所述服務注冊服務器基于接收到所述容器服務的配置信息,對所述部署在同一容器主機中的全部服務進行注銷。12.根據權利要求1所述的管理方法,其特征在于,容器引擎獲取部署在同一容器主機中的全部服務的配置信息,具體包括:容器引...
【專利技術屬性】
技術研發人員:何震葦,楊新章,陸鋼,李慧云,張凌,嚴麗云,李蓉蓉,周榮生,文錦軍,
申請(專利權)人:中國電信股份有限公司,
類型:發明
國別省市:北京;11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。