Dude.....You have cleared my all doubts almost by this series of videos on this application, I was struggling a lot from long to learn micro service complete flow end to end. Thanks for your great work...god bless you :)
HI gaurav are u working on micro services now? i am strucked ann issue while calling the yahoo api for getting stock quotes. The problem is like when we are passing a quote like "GOOG" to get method of Yahoo finance i am getting index out of bound exception. i am not sure why it is happening.Could you please help me out?
@@sarojsahoo8763 it's been seven months ji. Any way thanks for the reply..it got resolved 😊. Now I want to learn react . Can u suggest me a good source?
To be really honest: Initial mindset: 1. I wasn't interested about 1 hour video 2. I ran thru the comments that music is little problematic. After seeing both videos: 1. Wow. 1 and 1/2 hours went like a breeze with your cool way of doing things 2. Music was kept that interesting factor rolling on, what's next you would make us know. Great Tech Primer. Thank you 🙏💕
Both videos are very nice. I think the way you are explaining is very good. What I liked most is that you are not only discussing particular topic but also dealing with exceptions occurring during execution. This way we learn quickly and confidently. Many thanks !!! Keep it up !!!
i have just started searching about microservices and i must say your the best i have ever seen .great videos..keep going .it really help full in understanding the technologies which we never work.
This is the best tutorial I have gone through. Each and every flow is well explained. This is amazing work. If you can add the spring security login and registration module to it, that would be complete package.
its a great tutorial covering all aspects. Just a constant issue that I have faced starting from its first part is that the audio moves on but the video doesn't catch up with it. I had to pause and start again from a previous second to match the video to its audio. Else its very well explained.
Hi Tech Primer, let me complement you first by saying "both the videos you posted on Micro services were simply superb". I am an AWS Architect who is learning Spring Boot from your lectures. Can you help me in resolving few questions on a complex AWS architecture diagram? I am looking forward to integrating AWS API-Gateway REST services with Spring Boot.
Awesome tutorial buddy. It was very useful in understanding all the pieces involved. FYI... the yahooFinance API version mentioned in the tutorial was not working for me. When I changed it to 3.12.3 it worked for me.
Thanks Tech primers, one of the best microservices video, given a clear picture.. I hve one doubt that hw to move this architecture on different environment i.e qc n uat
Thanks for these Informative videos. You have done a great job,it really helps me to understand the micro service and its implementation. Here if you can add the security for the REST service ,it will he great help?
Very great and clear tutorial! Thx for ur help. Just one little question: what is the difference between Eureka and Zuul? It seems like both of them all have the mapping between service name and their IP address, and they both works like DNS server
Nice work. Thank you very much. Quick question on architecture. What is the purpose of separating Quote maintenance service and DB service. For me, it looked like a single domain providing Quote service with the persistence.
Thank you. Finally got hold of something that I was looking for. Since its a two year old video, has anything changed w.r.t libraries etc. Would be great to know!
your videos are really awesome. Thank you very much. You made the developer life easy. Really appreciate your effort. Do you have any video on how to deploy microservices, eureka and hystrix in cloud foundry or docker ? I saw you deploying helloworld in cloud foundry. If possible please create a video. Thanks again. Keep up the good work.
I got it. I was able to deploy eureka server and client. But I was able to deploy only 2 apps due to memory issue. I would like to deploy at least 3, any idea how can we do it in free edition? Thank you.
Hi Ajay, thanks for this wonderful tutorial...it truly gave a holistic picture about microservices! BTW is running micro services that resource intensive? and what machine config would you recommend to check this out..I am currently using a virtual machine for all my personal development..do you think that would suffice?
Hi Ancel, very good question. Yes. It's bit resource intense since you will be running multiple JVMs. If you have a 8Gb VM let's say, it's more than enough to run 5 to 6 Microservices which hav 1gb memory each. However if you can stil manage with 512mb, its more than enough. I don't know how does it fair with AWS w.r.t cost. Also since these are Microservices you don't a single VM. Instead u can hav multiple VMs and can scale whenever you need them
Thank you for the video, one doubt why have you hardcoded url in zuul. Why cannot we use the application names as we did in the stock-service for using the db-service?
Nice video. Can we fire up multiple instances of Stock Service? so that when one service is down or there is too much load then the other will respond. If so, Is there an additional configuration that needs to be setup? What is the optimal way of handling the situation instead of sending error messages to the user?
Yes. You need to use Ribbon for load balancing in that case. Yes. there is additional config. For the error handling, you can use Hystrix and return empty response or something similar to make sure error is not propagated to the user
Hi Ajay. I have watched the part 1 and its really really helpful in this part i am strucked an issue while calling the yahoo api for getting stock quotes. The problem is like when we are passing a quote like "GOOG" to get method of Yahoo finance i am getting index out of bound exception. i am not sure why it is happening.Could you please help me out?
I had a question regarding hibernate. In any booking system If multiple users select the same seat. How to handle it in the backend so that only one user gets the seat
Hi team, first of all..thank you all for these great videos. I'm starting with these technologies using your videos only. But I am having a problem in service registration here. Services are being registered and visible in the Eureka Dashboard, but i am not able to access db-service using it's application name. It's giving me the UnknownHostException: db-service
Hi Shubham, please check how you are creating the RestTemplate. It needs to be auto-wired rather than new RestTemplate(). If you autowire SpringBoot will take care of replacing the db-service name with the relevant host and routes it
this is the exception that i'm getting: ResourceAccessException: I/O error on GET request for "db-service/rest/db/shubham": db-service; java.net.UnknownHostException: db-service But when i use the localhost:8089 (port of db-service) in StockResource class, everything is working then..please help...
Great video!!!. Music is really annoying though. Your presentations are great in themselves. There is no need for background music. It's really distracting
Thanks for such a informative video. I have question. Is there any way we can determine whether zuul is hitting appropriate service. It would be helpful if you could provide code snippet or a way to achieve this. Thanks
Hi I have a question. If UI hits Gateway to microservice directly (stock Service or dB service) and from here if they lookup in Eureka service discovery for communication between Microservices then what is the point if particular micro service is down or not available or port changed then gate way ips of service has to be changed and redeploy ? I believe api gateway should hit or interact with Eureka service discovery for look up micro service rite ? Please advise
One question.... can we create a separate microservice for ZUUL at some other port, with its own yml file and integerate it with EUREKA server registry ?? that will decouple the EUREKA and ZUUL
Thanks Tech Primers... This was an awesome tutorial and the best part was you were doing it live. Have one more question. how to do Transaction Management in microservice environment. you explained about hystrix and that is to avoid sending the exception to front end. So is there other technology for Microservice transaction management ? ?
Why we need both Api gateway and service registry i didn't understood . you are calling services directly from Api gateway (Api->service then service to service gateway,why not Api->service registry->service?). if you would have called service registry from Api gateway then it would have made sense .please explain.
Hi Rk, You can take a look at this article which has very nice explanation medium.com/microservices-in-practice/service-mesh-vs-api-gateway-a6d814b9bf56
Could you please explain why we need Eureka server / clients? Because zuul proxy settings we already defined the routes path: /db-service/** url: localhost:8300 So without Eureka if we hit our REST endpoint like so http:localhost:8302/db-service/rest/db/{name} would zuul still successfully reach the endpoint?
Trying the microservice design on H2 internal Database , getting an error which is taking hours to resolve : com.sun.jersey.api.client.ClientHandlerException: org.apache.http.conn.ConnectTimeoutException: Connect to localhost:8761 timed out at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1] at com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter.handle(DynamicGZIPContentEncodingFilter.java:48) ~[eureka-core-1.6.2.jar:1.6.2] The Eureka server looks good at 8302 , however when I start the DB service I get this error - is there a way to resolve this ? Application Properties in DB service : spring.application.name=db-service #server.port=8300 [[this is commented as it throws error][ spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE spring.h2.console.enabled=true spring.h2.console.path=/h2console spring.datasource.username=sa spring.datasource.password= spring.datasource.driverClassName=org.h2.Driver spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
I'm getting the following error when trying to run eureka-service. Help is highly appreciated! Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'org.springframework.cloud.netflix.zuul.ZuulProxyAutoConfiguration': Unsatisfied dependency expressed through field 'zuulProperties'; nested exception is org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'zuul-org.springframework.cloud.netflix.zuul.filters.ZuulProperties': Could not bind properties to 'ZuulProperties' : prefix=zuul, ignoreInvalidFields=false, ignoreUnknownFields=true; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'zuul.routes' to java.util.Map 2019-01-10 16:48:28.282 INFO 53629 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2019-01-10 16:48:28.287 WARN 53629 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat 2019-01-10 16:48:28.299 INFO 53629 --- [ main] ConditionEvaluationReportLoggingListener :
Awesome demo :) I'm working in spring boot web project calling third party server and pushing orders created from our UI calling the api access. But my concern is I'm pushing 100 orders at a time when it's pushing api server may go down and order creation may stop in between. So I want to push all orders into somewhere and pushing each item to api server. When it's down still orders will be in cache offline and when server is up it has to take orders from the cache instead user uploading from the beginning. Pls suggest
+balraj s you can use JMS queue to solve that problem. Check my video on ActiveMq. It's a queue implementation. Messages are stored inside the queue. So that even if the process guess down the messages will be in the active mq topic
Thanks for the nice Tutorial. How we will deploy microservices in cloud foundry ? How they will interact with each other as cloud foundry will provide some wrapper like springbootservices.org over application as we have used to call microservices with feign client or resttemplate. Hope i am able to explain my query to you properly.
you can deploy to CF using Jenkins of any Continuous Integration tools. For the wrapper, you can create a Load balancer which does this routing. In general, Discovery Servers are useful for interprocess communication, in CF, you will not be using the port numbers instead the "app-name..com"
If we have Eureka server for service registry and using bootstrap.properties given name to each micro-service and using that name for communication between various micro-services? Please rectify me if i am wrong. Then they can communicate with each other or we need "app-name..com" in each micro service communicating with other microservices.
If you can upload tutorial regarding deploying micro-services on cloud foundry using service registry, Zuul and any 2 micro-services communicating with each other It will be really helpful. Thanks in advance
Hey, I have created the complete application but from YahooFinanceAPI the response are coming null. I have used the same version as mentioned in the video. Inside the YahooFinance class, there is getQuotes() - where we have StockQuotesRequest request = new StockQuotesRequest(query);. then List quotes = request.getResult();. Here the request don't generate getResult().. And I'm getting timeout exception. Please help
So all these services should have their own security mechanism? You have 4 hops almost before the data goes to DB and each hop is a service, so each hop should have its own oAuth/JWT auth?
Sorry another question buddy, load balancing of eureka service how does it work, what would be the url that goes into api gateway.. I looked at your channel but couldn’t find the video on load balancing in this design pattern. Could you please point me to it
In spring boot 2 Is anyone getting com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused)? Both db-service and stock-service is working in eureka dashboard but I get this connection refused like ever 2 minutes..
Hi Ajay. Currently i am only running db-service and eureka service discovery and accessing db-service thru postman by hitting load balance URL (localhost:8302/api/db-service/rest/db/add) & it works. But If I create multiple instance of db-service (2 instance with different ports) how can i make sure the request is load balanced between 2 instances of db-service. I tried to give comma separated value for list of urls in zuul route url property but that didn't worked. . Can you please advise on how to load balancing only this?