క్వార్కస్ మైక్రోప్రొఫైల్ మరియు స్ప్రింగ్‌లను ఎలా మిళితం చేస్తుంది

అందరికీ హలో, క్వార్కస్ సిరీస్‌లో మూడవ పోస్ట్ ఇదిగోండి!

క్వార్కస్ మైక్రోప్రొఫైల్ మరియు స్ప్రింగ్‌లను ఎలా మిళితం చేస్తుంది

జావా మైక్రోసర్వీస్‌లను అభివృద్ధి చేస్తున్నప్పుడు, ఇది తరచుగా నమ్ముతారు ఎక్లిప్స్ మైక్రోప్రొఫైల్ и స్ప్రింగ్ బూట్ ప్రత్యేక మరియు స్వతంత్ర APIలు. డిఫాల్ట్‌గా, ప్రోగ్రామర్లు కొత్త ఫ్రేమ్‌వర్క్‌లు మరియు రన్‌టైమ్ భాగాలను నేర్చుకోవడం చాలా సమయం తీసుకుంటుంది కాబట్టి, వారు ఇప్పటికే ఉపయోగించిన APIలను ఉపయోగిస్తారు. ఈ రోజు మనం కొన్ని జనాదరణ పొందిన అభివృద్ధిని సరళీకృతం చేయడానికి ప్రయత్నిస్తాము స్ప్రింగ్ డెవలపర్‌ల కోసం మైక్రోప్రొఫైల్ API మరియు స్ప్రింగ్ API మరియు కొత్త ఉపయోగకరమైన ఫీచర్‌లను ఏకకాలంలో ఎలా ఉపయోగించాలో మీకు చూపుతుంది క్వార్కస్.

కొంచెం వివరంగా చెప్పాలంటే, స్ప్రింగ్ డెవలపర్‌లు తమ రోజువారీ పనిలో మైక్రోప్రొఫైల్ APIని ఎలా ఉపయోగించాలో చూపించడానికి Quarkus Spring APIలకు ఎలా మద్దతిస్తుందనే దాని స్కోప్ మరియు వివరాలను మేము ముందుగా పరిశీలిస్తాము. మైక్రోసర్వీస్‌లను సృష్టించేటప్పుడు స్ప్రింగ్ డెవలపర్‌లకు ఉపయోగపడే మైక్రోప్రొఫైల్ APIలను మేము కవర్ చేస్తాము.

క్వార్కస్ ఎందుకు? ముందుగా, ఇది ప్రత్యక్ష కోడింగ్, అంటే మైక్రోప్రొఫైల్ API, స్ప్రింగ్ API మరియు ఇతర జావా APIలలో ఏవైనా మార్పులను ఆటోమేటిక్‌గా రీలోడ్ చేయడం, ఇది కేవలం ఒకే ఒక కమాండ్‌తో నిర్వహించబడుతుంది: mvn quarkus:dev. రెండవది, లో చర్చించబడింది మా ఉదాహరణలో వ్యక్తి సేవ (స్ప్రింగ్, మైక్రోప్రొఫైల్ మరియు JPA APIల నుండి స్థానిక GraalVM ఇమేజ్‌ని ఉపయోగించి బైనరీలోకి కంపైల్ చేస్తుంది) కేవలం 0.055 సెకన్లలో ప్రారంభమవుతుంది మరియు RESTful అప్లికేషన్ ఎండ్‌పాయింట్‌లో దాదాపు 90 MB RAM (RSS)ని తీసుకుంటుంది. అంతేకాకుండా, దాని సంకలనం కేవలం ఒక ఆదేశంతో నిర్వహించబడుతుంది: mvn ప్యాకేజీ -Pnative.

Quarkusలో మైక్రోప్రొఫైల్ APIలతో స్ప్రింగ్ APIలను ఎలా ఉపయోగించవచ్చో స్ప్రింగ్ డెవలపర్‌లకు అర్థం చేసుకోవడంలో సహాయపడటానికి కాకుండా మైక్రోప్రొఫైల్ గురించి మేము వివరంగా చెప్పము.

