குவார்கஸ் மைக்ரோ ப்ரோஃபைல் மற்றும் ஸ்பிரிங் ஆகியவற்றை எவ்வாறு இணைக்கிறது

அனைவருக்கும் வணக்கம், குவார்கஸ் தொடரின் மூன்றாவது இடுகை இதோ!

குவார்கஸ் மைக்ரோ ப்ரோஃபைல் மற்றும் ஸ்பிரிங் ஆகியவற்றை எவ்வாறு இணைக்கிறது

ஜாவா மைக்ரோ சர்வீஸ்களை உருவாக்கும் போது, ​​அது பெரும்பாலும் நம்பப்படுகிறது கிரகணம் மைக்ரோ ப்ரோஃபைல் и வசந்த துவக்க தனி மற்றும் சுயாதீன APIகள். இயல்பாக, புரோகிராமர்கள் ஏற்கனவே பயன்படுத்திய APIகளைப் பயன்படுத்த முனைகிறார்கள், ஏனெனில் புதிய கட்டமைப்புகள் மற்றும் இயக்க நேரக் கூறுகளைக் கற்றுக்கொள்வதற்கு அதிக நேரம் எடுக்கும். இன்று நாம் சில பிரபலமான வளர்ச்சியை எளிதாக்க முயற்சிப்போம் ஸ்பிரிங் டெவலப்பர்களுக்கான MicroProfile API மற்றும் ஸ்பிரிங் ஏபிஐ மற்றும் புதிய பயனுள்ள அம்சங்களை எப்படி ஒரே நேரத்தில் பயன்படுத்துவது என்பதைக் காண்பிக்கும் குவார்க்கஸ்.

இன்னும் கொஞ்சம் விரிவாக, ஸ்பிரிங் டெவலப்பர்கள் தங்கள் அன்றாட வேலையில் மைக்ரோ ப்ரோஃபைல் ஏபிஐயை எப்படிப் பயன்படுத்துவது என்பதைக் காட்ட, குவார்கஸ் ஸ்பிரிங் ஏபிஐகளை எவ்வாறு ஆதரிக்கிறது என்பதன் நோக்கம் மற்றும் விவரங்களை முதலில் பார்ப்போம். மைக்ரோ சர்வீஸ்களை உருவாக்கும் போது ஸ்பிரிங் டெவலப்பர்களுக்கு பயனுள்ளதாக இருக்கும் மைக்ரோ ப்ரோஃபைல் ஏபிஐகளை நாங்கள் காப்போம்.

ஏன் குவார்கஸ்? முதலாவதாக, இது நேரடி குறியீட்டு முறை, அதாவது மைக்ரோ ப்ரோஃபைல் ஏபிஐ, ஸ்பிரிங் ஏபிஐ மற்றும் பிற ஜாவா ஏபிஐகளில் ஏதேனும் மாற்றங்களைத் தானாக மீண்டும் ஏற்றுவது, இது ஒரே ஒரு கட்டளையுடன் செய்யப்படுகிறது: mvn quarkus:dev. இரண்டாவதாக, விவாதிக்கப்பட்டது எங்கள் உதாரணத்தில் தனிநபர் சேவை (இது ஸ்பிரிங், மைக்ரோ ப்ரோஃபைல் மற்றும் ஜேபிஏ ஏபிஐகளிலிருந்து நேட்டிவ் கிரால்விஎம் படத்தைப் பயன்படுத்தி பைனரியாகத் தொகுக்கிறது) வெறும் 0.055 வினாடிகளில் தொடங்கி, ரெஸ்ட்ஃபுல் அப்ளிகேஷன் எண்ட்பாயிண்டில் சுமார் 90 எம்பி ரேம் (ஆர்எஸ்எஸ்) எடுக்கும். மேலும், அதன் தொகுப்பு ஒரு கட்டளையுடன் செய்யப்படுகிறது: mvn தொகுப்பு -Pnative.

Quarkus இல் MicroProfile APIகளுடன் Spring APIகளை எப்படிப் பயன்படுத்தலாம் என்பதை Spring டெவலப்பர்கள் புரிந்துகொள்ள உதவுவதைத் தவிர, MicroProfile பற்றி விரிவாகப் பேச மாட்டோம்.

கொள்கலன்கள் மற்றும் குபெர்னெட்ஸ்

