Producer - Consumer mikroserwisowo

Odpowiedz Nowy wątek
2020-03-27 09:58

Rejestracja: 3 lata temu

Ostatnio: 1 miesiąc temu

0

Chcę mikroserwisowo zrobić takie coś:

title

  1. Jak rozumiem ma być osobny jar Consumera, osobny jar Producera i osobny jar co wypycha do kolejki to co wyprodukuje Producer. A co zrobić z faktem, że Consumer i Producer współdzielą model i logikę biznesową? np. obiekty POJO, propertasy, klienta restowego. Zrobić 4 jar? albo 4 do logiki i 5 do modelu?

  2. Jak najprościej zaimplementować taką kolejkę? (nie wiem jak to się ma komunikować)

  3. Jeśli nie chcę implementować takiej kolejki samemu to z czego skorzystać żeby było modne i proste? Kafka? Fuse?

edytowany 2x, ostatnio: Julian_, 2020-03-27 10:00
Zrób P lub C w innej technologii (not java) i będziesz wiedział ile wrzucić do jara. - Delor 2020-03-27 13:46

Pozostało 580 znaków

2020-03-27 10:10

Rejestracja: 2 lata temu

Ostatnio: 3 godziny temu

2

Jak rozumiem istotą ortodoksyjnej mikroservices informatyki jest nieposiadanie żadnego wspólnego kodu.
Może użyj mniej "religijnych" sformułowań, jak service/usługa.

Pozostało 580 znaków

2020-03-27 10:36

Rejestracja: 3 lata temu

Ostatnio: 1 miesiąc temu

0
AnyKtokolwiek napisał(a):

Jak rozumiem istotą ortodoksyjnej mikroservices informatyki jest nieposiadanie żadnego wspólnego kodu.
Może użyj mniej "religijnych" sformułowań, jak service/usługa.

Usługa A:

// ...
AppStatus getAppStatus() {
// ...

Usługa B:

// ...
AppStatus status = serviceB.getAppStatus();
if (status == AppStatus.of("infected_covid-19") {
     producePersonToSanepidQueue();
// ...

Usługa C:

// ...
AppStatus status  = serviceB.getAppStatus();
if (status == AppStatus.of("infected_covid-19") {
    consumePersonFromSanepidQueue();
// ...

i co teraz?

edytowany 2x, ostatnio: Julian_, 2020-03-27 10:37
Jaki charakter jest tego projektu? Produkcja? Ciekawość? To, co tu piszesz "pachnie" jakby wszystko się wykonywało "in JVM", choć mogę się mylić. - AnyKtokolwiek 2020-03-27 12:10
Uczę się mikroserwisów na przykładzie mojego projekciku Producer-Consumer, który polega na tym, że RESTowo dobijam się do aplikacji pobieram elementy spełniające jakieś kryteria (Producer) a nastepnie odpowiednio je zmieniam, np. ich statusy(Consumer). - Julian_ 2020-03-27 12:33

Pozostało 580 znaków

2020-03-27 12:22

Rejestracja: 12 lat temu

Ostatnio: 9 godzin temu

1
  1. Jakie masz założenia/wymagania. Dlaczego to nie może być zrobione w jedne apce? Przeraża mnie pytanie z czego skorzystać żeby było modne i proste.
  2. Poczytaj o AVRO schema, może to jest way to go dla Ciebie. Kolejek jest multum - Redis, RabbitMQ, ActiveMQ, ..., Kafka. Możesz też sobie zaimplementować kolejkę na MySQL. Wszystko zależy od punktu (1).

IT mikromenadżer
Też mnie przeraża, choć kwarantannowy czas u mnie pociąga zainteresowanie do romansu z nowymi/jeszcze nie używanymi technologiami. Kolegi @Julian_ nie potrafię rozgryźć, niby gdzieś pracuje, niby w selektywnych działach ma wiedzę, w innych się miota jak nastolat przymuszony przez nauczycieli - AnyKtokolwiek 2020-03-27 12:26

Pozostało 580 znaków

2020-03-27 12:34

Rejestracja: 3 lata temu

Ostatnio: 1 miesiąc temu

0
Charles_Ray napisał(a):
  1. Jakie masz założenia/wymagania. Dlaczego to nie może być zrobione w jedne apce? Przeraża mnie pytanie z czego skorzystać żeby było modne i proste.

Uczę się micoserwisów dlatego tak se to rozdzielam. Modne po to, bo już nie raz straciłem kilka mies. na naukę czegoś co już nikt nie używa (np. servlety z jsp), a proste dlatego, że od czegoś chcę zacząć.

edytowany 2x, ostatnio: Julian_, 2020-03-27 12:35
Przynajmniej wiesz, o czym mowa z JSP (i również współcześnie można to mądrze zastosować do View). Ja sobie programistę wyobrażam, że ciągle ma jakieś pojęcie, co w branży piszczy (choć nie jest akualnie uzyeczne w pracy), czego na pewno nie użyć, ale co mieć na własnej liście do zapoznania. Choć nie robię naprawdę wielkich wdrożeń, mam panoramiczny ogląd nowości w tej branży - tego się nie da zadekretować "na rozkaz" - AnyKtokolwiek 2020-03-27 12:43
weźmy jeszcze pod uwagę, że HRki patrzą głównie na technologię. Robiłeś strumienie przez x lat na Flume? o to nie, bo my szukamy kogoś kto robił strumienie na Kafce. - Julian_ 2020-03-27 12:56
mam wrażenie, że masz program minimalistyczny: wiedzieć tytko tyle, zeby starczyło na najbliższa rekrutację. Niestety, w edukacji/samoedukacji sporo wiedzy tzreba zdobyć, by ją (pozornie) "zmarnować" - AnyKtokolwiek 2020-03-27 13:25

Pozostało 580 znaków

2020-03-27 13:40

Rejestracja: 1 rok temu

Ostatnio: 1 minuta temu

Lokalizacja: Silesia

2
Julian_ napisał(a):
  1. Jak rozumiem ma być osobny jar Consumera, osobny jar Producera i osobny jar co wypycha do kolejki to co wyprodukuje Producer. A co zrobić z faktem, że Consumer i Producer współdzielą model i logikę biznesową? np. obiekty POJO, propertasy, klienta restowego. Zrobić 4 jar? albo 4 do logiki i 5 do modelu?
  • DTO -> AVRO schema jak pisze @Charles_Ray. Lub prościej, JSON schema. Lub inaczej Protocol Buffer lub Thrift
  • Logika -> radykałowie kopiują taki kod lub robią nano serwis. Ja nie widzę powodu żeby nie wsadzić tego do biblioteki
  • Klient -> jak najbardziej zasługuje to na osobną bibliotekę jak jest bardzo pokopany. Ale nie bardzo rozumiem do czego, bo na razie masz tylko dwa serwisy połączone kolejką. Czy to jest klient do trzeciego serwisu?
  1. Jak najprościej zaimplementować taką kolejkę? (nie wiem jak to się ma komunikować)

Trochę bez sensu implementować samemu. Trochę tak jakby implementować samemu bazę danych.

  1. Jeśli nie chcę implementować takiej kolejki samemu to z czego skorzystać żeby było modne i proste? Kafka? Fuse?
  • Fuse jest od oparty o JBossa więc nie może być modny
  • Kafka jest prawdopodobnie najmodniejsza kolejką (zaraz zacznie się dyskusja że Kafka nie jest kolejką :D, ale jest używana często w miejsce kolejki)
  • RabbitMQ jest prawdopodobnie najmodniejszą implementacją AMQP i MQTT

edytowany 3x, ostatnio: KamilAdam, 2020-03-27 14:31

Pozostało 580 znaków

2020-03-27 14:13

Rejestracja: 12 lat temu

Ostatnio: 9 godzin temu

0

Ok, jak do nauki to spoko. Patent na powtarzalną konfigurację klientów jest taki, że możesz zrobić albo libkę, albo Spring Bootowy starter, który dostarczy odpowiednie beany i umożliwi ich dokofigurowanie.
Nie rozumiem natomiast jak Consumer i Producer mogą mieć tę samą logikę, to mi się nie klei. Odnośnie kolejki to warto sobie rozpoznać Kafkę i jak ch***owo się z nią integruje (chyba, że użyjesz nakładki tymu spring-kafka) oraz RabbitMQ, ponieważ nie każdy używa Kafki jako kolejkę. Oba podejścia będą wymagać przeczytania dokumentacji i zrozumienia bebechów - moim zdaniem wartościowe ćwiczenie.


IT mikromenadżer

Pozostało 580 znaków

2020-03-28 00:36

Rejestracja: 4 lata temu

Ostatnio: 3 godziny temu

2

modnie - kafka
prosto - rabbitmq


#define true (rand() % 2)

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0