You are on page 1of 8

Whati

sMi
croser
vices?

I
tisaki
ndofar
chi
tect
ural
sty
lewhi
chst
ruct
uresanappl
i
cat
ionasacol
l
ect
ionofSer
vices
Adv
ant
age-
Theyar
eloosel
ycoupl
ed.
I
ndependent
lydepl
oyabl
e.

Whati
sthedi
ff
erencebet
weenMonol
i
thi
cappl
i
cat
ion&mi
croser
vicesappl
i
cat
ion?
I
nCaseofMonol
i
thi
cweconsi
derwhol
epr
ojectasasi
ngl
ecode-
base&hencewedepl
oy
t
hewhol
eappasasi
ngl
ewarfi
l
e.
Butwheni tcomestoMi cr
oser
vicesappli
cat
ion,eachoftheserv
iceisconsideredasa
separ
atecode-
base&hencewedepl oyasepar
atewarfi
lef
oreachcode-
base(servi
ce).

Not
e
1.Weneedt
ocr
eat
easepar
atespr
ingbootpr
ojectf
orev
erymi
croser
vicei
nthepr
oject
2.We need the separ
atet
omcati
nst
ances f
orr
unni
ng each oft
he appl
i
cat
ion
i
ndependent
ly.
3.Formi cr
oserv
icest
o communi
cat
ewi
theach ot
her, wewi
l
luseSpr
ing-
cloud
[
EurekaServ
er]
.
4.Eur
ekaSer
vercanbeconsi
der
edasaDi
scov
eryser
ver
.
5.ForMi cr
oserv
icest
ocommuni
cat
ewi
theachot
her
,wehav
etor
egi
stert
hem ont
his
EurekaServ
er.
6.Her
eeachMi
croser
vicewi
l
lbet
heCl
i
entf
ort
heEur
ekaSer
ver
.
Exampl
e-
I
tisKi
ndofsi
tewhi
chwi
l
ldi
spl
ayt
heent
ir
ePr
oductt
hatEnd-
Userhaswat
ched.

Mi
croser
viceexampl
e-
packagecom.
exampl
e.demo;

i
mpor
tor
g.spr
ingf
ramewor
k.boot
.Spr
ingAppl
i
cat
ion;
i
mpor
tor
g.spr
ingf
ramewor
k.boot
.aut
oconf
igur
e.Spr
ingBoot
Appl
i
cat
ion;
i
mpor
tor
g.spr
ingf
ramewor
k.cl
oud.
net
fl
ix.
eur
eka.
Enabl
eEur
ekaCl
i
ent
;

@Spr
ingBoot
Appl
i
cat
ion
@Enabl
eEur
ekaCl
i
ent
publ
i
ccl
assPr
oduct
Ser
viceAppl
i
cat
ion{

publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
Spr
ingAppl
i
cat
ion.
run(
Product
Ser
viceAppl
i
cat
ion.
class,
args)
;
}

packagecom.
exampl
e.demo.
cont
rol
l
er;