இந்தக் கட்டுரையை எளிமையாக வைத்திருக்க, ஆதரவின் உயர்மட்ட அம்சங்களை மட்டும் இங்கு காண்போம். Kubernetes, ஏனெனில் புரிந்து கொள்வது முக்கியம். குபெர்னெட்ஸிற்கான ஜாவா அடுக்காக குவார்கஸ் நிலைநிறுத்தப்பட்டுள்ளது, இது நினைவக நுகர்வு மற்றும் ஜாவா பயன்பாடுகள் மற்றும் சேவைகளின் தொடக்க நேரத்தை குறைக்க வடிவமைக்கப்பட்டுள்ளது, இதன் விளைவாக, ஹோஸ்டில் அவற்றின் அடர்த்தியை அதிகரித்து ஒட்டுமொத்த செலவுகளையும் குறைக்கிறது.

குவார்கஸ் கூட தானியங்கி உற்பத்தியை ஆதரிக்கிறது குபெர்னெட்ஸ் வளங்கள் மற்றும் சலுகைகள் வழிகாட்டுகிறது Kubernetes மற்றும் Red Hat OpenShift இயங்குதளங்களில் பயன்படுத்துவதற்கு. கூடுதலாக, கொள்கலன்களை உருவாக்க தேவையான Dockerfile.jvm (JVM பேக்கேஜிங்) மற்றும் Dockerfile.native (நேட்டிவ் பைனரி பேக்கேஜிங்) கோப்புகளை குவார்கஸ் தானாகவே உருவாக்குகிறது.

இறுதியாக, குபெர்னெட்ஸை இலக்கு வரிசைப்படுத்தல் சூழலாக மையப்படுத்துவதன் மூலம், குபெர்னெட்ஸ் இயங்குதளத்தின் மட்டத்தில் இதேபோன்ற செயல்பாடு செயல்படுத்தப்படும் சந்தர்ப்பங்களில் குவார்கஸ் ஜாவா கட்டமைப்பைப் பயன்படுத்துவதில்லை. குபெர்னெட்டஸ் மற்றும் ஸ்பிரிங் டெவலப்பர்கள் பயன்படுத்தும் வழக்கமான ஜாவா கட்டமைப்புகளுக்கு இடையிலான செயல்பாட்டு கடிதத்தின் வரைபடத்தை அட்டவணை 1 வழங்குகிறது.

அட்டவணை 1. ஜாவா ஃப்ரேம்வொர்க்குகள் மற்றும் குபெர்னெட்ஸ் இடையேயான செயல்பாட்டு கடிதப் பரிமாற்றத்தின் வரைபடம்.

செயல்பாட்டு
பாரம்பரிய வசந்த காலணி
Kubernetes

சேவை கண்டுபிடிப்பு
யுரேகா
டிஎன்எஸ்

கட்டமைப்பு
ஸ்பிரிங் கிளவுட் கட்டமைப்பு
வரைபடங்கள்/ரகசியங்களை உள்ளமைக்கவும்

சுமை சமநிலை
ரிப்பன் (வாடிக்கையாளர் பக்கம்)
சேவை, பிரதி கட்டுப்படுத்தி (சர்வர் பக்கம்)

உதாரணத்திலிருந்து குறியீட்டைத் தொகுத்து இயக்குதல்

இந்த கட்டுரையில் நாம் குறிப்பிடுகிறோம் உதாரணம் திட்டம், ஸ்பிரிங் மற்றும் மைக்ரோ ப்ரோஃபைல் ஏபிஐகள் மற்றும் ஒரே ஜாவா கிளாஸ் கூட ஒன்றாகப் பயன்படுத்தப்படுகின்றன. இந்த எடுத்துக்காட்டில் உள்ள குறியீட்டை கட்டளை வரியிலிருந்து தொகுத்து இயக்கலாம், விவரங்களுக்கு README.md கோப்பைப் பார்க்கவும்.

ஸ்பிரிங் ஃப்ரேம்வொர்க் APIகள்

சார்பு ஊசி

குவார்கஸ் ஒரு வரம்பை ஆதரிக்கிறது சூழல்கள் மற்றும் சார்பு ஊசி (CDI) APIகள் மற்றும் ஸ்பிரிங் சார்பு ஊசி (ஸ்பிரிங் டிஐ) ஏபிஐகள். நீங்கள் MicroProfile உடன் பணிபுரிகிறீர்கள் என்றால், ஜாவா EE மற்றும் ஜகார்த்தா EE, நீங்கள் ஏற்கனவே CDI பற்றி நன்கு அறிந்திருக்கிறீர்கள். மறுபுறம், ஸ்பிரிங் டெவலப்பர்கள் ஸ்பிரிங் டிஐ உடன் இணக்கத்தன்மையை அடைய ஸ்பிரிங் டிஐ ஏபிஐக்கான குவார்கஸ் நீட்டிப்பைப் பயன்படுத்தலாம். ஆதரிக்கப்படும் Spring 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;

