<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Ribbon on Java &amp; Moi</title><link>https://javaetmoi.com/tags/ribbon/</link><description>Recent content in Ribbon on Java &amp; Moi</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Thu, 28 Nov 2019 08:37:31 +0000</lastBuildDate><atom:link href="https://javaetmoi.com/tags/ribbon/feed.xml" rel="self" type="application/rss+xml"/><item><title>Désendettement de Spring Cloud Netflix</title><link>https://javaetmoi.com/2019/11/desendettement-de-spring-cloud-netflix/</link><pubDate>Thu, 28 Nov 2019 08:37:31 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2045</guid><description>&lt;p&gt;&lt;a href="https://javaetmoi.com/wp-content/uploads/2019/11/spring-cloud-netflix.png"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_external image_processed"
width="225"
height="225"
src="https://javaetmoi.com/spring-cloud-netflix_1305183779605428790.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;Le projet &lt;a href="https://spring.io/projects/spring-cloud-netflix"&gt;Spring Cloud Netflix&lt;/a&gt; facilite l’intégration de différents projets de la suite &lt;a href="https://netflix.github.io/"&gt;Netflix OSS&lt;/a&gt; dans des applications Spring Boot / Spring Cloud : Eureka, Zuul 1, Ribbon, Hystrix, Archaius, Feign. Jusqu’en 2018, le projet &lt;a href="https://github.com/spring-petclinic/spring-petclinic-microservices"&gt;Spring Petclinic Microservices&lt;/a&gt; dont j’assure la maintenance utilisait ces 4 premiers projets.&lt;/p&gt;
&lt;p&gt;Or, certains des projets historiques de Netflix OSS ne sont plus activement développés. Ils sont rentrés en mode maintenance. C’est notamment le cas d’ &lt;a href="https://github.com/Netflix/Hystrix#hystrix-status"&gt;Hystrix&lt;/a&gt;, de Zuul 1 et de Ribbon. En décembre 2018, lors de l’annonce de la &lt;a href="https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now"&gt;sortie de Spring Cloud Greenwich RC1&lt;/a&gt;, Pivotal recommande de migrer vers des projets tiers et de nouveaux modules Spring Cloud :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anciennement****Solutions cibles&lt;/strong&gt; Hystrix &lt;a href="https://github.com/resilience4j/resilience4j"&gt;Resilience4j&lt;/a&gt;Hystrix Dashboard / Turbine &lt;a href="https://micrometer.io/"&gt;Micrometer&lt;/a&gt; + Monitoring System Ribbon &lt;a href="https://cloud.spring.io/spring-cloud-static/spring-cloud-commons/2.2.0.RC2/reference/html/#spring-cloud-loadbalancer"&gt;Spring Cloud Loadbalancer&lt;/a&gt; Zuul 1 &lt;a href="https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.0.RC2/reference/html/"&gt;Spring Cloud Gateway&lt;/a&gt; Archaius 1 Spring Boot external config + Spring Cloud Config&lt;/p&gt;
&lt;p&gt;Dans le cadre de Spring Petclinic Microservices, seul Eureka est épargné et continue de jouer son rôle d’annuaire de service. Un désendettement vers &lt;strong&gt;Resilience4j&lt;/strong&gt;, &lt;strong&gt;Micrometer&lt;/strong&gt;, &lt;strong&gt;Spring Cloud Loadbalancer&lt;/strong&gt; et &lt;strong&gt;Spring Cloud Gateway&lt;/strong&gt; s’est naturellement imposé (issue &lt;a href="https://github.com/spring-petclinic/spring-petclinic-microservices/issues/117"&gt;#117&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Cet article retrace les différentes étapes de
migration. J’espère qu’il vous sera utile si vous avez le même chemin à
parcourir.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Désendettement de Spring Cloud Netflix"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2019/11/spring-cloud-netflix.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Architecture Microservices avec Spring Cloud</title><link>https://javaetmoi.com/2018/10/architecture-microservices-avec-spring-cloud/</link><pubDate>Thu, 04 Oct 2018 05:58:31 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1869</guid><description>&lt;p&gt;Dans ce billet, j’aimerais vous présenter les différentes briques techniques permettant de mettre en œuvre une &lt;a href="https://martinfowler.com/articles/microservices.html"&gt;&lt;strong&gt;architecture microservices&lt;/strong&gt;&lt;/a&gt; reposant sur &lt;strong&gt;Spring Boot&lt;/strong&gt;, &lt;strong&gt;Spring Cloud&lt;/strong&gt;, &lt;strong&gt;Netflix OSS&lt;/strong&gt; et &lt;strong&gt;Docker&lt;/strong&gt;. Pour m’y aider, je m’appuierai sur l’application démo &lt;a href="https://github.com/spring-petclinic/spring-petclinic-microservices"&gt;&lt;strong&gt;Spring Petclinic Microservices&lt;/strong&gt;&lt;/a&gt; que je vous avais déjà brièvement présenté &lt;a href="http://javaetmoi.com/2016/12/les-forks-de-spring-petclinic/"&gt;en 2016&lt;/a&gt; et que j’ai récemment migrée vers Spring Cloud Finchley et Spring Boot 2.&lt;/p&gt;
&lt;p&gt;Ce fork a été construit à partir de l’application monolithique &lt;a href="https://github.com/spring-petclinic/spring-petclinic-angularjs"&gt;spring-petclinic-angularjs&lt;/a&gt;. Cette dernière a été découpée en plusieurs services, chacun responsable d’un domaine métier de la clinique vétérinaire : les animaux et leurs propriétaires, leurs visites à la clinique et les vétérinaires.&lt;/p&gt;
&lt;p&gt;Au final, Spring Petclinic Microservices est construit autour de &lt;strong&gt;petits services indépendants&lt;/strong&gt; (quelques centaines de ligne de code), s’exécutant dans &lt;strong&gt;leur propre JVM&lt;/strong&gt; et communiquant sur HTTP via une &lt;strong&gt;API&lt;/strong&gt; &lt;strong&gt;REST&lt;/strong&gt;.
Ces microservices sont tous écrits en &lt;strong&gt;Java&lt;/strong&gt;. Mais on aurait pu utiliser &lt;strong&gt;Kotlin&lt;/strong&gt; pour développer certains d’entre eux. Le front est quant à lui codé en &lt;strong&gt;JavaScript&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="architecture-technique"&gt;Architecture technique&lt;/h2&gt;
&lt;p&gt;Pour fonctionner, les différents microservices composant l’application Petclinic reposent sur différentes briques techniques matérialisées sur le diagramme d’architecture ci-dessous :&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2018/09/Diapositive1.jpg"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2018/09/2018-08-24-Architecture-microservices-avec-Spring-Cloud.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="2018-08-24-Architecture-microservices-avec-Spring-Cloud"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2018/09/2018-08-24-Architecture-microservices-avec-Spring-Cloud.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item></channel></rss>