i
mpor tj
av a.ut
il
.Ar
rayLi
st;
i
mpor tj
av a.ut
il
.Li
st;
i
mpor torg.spri
ngfr
amewor k.
web.bi
nd.
annot
ati
on.
GetMapping;
i
mpor torg.spri
ngfr
amewor k.
web.bi
nd.
annot
ati
on.
RequestMapping;
i
mpor torg.spri
ngfr
amewor k.
web.bi
nd.
annot
ati
on.
RestContr
oll
er;
@RestCont rol
ler
publ
icclassPr oductCont
roll
er{

@GetMappi ng("/
li
st"
)
publ
icList<St
ring>getRat
ingLi
st(
){
List<Str
ing>li
st=newAr rayLi
st<>(
);
l
i
st.add(
"mobil
e")
;
l
i
st.add(
"l
aptop"
);
r
eturnli
st;
}

Appl
i
cat
ion.
proper
ti
es

spr
ing.
appl
icat
ion.
name=pr
oduct
ser
vice
ser
ver.
port
=8083

pom.
xml

<?xml v
ersion=" 1.0"encodi ng=" UTF-8"?>
<proj
ectx mlns=" http://mav en.apache.or g/ POM/ 4.0.
0"
xmlns: x ="
si http://www. w3. or
g/2001/ XMLSchema- instance"
xsi:
schemaLocat on="
i http://mav en. apache. org/
POM/ 4.0.0
htt
ps://mav en.apache. org/xsd/ mav en-4. 0.0.xsd">
<model Ver sion>4. 0.0</ model Versi on>
<parent>
<gr oupI d>or g.springframewor k.boot</groupId>
<ar ti
fact I
d>spr i
ng-boot -
starter -parent</art
if
act I
d>
<v ersion>2. 3.4.RELEASE</ v er sion>
<relat i
vePat h/ ><!--lookuppar entfrom repository--
>
</parent >
<groupId>com. velocity</groupId>
<arti
fact I
d>Mi croser v i
ceDemos</ ar ti
factI
d>
<version>0. 0.1-SNAPSHOT</ version>
<name>Mi croser vi
ceDemos</ name>
<descr i
ption>mr cspr ojectf orSpr ingBoot </descri
pt i
on>

<pr
opert
ies>
<j
av a.version>1.8</
java.
ver
sion>
<spring-cloud.versi
on>Hoxt
on.SR9</
spr
ing-
cloud.
ver
sion>

</
proper
ti
es>

<dependencies>
<dependency >
<groupId>org.
spri
ngframework.boot
</gr
oupI
d>
<arti
factI
d>spri
ng-boot-
star
ter
-web-
ser
vices</art
if
actId>
</
dependency
>

<!-
-
ht
tps:
//mvnrepository.com/ arti
fact
/org.spri
ngframewor k.cloud/spr
ing-
cl
oud-st
art
er-netf
li
x -
eur eka-cl
ient--
>
<dependency >
<gr oupId>or g.
spri
ngframewor k.cloud</groupId>
<ar ti
factId>spri
ng-cl
oud- st
art
er -
netfl
ix-
eureka-
cl
i
ent</ar
ti
factId>
<v ersion>2.2.4.
RELEASE</ version>
</dependency >

<dependency >
<groupId>org.
spri
ngframework.boot
</groupI
d>
<arti
factI
d>spri
ng-boot-
star
ter
-t
est</ar
ti
factI
d>
</dependency >
</
dependencies>

<dependencyManagement >
<dependencies>
<dependency >
<groupId>org.spri
ngf r
amework.cloud</groupI
d>
<arti
factI
d>spr i
ng-cl
oud-
dependencies</art
if
actId>
<version>${spri
ng-cloud.
ver
sion}</versi
on>
<type>pom</ type>
<scope>impor t</scope>
</dependency >
</dependencies>
</dependencyManagement >

<buil
d>
<plugins>
<plugin>
<gr
oupId>org.
spri
ngframework.boot
</groupId>
<ar
ti
factI
d>spri
ng-boot-
maven-plugi
n</art
if
actI
d>
</plugin>
</plugins>
</bui
ld>

</
proj
ect
>
Not
e-t
estt
heser
viceusi
ngpost
manwhet
hery
ouwi
l
lgetpr
operr
equestandr
esponse.

Howt
osetupEur
ekaSer
ver
.
packagecom.
exampl
e.demo;

i
mpor
tor
g.spr
ingf
ramewor
k.boot
.Spr
ingAppl
i
cat
ion;
i
mpor
tor
g.spr
ingf
ramewor
k.boot
.aut
oconf
igur
e.Spr
ingBoot
Appl
i
cat
ion;
i
mpor
tor
g.spr
ingf
ramewor
k.cl
oud.
net
fl
ix.
eur
eka.
ser
ver
.Enabl
eEur
ekaSer
ver
;

@Spr
ingBoot
Appl
i
cat
ion
@Enabl
eEur
ekaSer
ver
publ
i
ccl
assEur
ekaSer
ver
Appl
i
cat
ion{

publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
Spr
ingAppl
i
cat
ion.
run(
Eur
ekaSer
ver
Appl
i
cat
ion.
class,
args)
;
}

Appl
i
cat
ion.
proper
ti
es

ser
ver.
port=8761
eur
eka.cl
i
ent.
regi
ster
-wi
th-
eur
eka=f
alse
eur
eka.
cli
ent
.f
etch-
regi
str
y=f
alse

pom.
xml
fil
e
<?xml v
ersion=" 1.0"encodi ng=" UTF-8"?>
<proj
ectx mlns=" http://mav en.apache.or g/ POM/ 4.0.
0"
xmlns: x ="
si http://www. w3. or
g/2001/ XMLSchema- instance"
xsi:
schemaLocat on="
i http://mav en. apache. org/
POM/ 4.0.0
htt
ps://mav en.apache. org/xsd/ mav en-4. 0.0.xsd">
<model Ver sion>4. 0.0</ model Versi on>
<parent>
<gr oupI d>or g.springframewor k.boot</groupId>
<ar ti
fact I
d>spr i
ng-boot -
starter -parent</art
if
act I
d>
<v ersion>2. 3.5.RELEASE</ v er sion>
<relat i
vePat h/ ><!--lookuppar entfrom repository--
>
</parent >
<groupId>com. velocity</groupId>
<arti
fact I
d>eur eka- server</ ar
tif
act Id>
<version>0. 0.1-SNAPSHOT</ version>
<name>eur eka- serv er</name>
<descr i
ption>mr cspr ojectf orSpr ingBoot </descri
pt i
on>

<properti
es>
<java.version>1.8</
java.
ver
sion>
<spring-cloud.versi
on>Hoxt
on.SR9</
spr
ing-
cloud.
ver
sion>
</propert
ies>

<dependenci
es>

<dependency >
<groupId>org.
spri
ngframework.boot
</groupId>
<arti
factI
d>spri
ng-boot-
star
ter
-web</art
ifact
Id>
</dependency >

<dependency >
<groupId>org.
spri
ngframework.
cloud</gr
oupId>
<arti
factI
d>spri
ng-cl
oud-st
art
er-
netfl
ix-
eureka-
ser
ver
</ar
ti
fact
Id>
</dependency >

<!
--
ht
tps:
//mvnrepository.com/ arti
fact
/org.spri
ngframewor k.cloud/spr
ing-
cl
oud-st
art
er-netf
li
x-eur eka-cl
ient--
>
<dependency >
<gr oupId>or g.
spri
ngframewor k.cloud</groupId>
<ar ti
factId>spri
ng-cl
oud- st
art
er -
netfl
ix-
eureka-
cl
i
ent</ar
ti
factId>
<v ersion>2.2.4.
RELEASE</ version>
</dependency >

<dependency >
<groupId>or g.springf
ramewor k.boot</
groupId>
<arti
factId>spr i
ng-boot-
starter
-test
</art
ifactI
d>
<scope>t est</scope>
<exclusions>
<ex clusion>
<gr oupId>or
g.junit
.vi
ntage</groupId>
<ar ti
factI
d>j
unit-vi
ntage-
engine</arti
fact
Id>
</excl usion>
</exclusions>
</dependency >

</
dependenci
es>

<dependencyManagement >
<dependencies>
<dependency >
<groupId>org.spri
ngf r
amework.cloud</groupI
d>
<arti
factI
d>spr i
ng-cl
oud-
dependencies</art
if
actId>
<version>${spri
ng-cloud.
ver
sion}</versi
on>
<type>pom</ type>
<scope>impor t</scope>
</dependency >
</dependencies>
</dependencyManagement >

<bui
l
d>
<pl
ugi
ns>
<plugin>
<gr
oupId>org.
spri
ngframework.boot
</groupId>
<ar
ti
factI
d>spri
ng-boot-
maven-plugi
n</art
if
actI
d>
</plugin>
</
plugi
ns>
</
bui
l
d>

</
proj
ect
>

Opent
hebr
owserandt
ypebel
owur
l
htt
p//l
ocal
host
:8761andhi
tur
landseet
hemi
croser
vicewi
l
lber
egi
ster
edwi
theur
eka
serv
er.

You might also like