பீன்
On கட்டமைப்பு

@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, MicroProfile Rest Client, JSON-P மற்றும் JSON-B ஐ முதன்மை வலை நிரலாக்க மாதிரியாக ஆதரிக்கிறது என்பதை மைக்ரோ ப்ரோஃபைல் பயனர்கள் விரும்புவார்கள். Spring Web API, குறிப்பாக REST இடைமுகங்களுக்கான Quarkus இன் சமீபத்திய ஆதரவில் ஸ்பிரிங் டெவலப்பர்கள் மகிழ்ச்சி அடைவார்கள். ஸ்பிரிங் டிஐயைப் போலவே, ஸ்பிரிங் வெப் ஏபிஐ ஆதரவின் முக்கிய குறிக்கோள், மைக்ரோ ப்ரோஃபைல் ஏபிஐகளுடன் இணைந்து ஸ்பிரிங் வெப் ஏபிஐகளைப் பயன்படுத்த ஸ்பிரிங் டெவலப்பர்களை இயக்குவதாகும். ஆதரிக்கப்படும் ஸ்பிரிங் வெப் ஏபிஐகளை எவ்வாறு பயன்படுத்துவது என்பதற்கான எடுத்துக்காட்டுகள் அட்டவணை 3 இல் வழங்கப்பட்டுள்ளன, மேலும் இந்தத் தலைப்பைப் பற்றிய கூடுதல் தகவல்களையும் எடுத்துக்காட்டுகளையும் குவார்கஸ் டுடோரியலில் காணலாம் வசந்த வலை வழிகாட்டி.

அட்டவணை 3. ஆதரிக்கப்படும் Spring Web APIகளைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள்.

ஆதரிக்கப்படும் ஸ்பிரிங் வெப் அம்சங்கள்
உதாரணங்கள்

@RestController
@RequestMapping

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

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
@RequestParam
@RequestHeader
@MatrixVariable
@பாத்வேரியபிள்
@குக்கீ மதிப்பு
@RequestBody
@ResponseStatus
@ExceptionHandler
@RestControllerAdvice (பகுதி)

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

வசந்த தரவு JPA

ஹைபர்னேட் ORM ஐப் பயன்படுத்தி குவார்கஸ் JPA ஐ ஆதரிக்கிறது என்பதை மைக்ரோ ப்ரோஃபைல் பயனர்கள் பாராட்டுவார்கள். ஸ்பிரிங் டெவலப்பர்களுக்கு ஒரு நல்ல செய்தியும் உள்ளது: குவார்கஸ் பொதுவான ஸ்பிரிங் டேட்டா JPA குறிப்புகள் மற்றும் வகைகளை ஆதரிக்கிறது. ஆதரிக்கப்படும் ஸ்பிரிங் டேட்டா JPA APIகளைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள் அட்டவணை 4 இல் கொடுக்கப்பட்டுள்ளன.
В எங்கள் உதாரணத்திலிருந்து திட்டம் ஸ்பிரிங் டேட்டா ஜேபிஏ ஏபிஐகள் பயன்படுத்தப்படுகின்றன மேலும் மேலும் தகவல்கள் குவார்கஸ் டுடோரியலில் கிடைக்கும் வசந்த தரவு JPA வழிகாட்டி.

அட்டவணை 4. ஆதரிக்கப்படும் ஸ்பிரிங் டேட்டா JPA APIகளைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள்.

ஆதரிக்கப்படும் ஸ்பிரிங் டேட்டா JPA அம்சங்கள்
உதாரணங்கள்

CrudRepository

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);
}

MicroProfile APIகள்

தவறு சகிப்புத்தன்மை