కంటైనర్లు మరియు కుబెర్నెట్స్

ఈ కథనాన్ని సరళంగా ఉంచడానికి, మేము ఇక్కడ మద్దతు యొక్క ఉన్నత-స్థాయి అంశాలను మాత్రమే కవర్ చేస్తాము. Kubernetes, ఎందుకంటే అర్థం చేసుకోవడం ముఖ్యం. Quarkus అనేది Kubernetes కోసం జావా స్టాక్‌గా ఉంచబడింది, ఇది మెమరీ వినియోగం మరియు జావా అప్లికేషన్‌లు మరియు సేవల ప్రారంభ సమయాన్ని తగ్గించడానికి రూపొందించబడింది మరియు ఫలితంగా, హోస్ట్‌లో వాటి సాంద్రతను పెంచుతుంది మరియు మొత్తం ఖర్చులను తగ్గిస్తుంది.

క్వార్కస్ కూడా ఆటో ఉత్పత్తికి మద్దతు ఇస్తుంది Kubernetes వనరులు మరియు ఆఫర్లు మార్గదర్శకులు Kubernetes మరియు Red Hat OpenShift ప్లాట్‌ఫారమ్‌లపై విస్తరణ కోసం. అదనంగా, క్వార్కస్ స్వయంచాలకంగా కంటైనర్‌లను రూపొందించడానికి అవసరమైన Dockerfile.jvm (JVM ప్యాకేజింగ్) మరియు Dockerfile.native (స్థానిక బైనరీ ప్యాకేజింగ్) ఫైల్‌లను ఉత్పత్తి చేస్తుంది.

చివరగా, కుబెర్నెట్‌లను టార్గెట్ డిప్లాయ్‌మెంట్ ఎన్విరాన్‌మెంట్‌గా ఫోకస్ చేయడం ద్వారా, క్వార్కస్ జావా ఫ్రేమ్‌వర్క్‌లను కుబెర్నెటెస్ ప్లాట్‌ఫారమ్ స్థాయిలోనే ఇలాంటి కార్యాచరణ అమలు చేయబడిన సందర్భాల్లో ఉపయోగించదు. టేబుల్ 1 కుబెర్నెట్స్ మరియు స్ప్రింగ్ డెవలపర్‌లు ఉపయోగించే సాధారణ జావా ఫ్రేమ్‌వర్క్‌ల మధ్య ఫంక్షనల్ కరస్పాండెన్స్ యొక్క మ్యాప్‌ను అందిస్తుంది.

పట్టిక 1. జావా ఫ్రేమ్‌వర్క్‌లు మరియు కుబెర్నెట్స్ మధ్య ఫంక్షనల్ కరస్పాండెన్స్ యొక్క మ్యాప్.

ఫంక్షనల్
సాంప్రదాయ స్ప్రింగ్ బూట్
Kubernetes

సేవ ఆవిష్కరణ
యురేకా
DNS

ఆకృతీకరణ
స్ప్రింగ్ క్లౌడ్ కాన్ఫిగర్
మ్యాప్స్/రహస్యాలను కాన్ఫిగర్ చేయండి

లోడ్ బ్యాలెన్సింగ్
రిబ్బన్ (క్లయింట్ వైపు)
సర్వీస్, రెప్లికేషన్ కంట్రోలర్ (సర్వర్ వైపు)

ఉదాహరణ నుండి కోడ్‌ను కంపైల్ చేయడం మరియు అమలు చేయడం

ఈ వ్యాసంలో మేము సూచిస్తాము ఉదాహరణ ప్రాజెక్ట్, ఇక్కడ స్ప్రింగ్ మరియు మైక్రోప్రొఫైల్ APIలు మరియు అదే జావా క్లాస్ కూడా కలిసి ఉపయోగించబడతాయి. ఈ ఉదాహరణలోని కోడ్ కంపైల్ చేయబడుతుంది మరియు కమాండ్ లైన్ నుండి అమలు చేయబడుతుంది, వివరాల కోసం README.md ఫైల్ చూడండి.

