Microservices tutorial with Spring boot 3 | Full course

Поделиться
HTML-код
  • Опубликовано: 18 июн 2024
  • #microservices #microservicestutorial #springframework #springboot #aliboucoding #alibou #springboot_3
    🎁 Spring Data JPA course: aliboucoding.com/p/the-full-g...
    🎁 🚀 COUPON Code: EARLYBIRD20
    Discover the power of microservices architecture in this in-depth course, designed to provide you with a thorough understanding of building, deploying, and scaling modern applications. Through a blend of theory and practical examples, you'll explore essential concepts such as API Gateway, Config Server, Discovery Server, and hands-on implementation of two real-world microservices, Student and School.
    Throughout this extensive course, you'll:
    Understand the fundamentals of microservices architecture and its advantages over monolithic applications.
    Implement an API Gateway to centralize and manage requests, providing a single entry point for your microservices ecosystem.
    Utilize a Config Server to enable centralized configuration management, simplifying application maintenance and consistency across environments.
    Leverage a Discovery Server for efficient service registration and discovery, ensuring seamless service-to-service communication.
    Develop two practical microservices, Student and School, to understand the nuances of designing and building modular services.
    Explore communication between microservices using OpenFeign, an easy-to-use, declarative REST client.
    Enhance application observability and debugging with distributed tracing using Zipkin, allowing you to visualize and troubleshoot latency issues.
    Learn best practices for securing, monitoring, and deploying microservices in production environments.
    By the end of this comprehensive course, you'll have mastered essential microservices concepts, techniques, and tools, empowering you to create and deploy sophisticated, distributed applications with increased efficiency and confidence. Whether you're a developer, architect, or DevOps engineer, this course will equip you with the skills to successfully navigate and thrive in the world of microservices.
    👉🏻 Source code: github.com/ali-bouali/springb...
    Don't Forget to
    ===========================================
    💯 Free courses here: aliboucoding.com/courses
    💯 Subscribe to the youtube channel
    💯 Join our Discord Community - / discord
    💯 Join our Facebook Group - / 589612651142975
    💯 Join our Instagram: / alibou_coding
    Table of content
    00:00 Intro
    02:15 Microservices architecture
    05:40 Prepare the monorepo workspace
    06:41 Create the API Gateway micro service
    09:52 Create the Discovery (Eureka) service
    06:41 Create the API Gateway micro service
    10:57 Create the Config server
    11:32 Configure the discovery server
    16:10 Create and implement the Student micro service
    27:48 Create and implement the School micro service
    34:49 Establish an HHTP communication between the two micro services
    49:38 Configure and test the API Gateway
    55:25 Distribute the configuration
    01:02:14 Distribute the tracings to Zipkin

