Understand:
1. Why Microservice ?
2. What is Microservice ?
3. What do we( Developer,Architect, Business..etc) need ?
4. Technology Comparison
5. Microservice Features
6. Spring Boot Features
7. Microservice Communication
8. Testing
• What do we( Developer,Architect, Business..etc) need ? • Technology Comparison • Microservice Features • Spring Boot Features • Microservice Communication • Testing • Demo
projects into smaller, independent, and loosely coupled modules. Individual modules are responsible for highly defined and discrete tasks and communicate with other modules through simple, universally accessible APIs.”
breaking large software projects into smaller, independent, and loosely coupled modules” So, this issue is straightaway solved. Catalog ORM Database Query Parts ORM Database
language Allows you to take advantage of emerging and latest technologies (framework, programming language , programming practice, etc.). Catalog( Spring Boot ) Spring Data NoSql Query Parts( Apache Karaf ) Hibernate RDBMS
software ecosystem, It is very easy to scale the same. Unlike, the monolithic web application, where if we have to do a scaling, first we have to setup the environment ( apache, tomcat ) and then deploy the war/ear files in that.
Parts Pricing & Availabi lity Quotat ion Order Order Track ORM Database Pricing Integration Layer (Business Logic) Catalog Query Parts Pricing & Availabi lity Quotat ion Order Order Track ORM Database
root cause in a Single Large Monolithic system. In microservice, fault isolation would be improved and we can easily identify which service is consuming more memory or cpu and we can scale that service easily and fix the issue ( if any ) later.
“Spring Admin Console” We can monitor various aspects like: ➔ Application health ➔ Memory ➔ JVM ➔ Garbage Collection ➔ Metrics etc.. We can also changelog level without restarting of the application. This would help us in debugging any prod issue Sample UI : https://github.com/codecentric/spring-boot-admin
the information like ➔ Who accessed the URL and from where ➔ How many requests have been successfully served to whom and how many got failed ➔ Which services - How many times - By Whom
environment, we have to educate them to understand each of the tool. Spring Boot gives us a single tool ( Spring Admin Console) to do the performance management as well
below) --> <tx:advice id="txAdvice" transaction-manager="txManager"> <!-- the transactional semantics... --> <tx:attributes> <!-- all methods starting with 'get' are read-only --> <tx:method name="get*" read-only="true"/> <!-- other methods use the default transaction settings (see below) --> <tx:method name="*"/> </tx:attributes> </tx:advice> <!-- ensure that the above transactional advice runs for any execution of an operation defined by the FooService interface --> <aop:config> <aop:pointcut id="fooServiceOperation" expression="execution(* x.y.service.FooService.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/> </aop:config> Using Aspect