கேஸ்கேடிங் தோல்விகளைத் தடுப்பதற்கும் நம்பகமான மைக்ரோ சர்வீஸ் கட்டமைப்புகளை உருவாக்குவதற்கும் தவறு சகிப்புத்தன்மை கட்டுமானங்கள் மிகவும் முக்கியம். ஸ்பிரிங் டெவலப்பர்கள் பல ஆண்டுகளாக தவறு சகிப்புத்தன்மைக்கு சர்க்யூட் பிரேக்கர்களைப் பயன்படுத்துகின்றனர். ஹிஸ்ட்ரிக்ஸ். இருப்பினும், Hystrix நீண்ட காலமாக புதுப்பிக்கப்படவில்லை, ஆனால் MicroProfile இன் தவறு சகிப்புத்தன்மை இப்போது தீவிரமாக வளர்ந்து வருகிறது மற்றும் அதன் பின்னால் பல வருட உற்பத்தி பயன்பாடு உள்ளது. எனவே, குவார்கஸில் உள்ள சேவைகளின் நம்பகத்தன்மையை மேம்படுத்த, மைக்ரோ ப்ரோஃபைல் ஃபால்ட் டாலரன்ஸ் ஏபிஐகளைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது, அவற்றின் எடுத்துக்காட்டுகள் அட்டவணை 5 இல் பயன்படுத்தப்பட்டுள்ளன. இது பற்றிய கூடுதல் தகவலுக்கு, குவார்கஸ் கையேட்டைப் பார்க்கவும். தவறு சகிப்புத்தன்மை வழிகாட்டி.

அட்டவணை 5. ஆதரிக்கப்படும் MicroProfile Fault Tolerance APIகளைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள்.

MicroProfile தவறு சகிப்புத்தன்மை அம்சங்கள்
விளக்கம்
உதாரணங்கள்

@Asynchronous

ஒரு தனி நூலில் தர்க்கத்தை செயல்படுத்துதல்

@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(); //...
}

@Fallback

தோல்வி ஏற்பட்டால் மாற்று தர்க்கத்தை அழைப்பது

@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 இயங்குதளங்கள் கண்காணிக்கின்றன. சேவைகளைக் கண்காணிக்க அடிப்படை இயங்குதளத்தை அனுமதிக்க, ஸ்பிரிங் டெவலப்பர்கள் பொதுவாக தனிப்பயன் ஹெல்த்இண்டிகேட்டர் மற்றும் ஸ்பிரிங் பூட் ஆக்சுவேட்டரைப் பயன்படுத்துகின்றனர். குவார்கஸில், மைக்ரோ ப்ரோஃபைல் ஹெல்த் மூலம் இதைச் செய்யலாம், இது இயல்புநிலையாக ஒரு லைவ்னெஸ் காசோலையைச் செய்கிறது, ஆனால் ஒரே நேரத்தில் உயிரோட்டத்தையும் தயார்நிலையையும் சரிபார்க்க கட்டமைக்க முடியும். ஆதரிக்கப்படும் மைக்ரோ ப்ரோஃபைல் ஹெல்த் ஏபிஐகளை எவ்வாறு பயன்படுத்துவது என்பதற்கான எடுத்துக்காட்டுகள் அட்டவணை 6 இல் வழங்கப்பட்டுள்ளன, மேலும் கூடுதல் தகவல்கள் குவார்கஸ் கையேட்டில் வழங்கப்பட்டுள்ளன. சுகாதார வழிகாட்டி.

அட்டவணை 6: ஆதரிக்கப்படும் MicroProfile Health APIகளின் பயன்பாட்டு எடுத்துக்காட்டுகள்.

மைக்ரோ ப்ரோஃபைல் ஹெல்த் அம்சங்கள்
விளக்கம்
உதாரணங்கள்

@வாழ்க்கை

பிளாட்ஃபார்ம் தோல்வியுற்ற கண்டெய்னரைஸ் செய்யப்பட்ட பயன்பாடுகளை மறுதொடக்கம் செய்கிறது
இறுதிப்புள்ளி:
புரவலன்:8080/health/live

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

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

@ தயார்நிலை

பிளாட்ஃபார்ம் தயாராக இல்லை என்றால், கொள்கலன் செய்யப்பட்ட பயன்பாடுகளுக்கு போக்குவரத்தை அனுப்பாது
இறுதிப்புள்ளி:
புரவலன்:8080/health/ready

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

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

அளவீடுகள்