Комментарии • 226

  • @BoualiAli
    @BoualiAli  10 месяцев назад +1

    Join the Micro Services course waiting list and get and get an exclusive *EARLY-BIRD discount*
    aliboucoding.ck.page/d0f9317e13

  • @mauricehk77
    @mauricehk77 6 месяцев назад +1

    Many many thanks for your demo project!! I could run your project on my machine perfectly. Very high quality!

  • @AbhishekKumar-hr7op
    @AbhishekKumar-hr7op 8 месяцев назад

    Thank you so much, Man!! You deserve lots of appreciation.

    • @BoualiAli
      @BoualiAli  8 месяцев назад

      Glad I could help!

  • @okomayinamos6532
    @okomayinamos6532 3 месяца назад

    Thank you for this wonderful video, very precise, understandable and straight to the point

    • @soussivic7437
      @soussivic7437 3 месяца назад

      hey, bro.. the stuff about config server worked for you?

  • @faresbelaid4828
    @faresbelaid4828 Год назад +1

    like before watching .. thi9a fel mantouj ya3tek saha bro

    • @BoualiAli
      @BoualiAli  Год назад +1

      I really appreciate that bro

  • @user-qh2uc1bu1o
    @user-qh2uc1bu1o 11 месяцев назад

    The best guide, which I have ever seen, thx you a lot, really good job!

    • @BoualiAli
      @BoualiAli  11 месяцев назад

      Glad you liked it!

  • @andrew_755
    @andrew_755 9 месяцев назад

    It was incredible, thank you so much!!

    • @BoualiAli
      @BoualiAli  9 месяцев назад

      Glad you liked it!

  • @stevegathara8885
    @stevegathara8885 10 месяцев назад

    I have followed this tutorial successfully. It's a such helpful resource. Keep making more and more.

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      Thank you, I will

  • @princecodes5875
    @princecodes5875 4 месяца назад +2

    It's insane how good you explained this difficult topic

  • @manuonda
    @manuonda 10 месяцев назад

    Thank so much! It's amazing!

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      I'm glad you like it

  • @poorpanda9033
    @poorpanda9033 6 месяцев назад +1

    What an Amazing Course this was! Had few errors along the way but managed to fixed them. Your teaching style is incredible. Thanks a lot

    • @BoualiAli
      @BoualiAli  5 месяцев назад

      Great to hear!

  • @AadiManchekar
    @AadiManchekar 5 месяцев назад +3

    Thanks for this video!
    the gateway applica.yaml part i modified, as of today (20th Jan 2024) when i built this project,
    instead of
    spring.cloud.gateway.routes i did spring.cloud.gateway.mvc.routes
    i dont the exact reason but i think the first one requires spring web flux (reactive) and later one is based on our synchronous spring web
    Feel free to correct me if im wrong.

  • @waeljadla9688
    @waeljadla9688 Год назад +7

    Amazing job as usual !! bravo Ali Hopefully there is a second part with Async Communication or monitoring prometheus grafana etc...

    • @BoualiAli
      @BoualiAli  Год назад +9

      Good idea, will schedule it

    • @JanNdungu
      @JanNdungu 6 месяцев назад

      @@BoualiAli Thank you kind sir, plus Keycloak in microservices, right? :)

  • @rudneydedy5264
    @rudneydedy5264 Год назад +1

    Felicitation pour ce bon travail et Merci beaucoup vraiment Java 17 et Spring Boot 3❤

  • @ArpanSardar
    @ArpanSardar 9 месяцев назад

    You're awesome! I sincerely thank you for making such great contents.

    • @BoualiAli
      @BoualiAli  9 месяцев назад

      Glad you like them!

  • @MauricioHernandezReyes
    @MauricioHernandezReyes 10 месяцев назад +1

    Awesome tutorial, thanks for your time and dedication

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      Glad you like it!

  • @user-tv7nu9vx5o
    @user-tv7nu9vx5o 10 месяцев назад

    great work! thank you!

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      Glad you liked it!

  • @jesusz.8367
    @jesusz.8367 6 месяцев назад +1

    Nice tutorial. I don't really understand the process of creating/setting up postgresql with docker. Is there a separate docker container for both the student and school service?

  • @maxd7228
    @maxd7228 10 месяцев назад +1

    All was great up until 31:02. I needed to get postgresql set up in docker for the student/school to start up. Great introduction to microservices. You've got a sub. Much appreciated.

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      Great to hear!

    • @poorpanda9033
      @poorpanda9033 6 месяцев назад

      Can you tell me the process ? I'm stuck there as well can't figure it out tried various things.
      com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure (error)

  • @merxxibeaucoup9093
    @merxxibeaucoup9093 Год назад

    Great content as always ❤... thank you

  • @marcoscanete2366
    @marcoscanete2366 Год назад

    thank you for the amazing content!

  • @fablotagong9930
    @fablotagong9930 Год назад

    Thanks for this amazing course

  • @manue117g
    @manue117g Год назад

    Excellent course thanks!

  • @sweets7092
    @sweets7092 9 месяцев назад

    Cool, I really like the way you set it up. Recently I bought some old-school microservices course on udemy, but well.. Yeah, it's outdated and I didn't process with the course. 😅

    • @BoualiAli
      @BoualiAli  9 месяцев назад

      Glad it was helpful!

  • @inesbarboura2535
    @inesbarboura2535 11 месяцев назад

    thank you , you make the best videos on youtube

    • @BoualiAli
      @BoualiAli  11 месяцев назад +1

      Wow, thank you!

  • @marinasolovieva1775
    @marinasolovieva1775 8 месяцев назад

    It's awesome! thanks a lot

    • @BoualiAli
      @BoualiAli  7 месяцев назад

      Happy you liked it!

  • @unvandy9293
    @unvandy9293 10 месяцев назад

    Thank you for sharing 😀

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      My pleasure 😊

  • @abu-dukhan
    @abu-dukhan Год назад +1

    Maasha Allah, this will be super super awesome, especially from your Ali 😁
    I didn't finish watching it yet, and I'm very sure if I watched it I'll come to make another comment in Sha Allah ❤❤❤
    Thanks once again Ali. JazaakAllahu khairan and also Eid Mabruk 🎉

    • @BoualiAli
      @BoualiAli  Год назад +1

      JZK brother.
      I'm really happy that you like my content.
      Aid Mabruk

  • @khalilbouali3480
    @khalilbouali3480 8 месяцев назад

    thanks a lot for this tutorial !

    • @BoualiAli
      @BoualiAli  7 месяцев назад

      Happy you liked it!

  • @ziedbrahmi4812
    @ziedbrahmi4812 Год назад

    Thank you!!

  • @SachinGuptaPathankot
    @SachinGuptaPathankot Год назад

    I don't have much words to say. But Simply Many Thanks for this great tutorial.

  • @radhikapadmini1632
    @radhikapadmini1632 10 месяцев назад

    Amazing video Sir. This is my first video that I am able to follow till the end and code along with you. This video answered all my questions on Spring Boot and Microservices. Now I understood how the microservices communication happens through API Gateway. Thank you so much for detailed explanation. As I am novice to Docker and Zipkin, couldn't complete this part.

    • @radhikapadmini1632
      @radhikapadmini1632 10 месяцев назад

      I am glad to inform you that I have successfully created and executed the project. This video is very helpful to understand the concepts Sir. Thank you so much.

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      Glad you liked it!

  • @marcellvaradi3490
    @marcellvaradi3490 Год назад

    I just went on RUclips to start learning a Spring Boot microservice tutorial, and boom. There are no coincidences. :D

    • @BoualiAli
      @BoualiAli  Год назад +1

      Happy you like my content.
      Nice to have you herer

  • @vino7tech
    @vino7tech Год назад

    Thank you very much for wonderful Spring Boot Microservices Tutorial. Please do video for all Microservices restapi security

    • @BoualiAli
      @BoualiAli  Год назад

      Really happy you liked it
      Sure will do it soon

  • @Leanread
    @Leanread Год назад +7

    This is my first video that i have never skipped listening till the end. it really opened my eyes about how to configure my upcoming personal project. One missing bit in this Video is you could have implemented the authentication and authorization. so that it will be a full PROD ready application. any way will catch up from your upcoming videos. thanks for this wonderful vlog.

    • @BoualiAli
      @BoualiAli  Год назад +3

      Happy you liked it.
      I will create a video for security

    • @linhtan6237
      @linhtan6237 Год назад

      @@BoualiAli hope the soon

    • @banjokoabiodun3050
      @banjokoabiodun3050 11 месяцев назад

      @@BoualiAli we will really appreciate a video on authorization and authentication on microservices

  • @samahmahdi5511
    @samahmahdi5511 2 месяца назад

    Thanks

  • @marwamnasri7914
    @marwamnasri7914 2 месяца назад

    Thnks for this

  • @seifamara3677
    @seifamara3677 8 месяцев назад

    Thank you so much

    • @BoualiAli
      @BoualiAli  7 месяцев назад

      You're most welcome

  • @YGaming18
    @YGaming18 8 месяцев назад

    well explained thank you

    • @BoualiAli
      @BoualiAli  7 месяцев назад

      Happy you liked it!

  • @khalilmarzouki636
    @khalilmarzouki636 Год назад

    great job as usual , shine brother

    • @BoualiAli
      @BoualiAli  Год назад

      thank you so much brother

  • @MG-wx8yx
    @MG-wx8yx 11 месяцев назад

    Amazing tutorial, brother.

    • @BoualiAli
      @BoualiAli  11 месяцев назад

      Glad you liked it

  • @wilsonmwangi8647
    @wilsonmwangi8647 Год назад

    Amazing job. It's very easy to understand and implement. I hope you create a microservice with security course including either the JWT or OAuth 2

    • @BoualiAli
      @BoualiAli  Год назад +1

      Happy you liked it
      I will provide one about security too

    • @wilsonmwangi8647
      @wilsonmwangi8647 Год назад

      @@BoualiAli Awesome. I Can't wait

  • @bartosztoropolski8191
    @bartosztoropolski8191 Год назад +1

    Can you show how to add authorization in the microservice? I know you have a lot of security videos, but I thought the last microservice authorization video would be very helpful and we will see the full microservice application :D

    • @BoualiAli
      @BoualiAli  Год назад +3

      I'm working on covering a lot of topics in micro services.
      Stay tuned!

  • @seifeddinemarzouga
    @seifeddinemarzouga Год назад

    thank you

  • @j.mohamed
    @j.mohamed Год назад

    Thanks Ali, nice job . Can you make version of the course with replacing of Spring config server with Kubernetes config maps and secrets instead ?

  • @farjallahhaythem5675
    @farjallahhaythem5675 Год назад

    great job congrats for this amzing work ur doing great i hope u do async Communication instead of http or mybe Grpc and if possible could u cover more of spring cloud and agian amzing presentation and information

    • @BoualiAli
      @BoualiAli  Год назад +1

      Thank you for the feedback. I will do an asynch communication video ASAP

  • @LifeOfMohammed
    @LifeOfMohammed 7 месяцев назад

    Thank you so much I have implemented it all slightly differently as to work for my use case but overall the same and these have been great tutorials and great explanations I do have a question though we do this to enable load balancing but how would that work for your applications as the server port is into the config server so if u opened up another application it would still redirect to the first one?

    • @BoualiAli
      @BoualiAli  7 месяцев назад

      An orchestrator like Kubernetes should take care of this

  • @truongnguyensy5458
    @truongnguyensy5458 18 дней назад

    Your video was wonderful sir,
    but i have a question: how can you use spring security and jwt in this project with login register sir

  • @maryamsedghimoradi
    @maryamsedghimoradi 10 месяцев назад

    awesome

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      Happy you liked it!

  • @eduardodasilva1509
    @eduardodasilva1509 Год назад +1

    Awesome video!
    Learning alot from you.
    But i have a question, how to implemente the security for the microservices arch?
    the authentication be in the gatheway or the gateway should request the auth from a service that can handle it?

    • @BoualiAli
      @BoualiAli  Год назад +1

      I will make a video about that

  • @alacherif7204
    @alacherif7204 11 месяцев назад

    Thank you Ali for this video. It is interesting.
    With this solution, every time we need to add a new microservice we need to change/deploy the gateway.
    How can we add a new microservice without changing/deploying the gateway?

    • @BoualiAli
      @BoualiAli  11 месяцев назад

      You don't need to re-deploy the gateway every time.
      Externalise the config to config server and the gateay will reload the config from there.
      That's why I added the config server patter

  • @devmail4648
    @devmail4648 10 месяцев назад +1

    Thus great lessons...You're helping many across the world....Ali, how do to host spring boot MicroServices on a Live-Server-Hosting

    • @BoualiAli
      @BoualiAli  10 месяцев назад +1

      Great suggestion!
      I will add this to my schedule

    • @devmail4648
      @devmail4648 10 месяцев назад

      @@BoualiAli thank you Ali...We're very grateful

  • @user-jp6dk4lx9y
    @user-jp6dk4lx9y 6 месяцев назад

    I thought with the help of Eureka I wouldn't have to remember which port the microservices are on, I didn't understand why you need it.

  • @XxnenuxX100
    @XxnenuxX100 2 месяца назад

    Great work Ali! Nowadays, what do you think is best for service discovery? Spring Cloud Netflix Eureka or Kubernetes? Thanks for all!

    • @BoualiAli
      @BoualiAli  Месяц назад

      Depends on your infrastructure and your technical choices

  • @linhtan6237
    @linhtan6237 Год назад

    Good job about video but can you make further one video about using message queue as kafka or rabbitmq with microservice. Thank you

  • @user-hf3hr9tp7o
    @user-hf3hr9tp7o Год назад

    Hey Bouali,
    Can you please create a detailed session on Micrometer and observability in spring boot 3 and how to connect our microservices to graphana to observer our microservices.

    • @BoualiAli
      @BoualiAli  Год назад +1

      Great suggestion.
      I will create a video for distributed monitoring using the ELK stack.
      Let me know if this is what you’re looking for

    • @codertravel99
      @codertravel99 Год назад

      @@BoualiAli yes using elk we can centralize logs only but using graphana we can monitor all microservices so pls make a detailed session on new observability api in spring boot 3 lot's of developers are looking for this

  • @alandosman5002
    @alandosman5002 Год назад

    thanks for this awesome video, its a lil late but Eid mubarak, can you please tell me what tool have you used to design the architecture?

  • @hanen2699
    @hanen2699 Год назад

    Thank you for the knowledge and skills you're sharing on your channel. Your videos have been incredibly informative and inspiring, and I've learned so much from watching them.
    I am having trouble externalizing the configuration of my discovery service, and I've encountered the same error you had precisely at 1:00:51. I'm unsure how to resolve this issue, and I would appreciate any advice or guidance you can provide.
    Thanks again

    • @BoualiAli
      @BoualiAli  Год назад

      Really happy you liked it
      Can you give more details about the issue?

    • @RochaNahuel
      @RochaNahuel 9 месяцев назад

      tengo el mismo problema ahora nada funciona

  • @caffeinejavacode1475
    @caffeinejavacode1475 Год назад

    What are the advantages and disadvantages of using bootstrap yml to set up Spring Cloud? Why don't you use bootstrap yml approach?

    • @BoualiAli
      @BoualiAli  Год назад +1

      bootstrap.yml is deprecated

  • @stevegatspaul
    @stevegatspaul Год назад +1

    Thank you brother 😀and please keep uploading videos like this, what about the front end?

    • @BoualiAli
      @BoualiAli  Год назад +1

      Thank you brother.
      I'm creating the plan for an Angular course soon

    • @tomaszgrabowski8312
      @tomaszgrabowski8312 Год назад

      @@BoualiAli Angular course for me is very important at this moment. Please Ali

    • @BoualiAli
      @BoualiAli  Год назад

      @@tomaszgrabowski8312 ASAP

  • @odigbocharlesjnr1222
    @odigbocharlesjnr1222 Месяц назад

    Thank you @Bouali. But i couldn't add the OpenFeign client to my project. Maven doesn't seem to import the dependency. What do i do?

    • @BoualiAli
      @BoualiAli  Месяц назад

      I will check the latest versions

  • @nelsoncastiblanco6966
    @nelsoncastiblanco6966 8 месяцев назад

    Excellent! But where should authentication and authorization be implemented with spring security?
    I have seen your videos, but I don't know how to implement them in that microservices architecture.

  • @andrew_755
    @andrew_755 9 месяцев назад

    thanks for the video, I wish you could answer me this question, is it not necessary to register the gateway and config server in eureka?

    • @BoualiAli
      @BoualiAli  8 месяцев назад

      Not really necessary

  • @mounirejh9559
    @mounirejh9559 4 месяца назад +1

    Hello guys, if someone has an ERROR when obtaining students by school ID, make sure when declaring the StudentClient variable in the SchoolService file, it has to be final.

  • @georgeswakeu2802
    @georgeswakeu2802 Год назад +1

    Salut Mr Ali et merci pour ces formations très importantes pour nous jeunes étudiants. Ceci dit, j'ai une question, est-ce que avec cette approche, nous pouvons toujours avoir dans le dossier config, un fichier application.(properties | yml) qui permet de centraliser toutes les propriétés communes à des microservices ?

  • @dorrakadri1474
    @dorrakadri1474 9 месяцев назад

    Thank you for your video, but I have a question concerning Git when using microservices. What's the best practice: to put each microservice in a separate repository or all in one, especially if we are using different frameworks, such as Spring Boot and Node.js, and we have a frontend app? ps:its a group work

    • @BoualiAli
      @BoualiAli  8 месяцев назад +1

      I prefer working with mono repo since I want to have all the code in one place.
      Many companies are migrating to monorepo now
      monorepo.tools/

  • @gamingbeast710
    @gamingbeast710 6 месяцев назад

    Nice ❤. Just one thing you did not show that the 2 services of students and school are no longer available on their respective ports .or does they still exposed to public??
    I mean how does the usage of gateway api hide those 2 services from being exposed to public . Please explain that point.

    • @BoualiAli
      @BoualiAli  6 месяцев назад +1

      API GW is the entry point.
      Hiding the services should be done when deploying and configuring your network (VPC / Cloud / Container, ...)

  • @jayTzanTG15
    @jayTzanTG15 8 месяцев назад

    Hi I have a question, I know that for sake of efficiency your are keeping the practices light. But should in the architecture given the Databases being two separate entities with different containers ? *IE every microservice to have its separeate independent posgres database ? Thank you

    • @BoualiAli
      @BoualiAli  7 месяцев назад

      Yes totally true

  • @alexanderbronola
    @alexanderbronola Год назад

    Very interesting video. However, I wonder if I just missed some steps about postsgresql. my student and school application won't start until I installed it and created the students and schools database manually and also set a password for the postgres default account. After both were running and tried to use postman to post the school entry, I got the following error, "ids for this class must be manually assigned before calling save():". I'm thinking that maybe I have to manually create the table first?

    • @BoualiAli
      @BoualiAli  Год назад +1

      What you did is what needs to be done as a first step.
      I assumed that everyone is capable of setting up his own working environment and have things up and running before starting.
      I will consider your input for future video and at least mention what needs to be prepared (pre-requisites) before tackling the course

  • @LifeOfMohammed
    @LifeOfMohammed 7 месяцев назад

    How would we go about implementing authentication micro service? As in diagram wise so I would want every request to go though it but some could be authorised though JWT token

    • @BoualiAli
      @BoualiAli  7 месяцев назад +1

      Implement it on the gateway

  • @breinerfranciscobatallacai8379
    @breinerfranciscobatallacai8379 11 месяцев назад

    Amazing video, let me ask you something. How zipkin works? you just put dependencies into pom.xml and automatically tracing was sent to zipkin? I mean, you didn't need to put zipkin's url into application.yaml or something like that to connect the microservices to zipkin server.. Thanks a lot.

    • @BoualiAli
      @BoualiAli  11 месяцев назад +1

      It works with the default configuration coming from the starter. You can of course override the default config. Please refer to the documentation for more info

  • @user-mq2tr5xp4w
    @user-mq2tr5xp4w 2 месяца назад

    How to implement a rollback in the microservice in the event that one of the services fails. What should be done about failed transactions that affect every microservice? Would you kindly provide advice or a video on how to handle rollbacks for each microservice's transaction?

    • @BoualiAli
      @BoualiAli  2 месяца назад

      Use SAGA pattern

  • @mariajosef5161
    @mariajosef5161 Год назад

    Nice, can you add load balancer, messaging like kafka and also caching with redis

    • @BoualiAli
      @BoualiAli  Год назад

      Nice and relevant suggestions.
      I will try to cover that asap

    • @BoualiAli
      @BoualiAli  Год назад

      Subscribe to my website and you will receive many updates.
      aliboucoding.com/courses

  • @stibtom
    @stibtom Год назад

    Isn’t it better to communicate between microservices via Eureka hostnames instead of making requests from internal network to the API gateway?

  • @t_oguz06
    @t_oguz06 9 месяцев назад

    Hello Mr. Ali i did not watch the entire video yet but i just want to ask a question. In microservices architecture how we can implement api gateway to security?

    • @BoualiAli
      @BoualiAli  9 месяцев назад

      Just apply the jwt security video to you api gateway

  • @InsureInvest
    @InsureInvest 4 месяца назад

    ❤👍

  • @Argelino_En_Espana
    @Argelino_En_Espana 2 месяца назад

    السلام عليكم
    اولا شكرا على الشرح الرائع ربنا يجعلها في ميزان حسناتك
    عندي سؤال بخصوص الحماية في الميكروسارفيس
    لقد رأيت الشرح الخاص ب jwt في قناتك
    اريد اضافة jwt في microService
    هل في كل ميكروسارفيس نضيف حماية
    ام في gatewaye فقط ؟
    و شكرا

    • @BoualiAli
      @BoualiAli  Месяц назад

      you can only add it to the gateway. But it is also recommended that each microservice needs to check and validate the token

  • @manuonda
    @manuonda 10 месяцев назад

    Can there be a discount for the country of Argentina about your courses? . Because in our country is undervalue our money.

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      please contact me via e-mail: contact@aliboucoding.com

  • @ulugbektoshmatov3433
    @ulugbektoshmatov3433 7 месяцев назад

    Assalaamu alaikum bro Ali. Thank you for all your video series which are only beneficial for us. I, as a self-learner, find your channel to be one the most useful ones to learn programming.
    However, I noticed something unusual about this microservices lesson. You are accessing api/v1/student/** endpoint both through its own port which is at 8090 and through gateway which is at 8222. I think all microservices, including student microservice, must be accessible only through gateway, when requested to other ports, 8090 or 8070 for instance, "path not found" response must be returned. And also, on Eureka server at localhost:8761, gateway did not appear as a running server like STUDENTS or SCHOOLS.
    Can you, please, make any suggestion to configure my microservice architechture so that it is only accessible though gateway? Thank you again.

    • @BoualiAli
      @BoualiAli  7 месяцев назад

      All the microservices are configure to call the API Gateway url not the service it self.
      CHeck the code (config-server)

  • @mirarima8877
    @mirarima8877 Год назад

    بارك الله فيك
    Excusez moi ,j'ai une question dans le cas d'une API Gateway, faut-il créer un filtre personnalisé pour appliquer autorisation sur les micro services ou existe-t-il une autre méthode à privilégier

    • @BoualiAli
      @BoualiAli  Год назад +1

      Tu parle de la sécurité?

    • @mirarima8877
      @mirarima8877 Год назад

      Je suis actuellement en train de chercher des informations sur le fonctionnement de la sécurité RBAC avec une API Gateway et j'aimerais approfondir mes connaissances sur ce sujet. Plus précisément, j'aimerais comprendre comment une API Gateway peut recevoir un token, le filtrer pour récupérer les rôles et diriger les requêtes en conséquence. Malheureusement, je constate qu'il y a peu de ressources disponibles sur ce sujet, la plupart étant axées sur l'utilisation de Keycloak et d'Oauth2, ce qui complique ma compréhension. Auriez-vous des suggestions de lectures ou des informations à me fournir à ce sujet ? Je vous remercie par avance pour votre aide.

  • @FranciscoQuintero-em7tr
    @FranciscoQuintero-em7tr Год назад

    Amazing video.

  • @fpldaily5172
    @fpldaily5172 Год назад +1

    mans looking directly in my soul

  • @IamKanuKingsley
    @IamKanuKingsley 11 месяцев назад

    Hey! Great Sage, please, I found out that on the video you did not show few things. Hence applications fail for some of us without extensive knowledge.
    1. On the Entities in both School & Student Micro-services. Your video didn't show that you added "GeneratedValue" on the Id
    2. On the school service when you injected the student client "private final StudentClient client;", your video didn't show when you added the "final keyword" in order to enforce the injection.
    Thank you so much for wonderful lectures. I will be signing up for your courses because you are quite skilled in impacting knowledge.

    • @BoualiAli
      @BoualiAli  11 месяцев назад +1

      I need to recheck the video. But I supposed that the viewer is familiar with Spring boot.
      If it is not the case, please watch the Spring boot for beginners video in my channel and you will have a better and clear understanding how the framework works and then this video will be like a piece of cake for you.
      Happy to have you here!

    • @IamKanuKingsley
      @IamKanuKingsley 11 месяцев назад

      @@BoualiAli are the courses on your website on time-bound access or lifetime access?
      Regards.

    • @BoualiAli
      @BoualiAli  10 месяцев назад +1

      @@IamKanuKingsley yes lifetime access

  • @l30sd
    @l30sd 3 месяца назад

    Can you please push the latest changes to the git repo that you put in the description

    • @BoualiAli
      @BoualiAli  Месяц назад +1

      Sure,
      I will release a new microservices video soon

    • @l30sd
      @l30sd Месяц назад

      @@BoualiAli Thank you, I'll turn on the notifications bell for that

    • @l30sd
      @l30sd Месяц назад

      @@BoualiAli If you could use rabitmq or something similar and explain the pros and cons of using it

  • @NextStyleNS
    @NextStyleNS 5 месяцев назад

    With circuit breaker, please

  • @rayenbenboubaker9744
    @rayenbenboubaker9744 9 месяцев назад

    why u use .yml instead of .properties ?

  • @RochaNahuel
    @RochaNahuel 9 месяцев назад

    There was no way to operate the externalization in config-server

    • @BoualiAli
      @BoualiAli  9 месяцев назад

      What is the problem?

    • @RochaNahuel
      @RochaNahuel 9 месяцев назад

      @@BoualiAli
      several days passed and avoid using the config server to be able to continue with the project since everything worked well without it but I think the error was something about
      2023-09-05T02:26:29.731-03:00 INFO 5932 --- [ main] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
      2023-09-05T02:26:29.957-03:00 INFO 5932 --- [ main] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='localhost:8761/eureka/}, exception=I/O error on GET request for "localhost:8761/eureka/apps/": Connect to localhost:8761 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: no further information

  • @chilufyaowens4872
    @chilufyaowens4872 10 месяцев назад

    Hello👋hope you are doing good, I am kindly requesting a tutorial on microservices that includes security.
    This includes securing api-gateway. secure service to service communication, access control, Creating custom filters: Use custom filters to add additional security measures to microservices. Filters used to perform tasks such as logging, auditing, and rate limiting.
    Spring Cloud Config: Use Spring Cloud Config to store the security configuration for each microservice in a centralized location to easily to manage and update the security configuration for all microservices.
    Spring Cloud Vault: Use Spring Cloud Vault to store sensitive security information, such as passwords and keys, securely. To ensures that sensitive information is not stored in plain text in configuration files.

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      Great suggestion
      Thank you

  • @user-tl5et1pg3r
    @user-tl5et1pg3r 3 месяца назад

    You cut the moment, whith adding final to studentClient.

  • @alekseyg.5133
    @alekseyg.5133 Год назад +1

    yml programming....

  • @BoualiAli
    @BoualiAli  10 месяцев назад +2

    COUPON Code: *EARLYBIRD20* => Spring Data J PA course: aliboucoding.com/p/the-full-guide-to-master-spring-boot-data-jpa

  • @seyhaphan7319
    @seyhaphan7319 Год назад

    why not use http interface?

    • @BoualiAli
      @BoualiAli  Год назад +1

      I will use in a coming video

  • @m_jdm357
    @m_jdm357 4 месяца назад +1

    The configs for gateway didn't work for me.

    • @BoualiAli
      @BoualiAli  Месяц назад

      what is the problem

    • @m_jdm357
      @m_jdm357 Месяц назад

      @@BoualiAli I don't remeber the error I encountered or why did I got it. It's possible that I've made a mistake. Either way I learned a lot and I thank you.

  • @tendaikawadza4492
    @tendaikawadza4492 Год назад

    ali boo

  • @barrymariame9817
    @barrymariame9817 Год назад

    bon cour mais on veut pour le français

    • @BoualiAli
      @BoualiAli  Год назад

      Merci, comme j'ai deja mentionne, le nouveau cours sera en Anglais mais je vais essayer d'ajouter des sous titres en francais

  • @ankushkaundal193
    @ankushkaundal193 Год назад

    How do you sound like the same as amigoscode 😟😟

    • @BoualiAli
      @BoualiAli  Год назад

      The spring security video on amigoscode channel is mine and I accepted that publishes it on his youtube channel.
      Also if you watched the introduction (which I really don’t think so) he mentioned that the video is brought to you by Alibou and he mentioned my youtube channel also.
      Also, you see my face and hear my voice on my videos so I guess you can relate that the video is mine and not amigoscode.
      Thank you for understanding

    • @BoualiAli
      @BoualiAli  Год назад

      ruclips.net/user/clipUgkxGQnio8fOuFYx8AT2URuL9efPjk2Kghe5

  • @olivierrukabo7921
    @olivierrukabo7921 Год назад

    vous nous avez abandonner nous les francophones ?

    • @BoualiAli
      @BoualiAli  Год назад +1

      Non pas du tout mon frere. Mais comme la communaute a grandit et plus de monde de partout demandent du contenu, je dois fournir du contenu en anglais (international)
      Mais j'ajouterai des sous titres en francais pour les prochaines videos

    • @olivierrukabo7921
      @olivierrukabo7921 Год назад

      @@BoualiAli Oh, je comprend, mais avec les bases qu'on a c facie aussi de s'en sortir

  • @RochaNahuel
    @RochaNahuel 10 месяцев назад

    Your videos are good but this especially you are not tidy and you do not get to understand well for those who are starting with microservices like me

    • @BoualiAli
      @BoualiAli  10 месяцев назад

      What do you mean by : not tidy?
      Did you expect something more basic than that? If yes what were your expectations?

    • @RochaNahuel
      @RochaNahuel 10 месяцев назад

      @@BoualiAli Your videos are great but in this one especially, I felt like you were going a little fast.
      Equally today I will see it again and I will understand it better sure. Thank you for the free quality content you offer , a hug!

  • @aysenzumrutsonmez3699
    @aysenzumrutsonmez3699 Год назад

    Hi sir, i get a nullPointerException even though i add @EnableFeignClients in 47:32

    • @BoualiAli
      @BoualiAli  Год назад

      can you provide more details?

    • @aysenzumrutsonmez3699
      @aysenzumrutsonmez3699 Год назад

      @@BoualiAli i fixed, thank you :)

    • @faclimbo
      @faclimbo 11 месяцев назад

      how you fix it? got the same error
      even if i add the @EnableFeignClients, still getting NUllpointer

    • @macaroane
      @macaroane Месяц назад

      in SchoolService class add class menber private final StudentClient studentClient; (he added final keyword offscreen) without final, spring boot won't autowire

  • @murilo.g.t
    @murilo.g.t 8 месяцев назад +1

    You are calling the services, even in the gateway, by passing localhost:port, wouldn't make sense to use the actual service name registered on Eureka?
    gateway:
    routes:
    - id: schools
    uri: lb://FIRST-SERVICE-NAME
    predicates:
    - Path=/schools/**
    - id: students
    uri: lb://SECOND-SERVICE-NAME
    predicates:
    - Path=/students/**

    • @BoualiAli
      @BoualiAli  8 месяцев назад

      I didn't get you question. Sorry
      Can you explain a bit more?

    • @murilo.g.t
      @murilo.g.t 8 месяцев назад

      @@BoualiAli
      In your gateway.yml you are doing:
      routes:
      - id: students
      uri: localhost:8090
      predicates:
      - Path=/api/v1/students/**
      - id: schools
      uri: localhost:8070
      predicates:
      - Path=/api/v1/schools/**
      where uri: localhost:8090 and uri: localhost:8070 will be poiting to a specific instance of these applications or a loadbalancer/vip. but since you are using eureka, you should take advantage of this service discovery and use it. it would be something like:
      spring:
      cloud:
      gateway:
      routes:
      - id: students
      uri: lb://STUDENTS-SERVICE
      predicates:
      - Path=/api/v1/students/**
      - id: schools
      uri: lb://SCHOOLS-SERVICE
      predicates:
      - Path=/api/v1/schools/**
      where lb:// will have the services name that are discovered when querying eureka. so you won't have to care about which application is in which environment/vip/host etc.. it gets automatically resolved by gateway + eureka registered services

    • @HungHocLamDev
      @HungHocLamDev Месяц назад

      @@BoualiAli i think, he mean that: your gateway routes is not use the reference from eureka (discovery service), you use the hard uri (example: localhost:8070)