స్ప్రింగ్ ఫ్రేమ్‌వర్క్ APIలు

డిపెండెన్సీ ఇంజెక్షన్

క్వార్కస్ పరిధికి మద్దతు ఇస్తుంది సందర్భాలు మరియు డిపెండెన్సీ ఇంజెక్షన్ (CDI) APIలు మరియు స్ప్రింగ్ డిపెండెన్సీ ఇంజెక్షన్ (స్ప్రింగ్ డిఐ) APIలు. మీరు మైక్రోప్రొఫైల్‌తో పని చేస్తుంటే, జావా EE మరియు జకార్తా EE, అప్పుడు మీకు ఇప్పటికే CDIతో బాగా పరిచయం ఉంది. మరోవైపు, స్ప్రింగ్ డెవలపర్‌లు స్ప్రింగ్ DIతో అనుకూలతను సాధించడానికి స్ప్రింగ్ DI API కోసం క్వార్కస్ పొడిగింపును ఉపయోగించవచ్చు. మద్దతు ఉన్న స్ప్రింగ్ DI APIలను ఉపయోగించే ఉదాహరణలు టేబుల్ 2లో ఇవ్వబడ్డాయి.

В మా ఉదాహరణ నుండి ప్రాజెక్ట్ CDI మరియు Spring Dependency Injection రెండింటినీ ఉపయోగిస్తుంది. ఈ అంశంపై మరింత సమాచారం మరియు ఉదాహరణల కోసం, అనే క్వార్కస్ గైడ్‌ని చూడండి స్ప్రింగ్ DI గైడ్.

పట్టిక 2. మద్దతు ఉన్న స్ప్రింగ్ DI APIలను ఉపయోగించడం యొక్క ఉదాహరణలు.

మద్దతు ఉన్న స్ప్రింగ్ DI ఫీచర్లు
ఉదాహరణలు

కన్స్ట్రక్టర్ ఇంజెక్షన్

public PersonSpringController(
   PersonSpringRepository personRepository,  // injected      
   PersonSpringMPService personService) {    // injected
      this.personRepository = personRepository;
      this.personService = personService;
}

ఫీల్డ్ ఇంజెక్షన్
ఆటోవైర్డ్
విలువ

@Autowired
@RestClient
SalutationRestClient salutationRestClient;

@Value("${fallbackSalutation}")
String fallbackSalutation;

బీన్
@ఆకృతీకరణ

@Configuration
public class AppConfiguration {
   @Bean(name = "capitalizeFunction")
   public StringFunction capitalizer() {
      return String::toUpperCase;
   }
}

కాంపోనెంట్

@Component("noopFunction")
public class NoOpSingleStringFunction implements StringFunction {
   @Override
   public String apply(String s) {
      return s;
   }
}

సర్వీస్

@Service
public class MessageProducer {
   @Value("${greeting.message}")
   String message;

   public String getPrefix() {
      return message;
   }
}

వెబ్ ఫ్రేమ్‌వర్క్

ప్రాథమిక వెబ్ ప్రోగ్రామింగ్ మోడల్‌గా క్వార్కస్ JAX-RS, మైక్రోప్రొఫైల్ రెస్ట్ క్లయింట్, JSON-P మరియు JSON-Bలకు మద్దతు ఇస్తుందని మైక్రోప్రొఫైల్ వినియోగదారులు ఇష్టపడతారు. స్ప్రింగ్ వెబ్ API, ప్రత్యేకించి REST ఇంటర్‌ఫేస్‌లకు క్వార్కస్ ఇటీవలి మద్దతుతో స్ప్రింగ్ డెవలపర్‌లు సంతోషిస్తారు. స్ప్రింగ్ DI మాదిరిగానే, స్ప్రింగ్ వెబ్ API మద్దతు యొక్క ప్రధాన లక్ష్యం స్ప్రింగ్ డెవలపర్‌లను మైక్రోప్రొఫైల్ APIలతో కలిపి స్ప్రింగ్ వెబ్ APIలను ఉపయోగించడాన్ని ప్రారంభించడం. మద్దతు ఉన్న స్ప్రింగ్ వెబ్ APIలను ఎలా ఉపయోగించాలో ఉదాహరణలు టేబుల్ 3లో అందించబడ్డాయి మరియు ఈ అంశంపై మరింత సమాచారం మరియు ఉదాహరణలను క్వార్కస్ ట్యుటోరియల్‌లో చూడవచ్చు స్ప్రింగ్ వెబ్ గైడ్.

