CI ఎన్విరాన్మెంట్స్లో స్ప్రింగ్ బూట్ 2.5.3తో ఊహించని సంకలన సమస్యలు
సెప్టెంబర్ 29, 2024 నుండి, స్ప్రింగ్ బూట్ 2.5.3ని ఉపయోగిస్తున్న డెవలపర్లు ఊహించని సంకలన లోపాలను ఎదుర్కొంటున్నట్లు నివేదించారు. ముఖ్యంగా, కోడ్బేస్లో ఎటువంటి మార్పులు లేనప్పటికీ ఈ లోపాలు సంభవిస్తాయి, ఇది నిరంతర ఇంటిగ్రేషన్ (CI) వర్క్ఫ్లోలలో గణనీయమైన అంతరాయం కలిగిస్తుంది. ఈ సమస్య మావెన్ బిల్డ్లలోని డిపెండెన్సీ రిజల్యూషన్తో లింక్ చేయబడినట్లు కనిపిస్తోంది, ముఖ్యంగా స్ప్రింగ్ క్లౌడ్ డిపెండెన్సీలను ఉపయోగించి ప్రాజెక్ట్లను ప్రభావితం చేస్తుంది.
తప్పిపోయిన డిపెండెన్సీలను సూచించే ఎర్రర్లతో మావెన్ బిల్డ్లు విఫలమవుతున్నందున సమస్య వ్యక్తమవుతుంది. ప్రత్యేకంగా, ప్యాకేజీ ఉనికిలో లేదని ధ్వజమెత్తారు. ఇది OpenFeign డిపెండెన్సీకి సంబంధించిన సమస్యను సూచిస్తుంది, దీని వలన "చిహ్నాన్ని కనుగొనడం సాధ్యం కాదు" వంటి లోపాలు మరియు తప్పిపోయిన తరగతులను సూచిస్తాయి .
ఈ పరిస్థితిని ఎదుర్కొంటున్న డెవలపర్ల కోసం, డిపెండెన్సీ ట్రీలను రూపొందించడం లేదా మావెన్ని ఆఫ్లైన్లోకి వెళ్లమని బలవంతం చేయడం వంటి సాంప్రదాయ డీబగ్గింగ్ పద్ధతులు ప్రభావవంతంగా లేవు. ఈ దృశ్యం డిపెండెన్సీ అప్డేట్లు లేదా రిపోజిటరీలలో మార్పులకు సంబంధించిన లోతైన సమస్యను సూచిస్తుంది.
ఈ కథనంలో, మేము ఈ సంకలన లోపాల స్వభావాన్ని, సంభావ్య కారణాలను అన్వేషిస్తాము మరియు మీ మావెన్ బిల్డ్లపై నియంత్రణను తిరిగి పొందడంలో మీకు సహాయపడటానికి కొన్ని ట్రబుల్షూటింగ్ దశలను అందిస్తాము.
ఆదేశం | ఉపయోగం యొక్క ఉదాహరణ |
---|---|
ఈ కమాండ్ ప్రాజెక్ట్లోని అన్ని డిపెండెన్సీల యొక్క వివరణాత్మక ట్రీ వీక్షణను ఉత్పత్తి చేస్తుంది, వెర్బోస్ అవుట్పుట్తో ప్రత్యక్ష మరియు ట్రాన్సిటివ్ డిపెండెన్సీలను చూపుతుంది. ఇది సంకలన సమస్యకు కారణమయ్యే వైరుధ్యాలు లేదా తప్పిపోయిన డిపెండెన్సీలను గుర్తించడంలో సహాయపడుతుంది. | |
ఈ ఆదేశం అవసరమైన అన్ని కళాఖండాలను డౌన్లోడ్ చేయడం ద్వారా ఆఫ్లైన్ బిల్డ్ కోసం ప్రాజెక్ట్ డిపెండెన్సీలను సిద్ధం చేస్తుంది. ఇది మావెన్ క్రియాశీల ఇంటర్నెట్ కనెక్షన్ లేకుండా నిర్మించగలదని నిర్ధారిస్తుంది, ఇది బాహ్య రిపోజిటరీ సమస్యల ద్వారా డిపెండెన్సీ రిజల్యూషన్పై ప్రభావం చూపుతుందో లేదో నిర్ధారించడానికి ఉపయోగపడుతుంది. | |
ప్రాజెక్ట్ను శుభ్రపరచడానికి మరియు తిరిగి ప్యాకేజ్ చేయడానికి ఉపయోగించబడుతుంది, ఈ ఆదేశం అనుకూల స్థానిక రిపోజిటరీ మార్గాన్ని పేర్కొనడానికి అనుమతిస్తుంది. మావెన్ డిపెండెన్సీల కోసం తాజా స్థానాన్ని ఉపయోగించమని బలవంతం చేయడం ద్వారా ఈ విధానం డిఫాల్ట్ రిపోజిటరీతో సంభావ్య సమస్యలను వేరు చేస్తుంది. | |
ఈ Unix/Linux ఆదేశం నిర్దిష్ట OpenFeign ప్యాకేజీ కోసం స్థానిక రిపోజిటరీ కాష్ను తొలగిస్తుంది. ఇలా చేయడం ద్వారా, మావెన్ డిపెండెన్సీని మళ్లీ డౌన్లోడ్ చేయవలసి వస్తుంది, పాడైన లేదా పాత కళాకృతి వల్ల కలిగే సమస్యలను సమర్థవంతంగా పరిష్కరించవచ్చు. | |
ఈ ఉల్లేఖనం స్ప్రింగ్ బూట్ పరీక్షలకు సంబంధించినది. ఇది స్ప్రింగ్ యొక్క టెస్టింగ్ సపోర్ట్తో క్లాస్ నడుస్తుందని సూచిస్తుంది, స్ప్రింగ్ సందర్భాన్ని ప్రారంభించడం మరియు పరీక్ష కేసుల్లోకి ఫీగ్ క్లయింట్ల వంటి బీన్స్ ఇంజెక్షన్ని అనుమతిస్తుంది. | |
అప్లికేషన్ సందర్భం లేదా ఫేన్ క్లయింట్ ఉదాహరణ వంటి బీన్ను ఆటోమేటిక్గా ఇంజెక్ట్ చేయడానికి ఉపయోగించే స్ప్రింగ్ ఉల్లేఖనం. స్ప్రింగ్ బూట్ అప్లికేషన్లో బీన్స్ ఉనికి మరియు కాన్ఫిగరేషన్ను పరీక్షించడానికి ఇది చాలా కీలకం. | |
ఈ జూనిట్ ధృవీకరణ ఫీగ్ క్లయింట్ వంటి నిర్దిష్ట బీన్ స్ప్రింగ్ సందర్భంలో ఉనికిలో ఉందని తనిఖీ చేస్తుంది. డిపెండెన్సీలు తప్పుగా కాన్ఫిగర్ చేయబడిన లేదా తప్పిపోయిన సమస్యల డీబగ్గింగ్ కోసం ఈ ధ్రువీకరణ కీలకం. | |
Feign క్లయింట్ కోసం కాన్ఫిగర్ చేయబడిన URL ఆశించిన విలువతో సరిపోలుతుందో లేదో ఈ నిర్ధారణ తనిఖీ చేస్తుంది. ఇది ప్రాపర్టీలు లేదా ఉల్లేఖనాల నుండి లోడ్ చేయబడిన కాన్ఫిగరేషన్లు రన్టైమ్ వాతావరణంలో సరిగ్గా వర్తింపజేయబడిందని నిర్ధారిస్తుంది. |
మావెన్లో స్ప్రింగ్ బూట్ కంపైలేషన్ సమస్యలను విశ్లేషించడం మరియు పరిష్కరించడం
సెప్టెంబర్ 29, 2024 తర్వాత స్ప్రింగ్ బూట్ అప్లికేషన్లలో కంపైలేషన్ ఎర్రర్లతో Maven బిల్డ్లు విఫలమవడం ప్రారంభించిన క్లిష్టమైన సమస్యను పరిష్కరించడంపై గతంలో అందించిన స్క్రిప్ట్లు దృష్టి సారించాయి. ఈ లోపాలు తప్పిపోయిన వాటి చుట్టూ కేంద్రీకృతమై ఉన్నాయి. ఆధారపడటం, తరగతికి కారణమవుతుంది అందుబాటులో లేకుండా మారడానికి. ప్రాథమిక విధానం నిర్దిష్ట మావెన్ ఆదేశాల ద్వారా ఈ తప్పిపోయిన డిపెండెన్సీలను గుర్తించడం మరియు పరిష్కరించడం. ఉదాహరణకు, `mvn డిపెండెన్సీ:ట్రీ -డ్వెర్బోస్` కమాండ్ డెవలపర్లు మొత్తం డిపెండెన్సీ సోపానక్రమాన్ని వివరంగా చూసేందుకు అనుమతిస్తుంది. ఇది చాలా కీలకమైనది ఎందుకంటే ఇది తప్పిపోయిన లేదా తప్పుగా పరిష్కరించబడిన ట్రాన్సిటివ్ డిపెండెన్సీలను హైలైట్ చేస్తుంది, ఇది గమనించిన లోపానికి దారి తీస్తుంది.
మరో కీ కమాండ్, `mvn డిపెండెన్సీ:గో-ఆఫ్లైన్`, ఆఫ్లైన్ మోడ్లో డిపెండెన్సీ రిజల్యూషన్ ప్రాసెస్ను ప్రారంభిస్తుంది. సమస్యకు బాహ్య రిపోజిటరీ కారణమా కాదా అని నిర్ణయించడానికి ఇది ప్రత్యేకంగా ఉపయోగపడుతుంది. CI పరిసరాలలో, నెట్వర్క్-సంబంధిత సమస్యలు లేదా బాహ్య రిపోజిటరీలలో మార్పులు వంటి డిపెండెన్సీల రిజల్యూషన్లో అసమానతలు ఏర్పడవచ్చు . Mavenని ఆఫ్లైన్ మోడ్లో అమలు చేయడం వలన సమస్య స్థానిక కాష్లోని తప్పిపోయిన లేదా పాడైన కళాఖండాల నుండి ఉత్పన్నమా అని ధృవీకరించడంలో సహాయపడుతుంది.
ఇంకా, పరిష్కారం పేర్కొనడాన్ని కలిగి ఉంటుంది a Maven బిల్డ్ కోసం `mvn క్లీన్ ప్యాకేజీ -Dmaven.repo.local=./custom-m2` కమాండ్ ఉపయోగించి. ఈ విధానం మావెన్ను తాజా, ఖాళీ డైరెక్టరీకి చూపడం ద్వారా డిఫాల్ట్ మావెన్ రిపోజిటరీని సమర్థవంతంగా వేరు చేస్తుంది, అవసరమైన అన్ని డిపెండెన్సీలను మళ్లీ డౌన్లోడ్ చేయమని బలవంతం చేస్తుంది. పాడైన లేదా పాత డిపెండెన్సీ వెర్షన్కు దారితీసే ఏవైనా స్థానిక కాషింగ్ సమస్యలను తోసిపుచ్చడానికి ఇది సహాయపడుతుంది. అదనంగా, స్థానిక రిపోజిటరీ నుండి నిర్దిష్ట ప్యాకేజీలను మాన్యువల్గా క్లియర్ చేయడం, అంటే `org/springframework/Cloud/openfeign`, ఈ కళాఖండాల యొక్క తాజా వెర్షన్ను Maven డౌన్లోడ్ చేస్తుందని నిర్ధారిస్తుంది.
చివరగా, సమస్య యొక్క పరిష్కారాన్ని నిర్ధారించడానికి, నిర్వహించడం అవసరం . ఇంతకు ముందు అందించిన స్క్రిప్ట్ ఫెయిన్ క్లయింట్ల కాన్ఫిగరేషన్ను ధృవీకరించడానికి JUnitని ఉపయోగించి పరీక్ష కేసులను పరిచయం చేస్తుంది. ఈ పరీక్షలు అప్లికేషన్ సందర్భాన్ని లోడ్ చేయడానికి స్ప్రింగ్ బూట్ టెస్ట్ ఫ్రేమ్వర్క్ను ఉపయోగిస్తాయి మరియు ఫీన్ క్లయింట్లు వంటి బీన్స్ ఉనికి మరియు కాన్ఫిగరేషన్పై తనిఖీలను నిర్వహిస్తాయి. బీన్స్ సరిగ్గా ప్రారంభించబడి, ఆశించిన లక్షణాలతో కాన్ఫిగర్ చేయబడిందని ధృవీకరించడంలో `assertNotNull` మరియు `assertEquals` వంటి ప్రకటనలు సహాయపడతాయి. ఈ పరీక్షలను అమలు చేయడం ద్వారా, డెవలపర్లు సమస్య పరిష్కరించబడిందని మరియు ప్రాజెక్ట్లో ఫెయిన్ క్లయింట్ కాన్ఫిగరేషన్లు సరిగ్గా వర్తింపజేయబడిందని ధృవీకరించడానికి ఒక యంత్రాంగాన్ని పొందుతారు.
పరిష్కారం 1: మావెన్ డిపెండెన్సీలను రిఫ్రెష్ చేయడం మరియు రీవాలిడేట్ చేయడం
ఈ పరిష్కారం ఉపయోగించి బ్యాకెండ్ స్క్రిప్ట్ను ఉపయోగిస్తుంది స్థానిక రిపోజిటరీని రిఫ్రెష్ చేయడం మరియు రీవాలిడేట్ చేయడం ద్వారా తప్పిపోయిన డిపెండెన్సీలను పరిష్కరించడానికి.
# Step 1: Generate a fresh dependency tree to inspect possible issues
mvn dependency:tree -Dverbose > dependency-tree.log
# Step 2: Run Maven in offline mode to identify missing or outdated artifacts
mvn dependency:go-offline > dependency-offline.log
# Step 3: Clear your local Maven repository (optional, ensures a clean state)
rm -rf ~/.m2/repository/org/springframework/cloud/openfeign
# Step 4: Rebuild the project with debug information and custom local repository
mvn clean package -Dmaven.repo.local=./custom-m2 -DskipTests -X > build-debug.log
# Step 5: Review the generated logs for errors and fix any missing dependencies
పరిష్కారం 2: డిపెండెన్సీ సమస్యలను పరిష్కరించడానికి అనుకూల మావెన్ రిపోజిటరీని జోడించడం
ఈ పరిష్కారం నిర్దిష్ట మూలం నుండి నేరుగా డిపెండెన్సీలను పొందేందుకు కస్టమ్ రిపోజిటరీ URLతో Mavenని కాన్ఫిగర్ చేస్తుంది. ఈ కాన్ఫిగరేషన్ కోసం Maven సెట్టింగ్ల XMLని ఉపయోగించండి.
# Step 1: Create or update a custom settings.xml file in your Maven configuration directory
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0">
<mirrors>
<mirror>
<id>custom-mirror</id>
<url>https://repo.spring.io/milestone/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
# Step 2: Specify the custom settings file during the Maven build
mvn clean install -s ./settings.xml -DskipTests
# Step 3: Validate if the dependency resolution issue is fixed
పరిష్కారం 3: ఫెయిన్ క్లయింట్ కాన్ఫిగరేషన్ని ధృవీకరించడానికి యూనిట్ పరీక్షలను అమలు చేయడం
ఈ పరిష్కారం ప్రాథమిక యూనిట్ పరీక్షను కలిగి ఉంటుంది Feign క్లయింట్ల ఉనికి మరియు కాన్ఫిగరేషన్ను ధృవీకరించడానికి JUnit మరియు Mockitoని ఉపయోగిస్తుంది.
@RunWith(SpringRunner.class)
@SpringBootTest
public class FeignClientTest {
@Autowired
private ApplicationContext context;
@Test
public void testFeignClientBeanExists() {
Object feignClient = context.getBean("feignClientName");
assertNotNull(feignClient);
}
@Test
public void testFeignClientConfiguration() {
FeignClient client = (FeignClient) context.getBean("feignClientName");
// Add relevant assertions for configurations
assertEquals("https://api.example.com", client.getUrl());
}
}
మావెన్ ప్రాజెక్ట్లలో డిపెండెన్సీ వైరుధ్యాలు మరియు నవీకరణలను పరిష్కరించడం
స్ప్రింగ్ బూట్ అప్లికేషన్లలో మావెన్ బిల్డ్ వైఫల్యాలకు దోహదపడే ఒక ముఖ్య అంశం . ఈ వైరుధ్యాలు తరచుగా అతివ్యాప్తి చెందుతున్న సంస్కరణలు లేదా OpenFeign లేదా Spring Cloud లైబ్రరీల వంటి కోర్ స్ప్రింగ్ బూట్ డిపెండెన్సీలకు అననుకూలమైన నవీకరణల కారణంగా తలెత్తుతాయి. డిపెండెన్సీ వైరుధ్యాలు రన్టైమ్ ఎర్రర్లకు దారి తీయవచ్చు మరియు కొన్ని సందర్భాల్లో, వంటి క్లిష్టమైన ప్యాకేజీలు లేకపోవడం . ఈ వైరుధ్యాలను పరిష్కరించడానికి సాధారణంగా ప్రాజెక్ట్ డిపెండెన్సీ మేనేజ్మెంట్లో లోతైన డైవ్ అవసరం, విరుద్ధమైన లేదా పాత వెర్షన్లు లేవని నిర్ధారిస్తుంది.
నోటీసు లేకుండా నిర్దిష్ట రిపోజిటరీలు లేదా కళాఖండాలు మార్చబడినప్పుడు డెవలపర్లు ఊహించని నిర్మాణ సమస్యలను కూడా ఎదుర్కోవచ్చు. మావెన్ ప్రాజెక్ట్లు తరచుగా బాహ్య రిపోజిటరీలపై ఆధారపడతాయి, ఇవి నిర్దిష్ట సంస్కరణలను మార్చగలవు లేదా తీసివేయగలవు, గతంలో అందుబాటులో ఉన్న డిపెండెన్సీలను తాత్కాలికంగా లేదా శాశ్వతంగా అందుబాటులో లేకుండా చేస్తాయి. ప్రాజెక్ట్లను ఎప్పటికప్పుడు సమీక్షిస్తున్నారు కాన్ఫిగరేషన్ మరియు లాకింగ్ డిపెండెన్సీ వెర్షన్లు అటువంటి ప్రమాదాలను తగ్గించగలవు. అదనంగా, అప్డేట్ చేయబడిన అంతర్గత రిపోజిటరీ లేదా మిర్రర్ను నిర్వహించడం అనేది బాహ్య రిపోజిటరీలలో అంతరాయాలు లేదా ఊహించని మార్పుల సందర్భంలో బ్యాకప్గా ఉపయోగపడుతుంది.
పరిగణించవలసిన మరో ముఖ్యమైన అంశం సమగ్ర ఉపయోగం . మావెన్ బిల్డ్లు విఫలమైనప్పుడు, దోష సందేశాలు ఎల్లప్పుడూ పూర్తి సమాచారాన్ని అందించకపోవచ్చు. `-X` ఫ్లాగ్ ద్వారా డీబగ్ లాగింగ్ను ప్రారంభించడం వలన డెవలపర్లు తెరవెనుక ఏమి జరుగుతుందో వివరణాత్మక అంతర్దృష్టులను సేకరించడానికి అనుమతిస్తుంది. ఈ అభ్యాసం తప్పిపోయిన డిపెండెన్సీలు, తప్పు కాన్ఫిగరేషన్లు లేదా రిపోజిటరీ యాక్సెస్ సమస్యలకు సంబంధించిన సమస్యలను బహిర్గతం చేస్తుంది. క్రమబద్ధమైన లాగింగ్ మరియు డీబగ్గింగ్ పద్ధతులను చేర్చడం సంక్లిష్ట లోపాలను మరింత ప్రభావవంతంగా గుర్తించడంలో మరియు వేరుచేయడంలో సహాయపడుతుంది.
- ఎటువంటి కోడ్ మార్పులు లేకుండానే నా మావెన్ బిల్డ్ ఎందుకు విఫలమవుతోంది?
- ఉండొచ్చు , బాహ్య రిపోజిటరీలలో మార్పులు లేదా నిర్మాణ వైఫల్యానికి కారణమయ్యే ఆర్టిఫ్యాక్ట్ లేదు. నడుస్తున్నట్లు పరిగణించబడుతుంది సమస్యలను గుర్తించడానికి.
- FeignClientకి సంబంధించిన "చిహ్నాన్ని కనుగొనలేము" లోపాన్ని నేను ఎలా పరిష్కరించగలను?
- అని నిర్ధారించుకోండి ఆధారపడటం సరిగ్గా నిర్వచించబడింది మరియు పరిష్కరించబడుతుంది. కాకపోతే, మీ స్థానిక మావెన్ రిపోజిటరీని రిఫ్రెష్ చేయండి లేదా ఉపయోగించండి .
- `-Dmaven.repo.local` పరామితి యొక్క ప్రయోజనం ఏమిటి?
- ది ఎంపిక మావెన్ని కస్టమ్ లోకల్ రిపోజిటరీని ఉపయోగించమని నిర్దేశిస్తుంది, డెవలపర్లు డిఫాల్ట్ రిపోజిటరీతో సంభావ్య సమస్యలను వేరుచేయడానికి మరియు డిపెండెన్సీలను కొత్తగా డౌన్లోడ్ చేయడానికి అనుమతిస్తుంది.
- మావెన్లో తప్పిపోయిన డిపెండెన్సీలను నేను ఎలా నిర్వహించగలను?
- ఉపయోగించి నిర్దిష్ట డిపెండెన్సీ కోసం స్థానిక కాష్ని క్లియర్ చేయండి మరియు మావెన్ని మళ్లీ డౌన్లోడ్ చేయమని బలవంతం చేయడానికి మీ ప్రాజెక్ట్ను పునర్నిర్మించండి.
- మావెన్ బిల్డ్ సమస్యలను డీబగ్ చేసేటప్పుడు ఆఫ్లైన్ మోడ్ ఎందుకు సహాయపడుతుంది?
- ఉపయోగించి ఆఫ్లైన్ మోడ్లో మావెన్ను అమలు చేస్తోంది అవసరమైన డిపెండెన్సీలు స్థానికంగా కాష్ చేయబడిందో లేదో ధృవీకరించడంలో సహాయపడుతుంది మరియు బాహ్య మార్పులు లేదా నెట్వర్క్ సమస్యల నుండి బిల్డ్ను వేరు చేస్తుంది.
ఊహించని సంకలన లోపాలు సంభవించినప్పుడు, డెవలపర్లు డిపెండెన్సీ వైరుధ్యాలను గుర్తించడం, తప్పిపోయిన ప్యాకేజీలు మరియు రిపోజిటరీ సమస్యలను పరిష్కరించడంపై దృష్టి పెట్టాలి. వంటి ఆదేశాలను ఉపయోగించడం మరియు నిర్దిష్ట కళాఖండాలను క్లియర్ చేయడం ముఖ్యమైన అంతర్దృష్టులను అందిస్తుంది.
పటిష్టమైన CI పైప్లైన్లను నిర్వహించడం మరియు క్షుణ్ణంగా పరీక్షా పద్ధతులను ఉపయోగించడం వలన ప్రాజెక్ట్లు బాహ్య డిపెండెన్సీలలో మార్పులకు స్థితిస్థాపకంగా ఉండేలా చూస్తాయి. క్రమబద్ధమైన డీబగ్గింగ్ను సమగ్ర డిపెండెన్సీ మేనేజ్మెంట్తో కలపడం ద్వారా, డెవలపర్లు స్ప్రింగ్ బూట్ అప్లికేషన్లలో బిల్డ్ వైఫల్యాలను ముందుగానే పరిష్కరించగలరు.
- ఈ కథనం అధికారిక మావెన్ వెబ్సైట్లో అందుబాటులో ఉన్న ట్రబుల్షూటింగ్ గైడ్లు మరియు డాక్యుమెంటేషన్ ఆధారంగా రూపొందించబడింది. డిపెండెన్సీ రిజల్యూషన్ ఆదేశాలు మరియు వినియోగంపై మరిన్ని వివరాల కోసం, సందర్శించండి మావెన్ గైడ్ .
- స్ప్రింగ్ బూట్ డిపెండెన్సీ కాన్ఫిగరేషన్లు మరియు ట్రబుల్షూటింగ్ సమాచారం అధికారిక స్ప్రింగ్ బూట్ డాక్యుమెంటేషన్ నుండి సూచించబడ్డాయి, ఇక్కడ అందుబాటులో ఉన్నాయి స్ప్రింగ్ బూట్ రిఫరెన్స్ డాక్యుమెంటేషన్ .
- OpenFeignతో సహా స్ప్రింగ్ క్లౌడ్ డిపెండెన్సీలను నిర్వహించడానికి పరిష్కారాలు మరియు సాంకేతికతలు స్ప్రింగ్ క్లౌడ్ అధికారిక డాక్యుమెంటేషన్ నుండి తీసుకోబడ్డాయి. వద్ద ఈ గైడ్ని యాక్సెస్ చేయండి స్ప్రింగ్ క్లౌడ్ ప్రాజెక్ట్ పేజీ .