2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
सूक्ष्मसेवाः कवास्तुशैली(एकात्मकवास्तुकला, ऊर्ध्वाधरवास्तुकला, वितरितवास्तुकला, SOA वास्तुकला च भिन्नाः), अनुप्रयोगाः लघुतरेषु, प्रक्रिया-सञ्चालितसेवासु विभक्ताः सन्ति ।
वसन्तमेघः कसूक्ष्मसेवारूपरेखा , यत् वितरितप्रणालीसमाधानस्य श्रेणीं प्रदाति । सूक्ष्मसेवानां विकासः परिनियोजनं च, सेवापञ्जीकरणं आविष्कारश्च, सेवाशासनं, घटकीकरणद्वारा सेवासञ्चालनं अनुरक्षणं च इत्यादीनां क्षमतां प्रदाति
1)वसन्त मेघः नेटफ्लिक्स् : .
यूरेका : पञ्जीकरण केन्द्र
रिबन् : भारसंतुलनम्
नाटकम् : दूरस्थः आह्वानः
Hystrix: सेवा सर्किट ब्रेकर
ज़ुउल/द्वार:द्वार
2)Spring Cloud Config: केन्द्रीकृतविन्यासप्रबन्धनसाधनं, अनुप्रयोगविन्यासस्य बाह्यभण्डारणं, Spring अथवा गैर-Spring अनुप्रयोगानाम् कृते उपयोक्तुं शक्यते ।
3)Spring Cloud Bus: event and message bus, यस्य उपयोगः क्लस्टरमध्ये राज्यपरिवर्तनस्य अथवा विन्यासपरिवर्तनस्य घटनायाः प्रसारणाय भवति ।
4)Spring Cloud Consul: सेवा-आविष्कारः विन्यास-उपकरणं च, Docker-पात्रैः सह निर्विघ्नतया एकीकृतम् ।
5)Spring Cloud Security: एकं सुरक्षासाधनपुस्तिका यत् अनुप्रयोगसुरक्षायाः प्रमाणीकरणस्य च समर्थनं प्रदाति ।
6)स्प्रिंग क्लाउड् स्लूथ्: वितरितं कॉल चेन ट्रेसिंग्, जिप्किन्, एच्ट्रेस् तथा ईएलके ट्रेसिंग् इत्यनेन सह संगतम् ।
7)वसन्तमेघसमूहः : नेतानिर्वाचनं, चिडियाघरपालकस्य, रेडिसस्य, वाणिज्यदूतस्य च अमूर्तीकरणद्वारा कार्यान्वितम् ।
8)Spring Cloud Data Flow: Microservice orchestration, drag-and-drop interface अथवा REST API इत्यस्य माध्यमेन उपयोगाय सुलभम्।
9)Spring Cloud Stream: बाह्यप्रणालीभिः सह सम्बद्धानां अनुप्रयोगानाम् शीघ्रं निर्माणार्थं हल्कं घटना-सञ्चालितं सूक्ष्मसेवारूपरेखा ।
10)Spring Cloud Task: शीघ्रं अनुप्रयोगानाम् निर्माणार्थं अल्पकालिकः सूक्ष्मसेवारूपरेखा यः बैच-आँकडा-संसाधन-कार्यं सम्पन्नं करोति ।
springcloud tutorial--4 gateway zuul_zuul usage tutorial-CSDN blog इत्यस्य उपयोगस्य विस्तृतव्याख्या
अस्तिवितरितप्रणालीषु , यदि सेवानोड् विफलः भवति अथवा संजाले असामान्यता भवति तर्हि आह्वानकर्त्ता अवरुद्धः भवति तथा प्रतीक्षते यदि समयसमाप्तिः दीर्घकालं यावत् सेट् भवति तर्हि आह्वानकर्तुः संसाधनाः क्षीणाः भवितुम् अर्हन्ति ।एतेन क्रमेण आह्वानकर्तुः अपस्ट्रीम प्रणाल्यां संसाधनक्षयः भवति, अन्ततः परिणामः भवतिप्रणाली हिमस्खलन . सर्किट् ब्रेकरः सेवायाः हिमस्खलनं प्रभावीरूपेण निवारयितुं शक्नुवन्ति ।
यदि भवन्तः आकस्मिकं यातायातस्य वृद्धिं प्राप्नुवन्ति तर्हि सामान्यः उपायः अस्ति यत्...गैर-कोर व्यावसायिक कार्यमूलव्यापारकार्यस्य सामान्यसेवायाः रक्षणार्थं सेवाक्षयपरिपाटाः स्वीक्रियन्ते, यदा तु मूलकार्यात्मकसेवानां कृते वर्तमानसीमितपरिपाटाः स्वीकर्तुं आवश्यकाः सन्ति
सेवा सर्किट ब्रेकर : १.सामान्यतया सर्वरपक्षे भवति (उद्देश्यः आह्वानकर्तुः शीघ्रं विफलतां प्राप्तुं शक्नोति यदा सेवायाः समयः समाप्तः अथवा असामान्यः भवति तदा वास्तविकजीवने फ्यूजस्य सदृशं फ्यूजं जनयति (कदाचित् क्लायन्ट् इत्यत्र अपि विन्यस्तं कर्तुं शक्यते यत् यदा कस्यापि सेवायाः आह्वानं कुर्वन् अपवादः लभ्यते तदा शीघ्रं विफलं भवति);
सेवाक्षयः: सामान्यतया क्लायन्ट् पक्षे भवति समग्रजालस्थल-अनुरोध-भारं विचार्य, यदा सेवा विच्छिन्ना वा निरुद्धा वा भवति, तदा सेवा पुनः आह्वानं न भविष्यति (कदाचित् सर्वर-पक्षे अपि विन्यस्तुं शक्यते, यदा प्रणाल्याः अस्ति आकस्मिक यातायात, इदं भविष्यति कोर कार्याणि कोर कार्याणां रक्षणार्थं अवनताः भवन्ति);
वर्तमानसीमाकरणम्: प्रायः सर्वरपक्षे भवति;
@EnableCircuitBreaker: अनुप्रयोगे सक्षमम्फ्यूजः
@HistrixCommand (fallbackMethod="xxxFallback",आदेशगुण = {
}): फ्यूजिंग् एनोटेशनं डाउनग्रेडिंग् एनोटेशनं योजितं भवति commandProperties = {} इत्यस्मिन् फ्यूजिंग् कण्डिशन् पूरयन्तु ।HystrixPropertiesManager类अनुशीलय।
- @HystrixCommand(fallbackMethod = "xxxFallback",commandProperties = {
- //20秒内出现3个请求,失败率为30%,就会触发熔断,30秒内不再发送调用
- // 条件一: 请求数量达到3个
- @HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_REQUEST_VOLUME_THRESHOLD, value = "3"),
- // 条件二: 每20秒一个判断单位
- @HystrixProperty(name = HystrixPropertiesManager.EXECUTION_ISOLATION_THREAD_INTERRUPT_ON_TIMEOUT,value = "20000"),
- // 条件三: 失败率30%
- @HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_ERROR_THRESHOLD_PERCENTAGE, value = "30"),
- // 结果: 熔断后, 30秒内不再请求远程服务
- @HystrixProperty(name = HystrixPropertiesManager.CIRCUIT_BREAKER_SLEEP_WINDOW_IN_MILLISECONDS, value = "30000")
- })
FallbackFactory इत्यस्य कार्यान्वयनार्थं नूतनं xxxFallbackFactory वर्गं रचयन्तु तथा च create मेथड् ओवरराइड् कुर्वन्तु downgrade मेथड् create इत्यत्र परिभाषितम् अस्ति ।
@FeignCliend(fallbackFactory=xxxFallbackFactory.class): हिस्ट्रिक्सः Feign मध्ये एकीकृतः अस्ति
अथवा विधियां प्रत्यक्षतया fallback विधिं निर्दिशन्तु: @HistrixCommand(fallbackMethod="xxxFallback")
1、वर्तमान सीमितकरणरणनीतिः : १.
१), सेमाफोर वर्तमान सीमा
समवर्तीसूत्राणां संख्यां नियन्त्रयितुं सेमाफोर् इत्यस्य उपयोगः भवति । कन्स्ट्रक्टर् मार्गेण आन्तरिकवर्चुअल् अनुज्ञापत्राणां संख्यां निर्दिशन्तु ।
यदि सेमाफोर-पृथक्करणप्रौद्योगिक्याः उपयोगः भवति तर्हि प्रत्येकं अनुरोधः प्राप्तः भवति तर्हि सेवायाः स्वकीयः सूत्रः प्रत्यक्षतया आश्रितसेवाम् आह्वयति सेमाफोरः चेकपॉइण्ट् इत्यस्य समकक्षः भवति ततः परं सेमाफोरस्य संख्या 1. यदा तत् is 0, it is no longer सूत्रं पारयितुं अनुमतिः अस्ति, परन्तु fallback तर्कः प्रत्यक्षतया निष्पादितः भवति, प्रत्यागच्छति च ।
सेमाफोरः इति अवगन्तुं शक्यते कगणित्र, गणकः वर्तमानकाले संसाधितानां अनुरोधानाम् संख्यां गणयति यदा काउण्टरमूल्यं सेट् मूल्यं प्राप्नोति तदा अनन्तरं अनुरोधाः स्वीकृताः न भविष्यन्ति (अथवा अवनतिः) तथा च अनन्तरं अनुरोधाः कर्तुं शक्नुवन्ति तावत् यावत् काउण्टरमूल्यं सेट् मूल्यात् न्यूनं न भवति तावत् प्रतीक्षितुम् आवश्यकम् संसाधितः भवतु।
- @HystrixCommand(
- commandProperties= {
- @HystrixProperty(name="execution.isolation.strategy", value="SEMAPHORE"),
- @HystrixProperty(name="execution.isolation.semaphore.maxConcurrentRequests", value="20")
- },
- fallbackMethod = "errMethod"
- )
२), धागा पूल वर्तमान सीमा
- @HystrixCommand(
- commandProperties = {
- @HystrixProperty(name = "execution.isolation.strategy", value = "THREAD")
- },
- threadPoolKey = "createOrderThreadPool",
- threadPoolProperties = {
- @HystrixProperty(name = "coreSize", value = "20"),
- @HystrixProperty(name = "maxQueueSize", value = "100"),
- @HystrixProperty(name = "maximumSize", value = "30"),
- @HystrixProperty(name = "queueSizeRejectionThreshold", value = "120")
- },
- fallbackMethod = "errMethod"
- )
अत्र टिप्पणी: injava
सूत्रकुण्डे यदि सूत्राणां संख्या अधिका भवतिcoreSize
, थ्रेड्-निर्माण-अनुरोधाः प्रथमं कतारं प्रविशन्ति यदि पङ्क्तिः पूर्णा अस्ति तर्हि यावत् थ्रेड्-सङ्ख्या न प्राप्नोति तावत् थ्रेड्-निर्माणं निरन्तरं भविष्यतिmaximumSize
, ततः प्रत्याख्यानरणनीतिं स्वीकुर्वन्तु।परन्तु hystrix द्वारा विन्यस्तस्य thread pool मध्ये अतिरिक्तः पैरामीटर् अस्तिqueueSizeRejectionThreshold
,यदिqueueSizeRejectionThreshold < maxQueueSize
, पङ्क्तिसङ्ख्या प्राप्नोतिqueueSizeRejectionThreshold
अस्वीकाररणनीतिं स्वीकुर्यात्, अतःmaximumSize
असफल।यदिqueueSizeRejectionThreshold > maxQueueSize
, पङ्क्तिसङ्ख्या प्राप्नोतिmaxQueueSize
घटकः,maximumSize
वैधः अस्ति, यावत् संख्या न प्राप्नोति तावत् प्रणाली सूत्राणि निर्मास्यतिmaximumSize
。
2. सेमाफोर करंट लीमिटिंग् तथा थ्रेड् पूल करंट लिमिटिंग् इत्येतयोः मध्ये अन्तरम् : १.
१) प्रदर्शनस्तरः : सेमाफोर् मूलसूत्रस्य उपयोगं करोति तथा च कार्यक्षमतायाः उपभोगः न्यूनः भवति;
२) प्रणालीस्थिरतास्तरः : थ्रेड् पूल्स् पृथक् भवन्ति, तथा च समस्याः स्वयमेव अन्येषां थ्रेड् पूल्स् इत्यस्य प्रभावं न करिष्यन्ति;
३) समकालिकः अतुल्यकालिकः च : यतः सेमाफोरः मूलसूत्रः प्रयुक्तः अस्ति, तस्मात् सः समकालिकः अवरोधकः च भवति ।
3. वर्तमान सीमितरणनीतिप्रयोगपरिदृश्याः : १.
यदा अनुरोधस्य मात्रा अतीव गहनं भवति तथा च थ्रेड्-पृथक्करणस्य उपरिभारः तुल्यकालिकरूपेण अधिकः भवति तदा भारं न्यूनीकर्तुं सेमाफोर्-इत्यस्य उपयोगः अनुशंसितः भवति, एषा स्थितिः प्रायः अ-जाल-अनुरोधानाम् (बाह्य-सेवानां आह्वानं विना) निवारणाय उपयुज्यते अन्येषु परिदृश्येषु थ्रेड् पूल् मेथड् इत्यस्य उपयोगः अनुशंसितः अस्ति ।
वर्तमानसीमाकरणं केवलं वर्तमानसीमाकरणं यावत् यातायातसीमा न अतिक्रान्ता तावत् सेवा अद्यापि उपलब्धा अस्ति (सर्किटब्रेकरात् भिन्ना) तथा च अवनतिः न करणीयः (अपवादं अतिक्रम्य यातायातसीमा अपि आह्वानकर्तुः नियन्त्रयितुं क्षिप्तुं शक्यते स्वयमेव)। अतः केवलं सर्किट् ब्रेकरस्य डाउनग्रेडस्य च भेदस्य विषये वदामः :
सर्किट् ब्रेकर इत्यस्य अर्थः अस्ति यत् समग्ररूपेण सेवा अनुपलब्धा अस्ति (आत्मसंरक्षणं प्रति केन्द्रितं), अवनयनस्य अर्थः अग्रिमः उत्तमः विकल्पः ग्रहणं (तलरेखायाः रक्षणं केन्द्रीकृत्य), वर्तमानसीमाकरणं च यातायातस्य परिमाणं निर्दिशति यत् अतिक्रमितुं न शक्यते
पूर्वनिर्धारितरूपेण यदि hystrix 10 सेकेण्ड् अन्तः अनुरोधविफलतायाः दरः 50% अधिकः इति ज्ञायते तर्हि सः सर्किट् ब्रेकर तन्त्रं प्रवर्तयिष्यति । तदनन्तरं सूक्ष्मसेवायाः अनुरोधः प्रत्येकं ५ सेकेण्ड् मध्ये पुनः प्रयतितः भवति यदि सूक्ष्मसेवा प्रतिक्रियां दातुं न शक्नोति तर्हि सर्किट् ब्रेकर तन्त्रं निरन्तरं भवति । यदि सूक्ष्मसेवा प्राप्यते तर्हि सर्किट् ब्रेकर तन्त्रं निष्क्रियं भवति तथा सामान्यानुरोधाः पुनः स्थापिताः भवन्ति ।
पूर्वनिर्धारितरूपेण, hystrix निम्नलिखित 4 शर्तानाम् अन्तर्गतं अवनयनतन्त्रं प्रवर्तयिष्यति:
अवनति-तन्त्रं सर्किट्-ब्रेकर-काले आह्वयितुं शक्यते, परन्तु सर्किट्-ब्रेकर-तन्त्रं प्रायः अवनयन-काले न आह्वयते ।यतः सर्किट् ब्रेकरः समग्रदृष्टिकोणात् आरभ्य प्रणालीस्थिरतां सुनिश्चित्य सेवां निष्क्रियं करोति, यदा तु अवनयनं अग्रिमः सर्वोत्तमः विषयः अस्ति तथा च गारण्टीकृतं समाधानं प्रदाति, अतः तेषां स्वामित्वसम्बन्धाः भिन्नाः सन्ति (सर्किटब्रेकर > अवनयनम्)
लिङ्क् सामग्रीसारांशः : १.
@FeignClient (नाम = "eureka-HA", fallbackFactory = विभागग्राहकसेवाFallbackFactory.वर्ग)
refer to : १.
refer to : १.
सेवापञ्जीकरणं : यदा सेवाप्रदाता आरभते तदा सः Eureka सर्वरं प्रति पञ्जीकरणानुरोधं प्रेषयिष्यति, यत्र सेवायाः IP-सङ्केतः, पोर्ट्-सङ्ख्या, सेवानाम अन्यसूचनाः च सन्ति पञ्जीकरणानुरोधं प्राप्त्वा यूरेका सर्वरः सेवासूचनाः स्मृतौ रक्षति तथा च बाह्यसेवापञ्जीकरणसूचनाप्रश्नकार्यं प्रदास्यति।
सेवा-आविष्कारः : यदा सेवाग्राहकस्य अन्यसेवानां आह्वानस्य आवश्यकता भवति तदा सः आवश्यकसेवानां उदाहरणानां सूचीं प्राप्तुं Eureka सर्वरं प्रति सेवा-आविष्कार-अनुरोधं प्रेषयिष्यति अनुरोधं प्राप्त्वा यूरेका सर्वरः तत्सम्बद्धसेवायाः उदाहरणानां सूचीं प्रत्यागमिष्यति, यत्र सेवायाः IP-सङ्केतः, पोर्ट्-सङ्ख्या, अन्यसूचनाः च सन्ति सेवाग्राहकः प्रत्यागतदृष्टान्तसूचिकायाः आधारेण आह्वानार्थं (भारसन्तुलनं) सेवादृष्टान्तेषु एकं चयनं करोति ।
हृदयस्पन्दनस्वास्थ्यपरीक्षा : सेवाप्रदाता नियमितरूपेण हृदयस्पन्दनपैकेट् यूरेका सर्वरं प्रति प्रेषयिष्यति यत् तस्य सेवा सामान्यसञ्चालने अस्ति इति सिद्धं करिष्यति। यदि Eureka सर्वरः सेवादृष्टान्तात् हृदयस्पन्दनपैकेट् समयान्तरे न प्राप्नोति तर्हि सेवादृष्टान्तं अधः इति मन्यते, सेवासूचिकातः निष्कासयति च
Seata TCC mode practice (भाग 2)-अलीबाबा क्लाउड डेवलपर समुदायSeata TCC mode वास्तविक युद्ध (भाग 2) 1.1.https://developer.aliyun.com/article/1053737?spm=5176.26934562.मुख्य.1.799c6a03T45SJ9उपर्युक्तं ब्लॉग्-पोस्ट् निलम्बन-समस्यायाः समाधानं न करोति, यस्याः न्यायः भिन्न-भिन्न-स्थिति-सूचकैः कर्तुं शक्यते ।
TM: लेनदेनप्रबन्धकः, @GlobalTransaction एनोटेशनेन सह उत्पन्नः ।
टीसीः समन्वयकः
आर एम:प्रतिभागी
समग्रप्रक्रिया अस्ति : १.
TM भवतः वैश्विकव्यवहारस्य प्रॉक्सी करोति तथा च निष्पादनं आरभ्यतुं पूर्वं TC इत्यनेन सह पञ्जीकरणं करोति
TM वैश्विकव्यवहारे प्रत्येकं शाखाव्यवहारं निष्पादयितुं आरभते, तथा च RM शाखाव्यवहारं निष्पादनस्थितिं च TC इत्यस्मै पञ्जीकरणं करोति, प्रतिवेदनं च करोति
शाखाव्यवहारस्य निष्पादनस्य समाप्तेः अनन्तरं TM वैश्विकव्यवहारस्य प्रतिबद्धतां कर्तुं वा रोलबैक् कर्तुं वा TC इत्यस्मै अनुरोधं आरभते ।
आरक्षणस्य अर्थः अस्ति यत् दत्तांशकोशसंसाधनं ताडयित्वा मध्यवर्ती अवस्थायां अद्यतनीकरणं करणीयम्, ततः पुष्टिकरणानन्तरं द्वितीयचरणस्य प्रतिबद्धतायाः कृते प्रभावी अवस्थायां परिवर्तनं करणीयम्अतः आरक्षणचरणं प्रतिबद्धं च रोलबैकचरणम्सर्वेषु दत्तांशकोशानां संचालनं भवति, अतः पुष्टिः, रोलबैक-विफलताः अपि भवितुम् अर्हन्ति येषां कृते मैनुअल्-प्रक्रियाकरणस्य आवश्यकता भवति, येषां समाधानं लॉग्स्-रिकार्ड्-करणेन, पुनः-प्रयासानां क्षतिपूर्ति-करणेन इत्यादिभिः कर्तुं शक्यते ।
TCC मोडस्य लाभाः:
TCC मोडस्य दोषाः:
Confirm
तथाCancel
इदमपि असफलं भवितुम् अर्हति तथा च भवद्भिः एतस्याः प्रक्रियायाः निवारणं कर्तव्यम्दृढं स्थिरता, प्रत्येकस्य प्रतिभागिनः स्थानीयव्यवहाराः कदा प्रतिबद्धाः भवन्ति, पुनः रोल भवन्ति च इति समन्वयं कृत्वा।
XA मोडस्य लाभाः:
XA मोडस्य दोषाः:
दुर्बलं स्थिरता