పట్టిక 3. మద్దతు ఉన్న స్ప్రింగ్ వెబ్ APIలను ఉపయోగించడం యొక్క ఉదాహరణలు.

మద్దతు ఉన్న స్ప్రింగ్ వెబ్ ఫీచర్లు
ఉదాహరణలు

@రెస్ట్‌కంట్రోలర్
@RequestMapping

@RestController
@RequestMapping("/person")
public class PersonSpringController {
   ...
   ...
   ...
}

@GetMapping
@పోస్ట్ మ్యాపింగ్
@పుట్‌మ్యాపింగ్
@Delete మ్యాపింగ్
@PatchMapping
@RequestParam
@RequestHeader
@MatrixVariable
@పాత్ వేరియబుల్
@కుకీ విలువ
@RequestBody
@రెస్పాన్స్ స్టేటస్
@ఎక్సెప్షన్ హ్యాండ్లర్
@RestControllerAdvice (పాక్షికం)

@GetMapping(path = "/greet/{id}",
   produces = "text/plain")
   public String greetPerson(
   @PathVariable(name = "id") long id) {
   ...
   ...
   ...
}

స్ప్రింగ్ డేటా JPA

హైబర్నేట్ ORMని ఉపయోగించి క్వార్కస్ JPAకి మద్దతు ఇస్తుందని మైక్రోప్రొఫైల్ వినియోగదారులు కూడా అభినందిస్తారు. స్ప్రింగ్ డెవలపర్‌లకు శుభవార్త కూడా ఉంది: క్వార్కస్ సాధారణ స్ప్రింగ్ డేటా JPA ఉల్లేఖనాలు మరియు రకాలకు మద్దతు ఇస్తుంది. మద్దతు ఉన్న స్ప్రింగ్ డేటా JPA APIలను ఉపయోగించే ఉదాహరణలు టేబుల్ 4లో ఇవ్వబడ్డాయి.
В మా ఉదాహరణ నుండి ప్రాజెక్ట్ స్ప్రింగ్ డేటా JPA APIలు ఉపయోగించబడతాయి మరియు Quarkus ట్యుటోరియల్‌లో మరింత సమాచారం అందుబాటులో ఉంది స్ప్రింగ్ డేటా JPA గైడ్.

పట్టిక 4. మద్దతు ఉన్న స్ప్రింగ్ డేటా JPA APIలను ఉపయోగించడం యొక్క ఉదాహరణలు.

మద్దతు ఉన్న స్ప్రింగ్ డేటా JPA ఫీచర్లు
ఉదాహరణలు

క్రూడ్ రిపోజిటరీ

public interface PersonRepository
         extends JpaRepository,
                 PersonFragment {
   ...
}

రిపోజిటరీ
Jpa రిపోజిటరీ
పేజింగ్ మరియు సార్టింగ్ రిపోజిటరీ

public class PersonRepository extends 

    Repository {

    Person save(Person entity);

    Optional findById(Person entity);
}

రిపోజిటరీ శకలాలు

public interface PersonRepository
         extends JpaRepository,
                 PersonFragment {
   ...
}

ఉత్పన్నమైన ప్రశ్న పద్ధతులు

public interface PersonRepository extends CrudRepository {

    List findByName(String name);
    
    Person findByNameBySsn(String ssn);
    