பயன்பாடுகள் செயல்பாட்டு நோக்கங்களுக்காக (செயல்திறன் SLAகளை கண்காணிக்க) அல்லது செயல்படாத நோக்கங்களுக்காக (வணிக SLAகள்) அளவீடுகளை வழங்குகின்றன. ஸ்பிரிங் டெவலப்பர்கள் ஸ்பிரிங் பூட் ஆக்சுவேட்டர் மற்றும் மைக்ரோமீட்டரைப் பயன்படுத்தி அளவீடுகளை வழங்குகிறார்கள். இதையொட்டி, அடிப்படை அளவீடுகள் (ஜேவிஎம் மற்றும் இயக்க முறைமை), விற்பனையாளர் அளவீடுகள் (குவார்கஸ்) மற்றும் பயன்பாட்டு அளவீடுகளை வழங்க குவார்கஸ் மைக்ரோ ப்ரோஃபைல் மெட்ரிக்ஸைப் பயன்படுத்துகிறது. MicroProfile Metrics க்கு JSON மற்றும் OpenMetrics (Prometheus) வெளியீட்டு வடிவங்களை செயல்படுத்துவதற்கு ஆதரவு தேவை. MicroProfile Metrics API ஐப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள் அட்டவணை 7 இல் கொடுக்கப்பட்டுள்ளன.

В எங்கள் உதாரணத்திலிருந்து திட்டம் பயன்பாட்டு அளவீடுகளை வழங்க MicroProfile அளவீடுகள் பயன்படுத்தப்படுகின்றன. மேலும் தகவலுக்கு, குவார்கஸ் கையேட்டைப் பார்க்கவும் அளவீடுகள் வழிகாட்டி.

அட்டவணை 7. MicroProfile Metrics 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;
}

அளவீடுகள் இறுதிப்புள்ளிகள்

விண்ணப்ப அளவீடுகள் லோக்கல் ஹோஸ்ட்:8080/மெட்ரிக்ஸ்/விண்ணப்பம்
அடிப்படை அளவீடுகள் லோக்கல் ஹோஸ்ட்:8080/மெட்ரிக்ஸ்/அடிப்படை
விற்பனையாளர் அளவீடுகள் லோக்கல் ஹோஸ்ட்:8080/மெட்ரிக்ஸ்/விற்பனையாளர்
அனைத்து அளவீடுகள் லோக்கல் ஹோஸ்ட்:8080/மெட்ரிக்ஸ்

MicroProfile ஓய்வு கிளையண்ட்

மைக்ரோ சர்வீஸ்கள் பெரும்பாலும் RESTful இறுதிப்புள்ளிகளை வழங்குகின்றன, அவை தொடர்புடைய கிளையன்ட் APIகள் வேலை செய்ய வேண்டும். RESTful endpointகளைப் பயன்படுத்த, Spring டெவலப்பர்கள் பொதுவாக RestTemplate ஐப் பயன்படுத்துகின்றனர். இந்தச் சிக்கலைத் தீர்க்க Quarkus மைக்ரோ ப்ரோஃபைல் ரெஸ்ட் கிளையண்ட் APIகளை வழங்குகிறது, அவற்றின் பயன்பாட்டின் எடுத்துக்காட்டுகள் அட்டவணை 8 இல் கொடுக்கப்பட்டுள்ளன.

В எங்கள் உதாரணத்திலிருந்து திட்டம் MicroProfile Rest Client ஐப் பயன்படுத்தி RESTful endpoints ஐப் பயன்படுத்துகிறது. இந்த தலைப்பைப் பற்றிய கூடுதல் தகவல்களையும் எடுத்துக்காட்டுகளையும் குவார்கஸ் கையேட்டில் காணலாம் ஓய்வு வாடிக்கையாளர் வழிகாட்டி.

அட்டவணை 8. MicroProfile Rest Client APIகளைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள்.

MicroProfile ஓய்வு கிளையண்ட் அம்சங்கள்
விளக்கம்
உதாரணங்கள்

@RegisterRestClient

தட்டச்சு செய்யப்பட்ட ஜாவா இடைமுகத்தை REST கிளையண்டாகப் பதிவு செய்கிறது

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

@RestClient

தட்டச்சு செய்யப்பட்ட 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

முடிவுகளை

இந்த வலைப்பதிவில், முதன்மையாக ஸ்பிரிங் டெவலப்பர்களை இலக்காகக் கொண்டு, ஜாவா மைக்ரோ சர்வீஸ்களை உருவாக்க, குவார்கஸில் உள்ள மைக்ரோ ப்ரோஃபைல் ஏபிஐகளுடன் ஸ்பிரிங் ஏபிஐகளை எவ்வாறு பயன்படுத்துவது என்பதை விரைவாகப் பார்த்தோம். ஒரு மில்லி விநாடிகள்.

நீங்கள் ஏற்கனவே புரிந்து கொண்டபடி, Spring மற்றும் MicroProfile APIகளுக்கான ஆதரவைப் பற்றிய கூடுதல் தகவல்கள் மற்றும் பல பயனுள்ள தகவல்களைக் காணலாம் குவார்கஸ் கையேடுகள்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்