    Optional 
       findByNameBySsnIgnoreCase(String ssn);

    Boolean existsBookByYearOfBirthBetween(
            Integer start, Integer end);
}

వినియోగదారు నిర్వచించిన ప్రశ్నలు

public interface MovieRepository
         extends CrudRepository {

    Movie findFirstByOrderByDurationDesc();

    @Query("select m from Movie m where m.rating = ?1")
    Iterator findByRating(String rating);

    @Query("from Movie where title = ?1")
    Movie findByTitle(String title);
}

మైక్రోప్రొఫైల్ APIలు

తప్పు సహనం

క్యాస్కేడింగ్ వైఫల్యాలను నివారించడానికి మరియు విశ్వసనీయ మైక్రోసర్వీస్ నిర్మాణాలను రూపొందించడానికి ఫాల్ట్ టాలరెన్స్ నిర్మాణాలు చాలా ముఖ్యమైనవి. స్ప్రింగ్ డెవలపర్‌లు చాలా సంవత్సరాలుగా తప్పు సహనం కోసం సర్క్యూట్-బ్రేకర్‌లను ఉపయోగిస్తున్నారు. హిస్ట్రిక్స్. అయినప్పటికీ, Hystrix చాలా కాలంగా నవీకరించబడలేదు, కానీ MicroProfile యొక్క తప్పు సహనం ఇప్పుడు చురుకుగా అభివృద్ధి చెందుతోంది మరియు దాని వెనుక అనేక సంవత్సరాల ఉత్పత్తి ఉపయోగం ఉంది. అందువల్ల, క్వార్కస్‌లోని సేవల విశ్వసనీయతను మెరుగుపరచడానికి, మైక్రోప్రొఫైల్ ఫాల్ట్ టాలరెన్స్ APIలను ఉపయోగించమని సిఫార్సు చేయబడింది, వీటి ఉదాహరణలు టేబుల్ 5లో ఉపయోగించబడ్డాయి. దీని గురించి మరింత సమాచారం కోసం, క్వార్కస్ మాన్యువల్‌ని చూడండి. తప్పు సహనం గైడ్.

పట్టిక 5. మద్దతు ఉన్న మైక్రోప్రొఫైల్ ఫాల్ట్ టోలరెన్స్ APIలను ఉపయోగించే ఉదాహరణలు.

మైక్రోప్రొఫైల్ ఫాల్ట్ టాలరెన్స్ ఫీచర్‌లు
వివరణ
ఉదాహరణలు

@అసమకాలిక

ప్రత్యేక థ్రెడ్‌లో లాజిక్‌ని అమలు చేయడం

@Asynchronous
@Retry
public Future<String> getSalutation() {
   ...
   return future;
}

@బల్క్ హెడ్

ఏకకాల అభ్యర్థనల సంఖ్యను పరిమితం చేయండి

@Bulkhead(5)
public void fiveConcurrent() {
   makeRemoteCall(); //...
}

@సర్క్యూట్ బ్రేకర్

స్మార్ట్ వైఫల్య నిర్వహణ మరియు వైఫల్యాల నుండి రికవరీ

@CircuitBreaker(delay=500   // milliseconds
   failureRatio = .75,
   requestVolumeThreshold = 20,
   successThreshold = 5)
@Fallback(fallbackMethod = "fallback")
public String getSalutation() {
   makeRemoteCall(); //...
}

@వెనక్కి పడు

వైఫల్యం విషయంలో ప్రత్యామ్నాయ తర్కం కాల్

@Timeout(500) // milliseconds
@Fallback(fallbackMethod = "fallback")
public String getSalutation() {
   makeRemoteCall(); //...
}

public String fallback() {
   return "hello";
}

తిరిగి ప్రయత్నించు

అభ్యర్థన వైఫల్యంపై మళ్లీ ప్రయత్నించండి

@Retry(maxRetries=3)
public String getSalutation() {
   makeRemoteCall(); //...
}

సమయం ముగిసినది

వైఫల్య నియంత్రణ సమయం ముగిసింది

@Timeout(value = 500 )   // milliseconds
@Fallback(fallbackMethod = "fallback")
public String getSalutation() {
   makeRemoteCall(); //...
}

తనిఖీ సేవలు (సేవా ఆరోగ్యం)

Kubernetes ప్లాట్‌ఫారమ్‌లు ప్రత్యేక సేవలను ఉపయోగించి కంటైనర్‌ల ఆరోగ్యాన్ని పర్యవేక్షిస్తాయి. సేవలను పర్యవేక్షించడానికి అంతర్లీన ప్లాట్‌ఫారమ్‌ను అనుమతించడానికి, స్ప్రింగ్ డెవలపర్‌లు సాధారణంగా కస్టమ్ హెల్త్‌ఇండికేటర్ మరియు స్ప్రింగ్ బూట్ యాక్యుయేటర్‌ను ఉపయోగిస్తారు. క్వార్కస్‌లో, మైక్రోప్రొఫైల్ హెల్త్‌ని ఉపయోగించి ఇది చేయవచ్చు, ఇది డిఫాల్ట్‌గా లైవ్‌నెస్ చెక్‌ను నిర్వహిస్తుంది, అయితే లైవ్‌నెస్ మరియు సంసిద్ధతను ఏకకాలంలో తనిఖీ చేయడానికి కాన్ఫిగర్ చేయవచ్చు. మద్దతు ఉన్న మైక్రోప్రొఫైల్ హెల్త్ APIలను ఎలా ఉపయోగించాలో ఉదాహరణలు టేబుల్ 6లో అందించబడ్డాయి మరియు అదనపు సమాచారం క్వార్కస్ మాన్యువల్‌లో అందించబడింది హెల్త్ గైడ్.

టేబుల్ 6: మద్దతు ఉన్న మైక్రోప్రొఫైల్ హెల్త్ APIల వినియోగ ఉదాహరణలు.

మైక్రోప్రొఫైల్ ఆరోగ్య లక్షణాలు
వివరణ
ఉదాహరణలు

@జీవనం

ప్లాట్‌ఫారమ్ విఫలమైన కంటెయినరైజ్డ్ అప్లికేషన్‌లను రీబూట్ చేస్తుంది
ముగింపు స్థానం:
హోస్ట్:8080/హెల్త్/లైవ్

@Liveness
public class MyHC implements HealthCheck {
  public HealthCheckResponse call() {

   ...
   return HealthCheckResponse
     .named("myHCProbe")
     .status(ready ? true:false)
     .withData("mydata", data)
     .build();  
}

@సంసిద్ధత

ప్లాట్‌ఫారమ్ సిద్ధంగా లేకుంటే కంటైనర్ చేసిన అప్లికేషన్‌లకు ట్రాఫిక్‌ని పంపదు
ముగింపు స్థానం:
హోస్ట్:8080/ఆరోగ్యం/సిద్ధంగా

@Readiness
public class MyHC implements HealthCheck {
  public HealthCheckResponse call() {

   ...
   return HealthCheckResponse
     .named("myHCProbe")
     .status(live ? true:false)
     .withData("mydata", data)
     .build();  
}

కొలమానాలు

అప్లికేషన్‌లు కార్యాచరణ ప్రయోజనాల కోసం (పనితీరు SLAలను పర్యవేక్షించడానికి) లేదా నాన్-ఆపరేషనల్ ప్రయోజనాల కోసం (వ్యాపార SLAలు) కొలమానాలను అందిస్తాయి. స్ప్రింగ్ డెవలపర్లు స్ప్రింగ్ బూట్ యాక్యుయేటర్ మరియు మైక్రోమీటర్ ఉపయోగించి కొలమానాలను అందిస్తారు. ప్రతిగా, క్వార్కస్ బేస్‌లైన్ మెట్రిక్‌లు (JVM మరియు ఆపరేటింగ్ సిస్టమ్), వెండర్ మెట్రిక్‌లు (క్వార్కస్) మరియు అప్లికేషన్ మెట్రిక్‌లను అందించడానికి మైక్రోప్రొఫైల్ మెట్రిక్‌లను ఉపయోగిస్తుంది. మైక్రోప్రొఫైల్ మెట్రిక్‌లకు అమలు JSON మరియు OpenMetrics (Prometheus) అవుట్‌పుట్ ఫార్మాట్‌లకు మద్దతివ్వడం అవసరం. మైక్రోప్రొఫైల్ మెట్రిక్స్ APIని ఉపయోగించే ఉదాహరణలు టేబుల్ 7లో ఇవ్వబడ్డాయి.

В మా ఉదాహరణ నుండి ప్రాజెక్ట్ అప్లికేషన్ మెట్రిక్‌లను అందించడానికి మైక్రోప్రొఫైల్ కొలమానాలు ఉపయోగించబడతాయి. మరింత సమాచారం కోసం, క్వార్కస్ మాన్యువల్ చూడండి మెట్రిక్స్ గైడ్.

పట్టిక 7. మైక్రోప్రొఫైల్ మెట్రిక్స్ APIలను ఉపయోగించడం యొక్క ఉదాహరణలు.

మైక్రోప్రొఫైల్ మెట్రిక్స్ ఫీచర్లు
వివరణ
ఉదాహరణలు

@లెక్కించబడింది

ఉల్లేఖన వస్తువు ఎన్నిసార్లు కాల్ చేయబడిందో లెక్కించే కౌంటర్ కౌంటర్‌ని సూచిస్తుంది

@Counted(name = "fallbackCounter", 
  displayName = "Fallback Counter", 
  description = "Fallback Counter")
public String salutationFallback() {
   return fallbackSalutation;
}

@ConcurrentGauge

ఉల్లేఖన వస్తువుకు ఏకకాలిక కాల్‌ల సంఖ్యను లెక్కించే గేజ్‌ను సూచిస్తుంది

@ConcurrentGuage(
  name = "fallbackConcurrentGauge", 
  displayName="Fallback Concurrent", 
  description="Fallback Concurrent")
public String salutationFallback() {
   return fallbackSalutation;
}

@గేజ్

ఉల్లేఖన వస్తువు విలువను కొలిచే గేజ్ సెన్సార్‌ను సూచిస్తుంది

@Metered(name = "FallbackGauge",
   displayName="Fallback Gauge",
   description="Fallback frequency")
public String salutationFallback() {
   return fallbackSalutation;
}

@మీటర్ చేయబడింది

ఉల్లేఖన వస్తువు యొక్క కాల్ ఫ్రీక్వెన్సీని పర్యవేక్షించే మీటర్ సెన్సార్‌ను సూచిస్తుంది

@Metered(name = "MeteredFallback",
   displayName="Metered Fallback",
   description="Fallback frequency")
public String salutationFallback() {
   return fallbackSalutation;
}

మెట్రిక్

మెట్రిక్‌ని నమోదు చేయడానికి లేదా రూపొందించడానికి అభ్యర్థన వచ్చినప్పుడు మెటాడేటా గురించి సమాచారాన్ని కలిగి ఉన్న ఉల్లేఖనం

@Metric
@Metered(name = "MeteredFallback",
   displayName="Metered Fallback",
   description="Fallback frequency")
public String salutationFallback() {
   return fallbackSalutation;
}

సమయానుకూల

ఉల్లేఖన వస్తువు యొక్క వ్యవధిని ట్రాక్ చేసే టైమర్‌ను సూచిస్తుంది

@Timed(name = "TimedFallback",
   displayName="Timed Fallback",
   description="Fallback delay")
public String salutationFallback() {
   return fallbackSalutation;
}

మెట్రిక్స్ ముగింపు పాయింట్లు

అప్లికేషన్ కొలమానాలు localhost:8080/మెట్రిక్స్/అప్లికేషన్
ప్రాథమిక కొలమానాలు localhost:8080/మెట్రిక్స్/బేస్
విక్రేత కొలమానాలు localhost:8080/మెట్రిక్స్/వెండర్
అన్ని కొలమానాలు localhost:8080/మెట్రిక్స్

మైక్రోప్రొఫైల్ రెస్ట్ క్లయింట్

మైక్రోసర్వీస్‌లు తరచుగా RESTful ముగింపు బిందువులను అందిస్తాయి, వాటికి సంబంధిత క్లయింట్ APIలు పని చేయాల్సి ఉంటుంది. RESTful ముగింపు పాయింట్‌లను ఉపయోగించడానికి, స్ప్రింగ్ డెవలపర్‌లు సాధారణంగా RestTemplateని ఉపయోగిస్తారు. క్వార్కస్ ఈ సమస్యను పరిష్కరించడానికి మైక్రోప్రొఫైల్ రెస్ట్ క్లయింట్ APIలను అందిస్తుంది, వీటి ఉపయోగం యొక్క ఉదాహరణలు టేబుల్ 8లో ఇవ్వబడ్డాయి.

В మా ఉదాహరణ నుండి ప్రాజెక్ట్ మైక్రోప్రొఫైల్ రెస్ట్ క్లయింట్‌ని ఉపయోగించి RESTful ఎండ్‌పాయింట్‌ల ఉపయోగం జరుగుతుంది. ఈ అంశంపై మరింత సమాచారం మరియు ఉదాహరణలు క్వార్కస్ మాన్యువల్‌లో చూడవచ్చు విశ్రాంతి క్లయింట్ గైడ్.

టేబుల్ 8. మైక్రోప్రొఫైల్ రెస్ట్ క్లయింట్ APIలను ఉపయోగించడం యొక్క ఉదాహరణలు.

మైక్రోప్రొఫైల్ రెస్ట్ క్లయింట్ ఫీచర్‌లు
వివరణ
ఉదాహరణలు

@RegisterRestClient

టైప్ చేసిన జావా ఇంటర్‌ఫేస్‌ను REST క్లయింట్‌గా నమోదు చేస్తుంది

@RegisterRestClient
@Path("/")
public interface MyRestClient {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getSalutation();
}

@రెస్ట్ క్లయింట్

టైప్ చేసిన REST క్లయింట్ ఇంటర్‌ఫేస్ యొక్క ఉదాహరణ అమలును సూచిస్తుంది

@Autowired // or @Inject
@RestClient
MyRestClient restClient;

ఆవాహన

REST ముగింపు పాయింట్‌ని పిలుస్తుంది

System.out.println(
   restClient.getSalutation());

mp-rest/url

REST ముగింపు బిందువును పేర్కొంటుంది

application.properties:
org.example.MyRestClient/mp-rest/url=
   http://localhost:8081/myendpoint

ఫలితాలు

ఈ బ్లాగ్‌లో, ప్రధానంగా స్ప్రింగ్ డెవలపర్‌లను లక్ష్యంగా చేసుకుని, జావా మైక్రోసర్వీస్‌లను డెవలప్ చేయడానికి క్వార్కస్‌లోని మైక్రోప్రొఫైల్ APIలతో స్ప్రింగ్ APIలను ఎలా ఉపయోగించాలో మేము శీఘ్రంగా పరిశీలించాము మరియు వాటిని స్థానిక బైనరీ కోడ్‌గా కంపైల్ చేయండి, అది వందల మెగాబైట్ల RAMని ఆదా చేస్తుంది మరియు ప్రారంభించబడుతుంది మిల్లీసెకన్ల విషయం.

మీరు ఇప్పటికే అర్థం చేసుకున్నట్లుగా, స్ప్రింగ్ మరియు మైక్రోప్రొఫైల్ APIలకు మద్దతు గురించి మరింత సమాచారం, అలాగే చాలా ఇతర ఉపయోగకరమైన సమాచారాన్ని కనుగొనవచ్చు క్వార్కస్ మాన్యువల్లు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి