Spring Boot Microservices and Spring Cloud
What you’ll learn
Build and run RESTful Microservices
Implement User Authentication
Eureka Discovery Service
Implement User Authorization with Spring Security and JWT
Spring Cloud API Gateway
Learn to use JPA to persist data into a Database
Cloud Cloud Config Server
Learn to install MySQL Server and persist data into MySQL
Spring Cloud Bus and Rabbit MQ
H2 in-memory database and H2 Console
Spring Boot Actuator
Learn to use HTTP Postman
Use Spring Security
Learn to use Spring Initializer
Distributed Tracing with Sleuth and Zipkin
Learn to use Spring Tool Suite
Centralized Logging with ELK Stack(Logstash, Elasticsearch, Kibana)
Run Microservices in Docker Containers
Requirements
Know Java
Mac computer
Description
This video course is for Beginners who have never build RESTful Web Services and Microservices before. It will guide you step-by-step through basics and will help you create and run RESTful Microservices from scratch. You will learn how to run Microservices on your own developer’s machine as well as in Docker Containers on AWS EC2 Linux machines.By the end of this course, you will have your own RESTful Spring Boot Microservices built and running in Spring Cloud. You will learn how to create and run your own: RESTful Microservices, Eureka Discovery Service, Zuul API Gateway,Spring Cloud API Gateway,Load Balancer, Spring Cloud Config Server, You will learn to use:Spring Cloud Bus and Rabbit MQ, Spring Boot ActuatorYou will also learn how to implement for your REST API features like: User Authentication(Login) and, User Authorization(Registration)You will learn to use: Spring Security and JWTYou will learn how to use: Spring Data JPA to store user details in a database, H2 in-memory database and a database console, MySQL database server, Postman HTTP Client, Spring Tool Suite, Spring InitializerThis course also covers how to: Trace HTTP Requests with Spring Cloud Sleuth and Zipkin(Distributed tracing)Aggregate log files in one place(Centralized logging) with ELK stack(Logstash, Elasticsearch, Kibana).You will also learn how to: Start up AWS EC2 Linux machine, Install Docker, Create Docker images, Run Microservices in Docker containers on multiple EC2 Linux machines in Amazon AWS Cloud.
Overview
Section 1: Introduction
Lecture 1 Source Code
Lecture 2 Course Overview
Lecture 3 A few suggestions
Lecture 4 What is a Microservice?
Lecture 5 Sample Microservices Architecture
Lecture 6 Download and Install Postman HTTP Client
Lecture 7 Postman Overview
Lecture 8 Resource and Collection URIs
Lecture 9 HTTP Methods: GET, POST, DELETE and PUT
Lecture 10 HTTP Headers: Accept and Content Type
Section 2: Setting up Development Environment
Lecture 11 Install Java Platform(JDK)
Lecture 12 Download and Install Spring Tool Suite(STS)
Section 3: Building RESTful Web Services – A Quick Start. (Optional)
Lecture 13 Introduction
Lecture 14 Creating a New Project
Lecture 15 Creating a new Spring project using Spring Boot Initializr
Lecture 16 Create Users Rest Controller class
Lecture 17 Adding Methods to Handle POST, GET, PUT, DELETE HTTP requests
Lecture 18 Running Web Service Application
Lecture 19 Reading Path Variables with @PathVariable annotaion
Lecture 20 Reading Query String Request Parameters
Lecture 21 Making Parameters Optional or Required
Lecture 22 Returning Java Object as Return Value
Lecture 23 Returning Object as JSON or XML Representation
Lecture 24 Set Response Status Code
Lecture 25 Reading HTTP POST Request Body. The @RequestBody annotation.
Lecture 26 Validating HTTP POST Request Body
Lecture 27 Store Users Temporary
Lecture 28 Handle HTTP PUT Request
Lecture 29 Handle HTTP Delete Request
Lecture 30 Handle an Exception
Lecture 31 Return Custom Error Message Object
Lecture 32 Handle a Specific Exception
Lecture 33 Throw and Handle You Own Custom Exception
Lecture 34 Catch More Than One Exception with One Method
Lecture 35 Dependency Injection: Create and Autowire a Service Layer Class
Lecture 36 Constructor Based Dependency Injection
Lecture 37 Run Web Service as a Standalone Application
Section 4: Eureka Discovery Service – A Quick Start
Lecture 38 Introduction to Eureka Discovery Service
Lecture 39 Startup Eureka Service Discovery
Lecture 40 Troubleshooting
Section 5: Users Microservice – A Quick Start
Lecture 41 Introduction to Building a Users Microservice
Lecture 42 Users Microservice – Create new Spring Boot Project
Lecture 43 Enable Eureka Client
Lecture 44 Create Users Rest Controller
Lecture 45 Access Users Web Service Endpoint via Eureka Discovery Service
Lecture 46 Exercise – Create Account Management Microservice
Section 6: Account Management Microservice – A Quick Start
Lecture 47 Introduction to Building an Account Management Microservice
Lecture 48 Create a new Spring Boot Project
Lecture 49 Access Account Management Microservice via Eureka Discovery Service
Section 7: Zuul API Gateway – A Quick Start
Lecture 50 Important note
Lecture 51 Introduction to Zuul API Gateway
Lecture 52 Create a ZUUL API Gateway Project
Lecture 53 Access Microservices via API Gateway
Section 8: Zuul as a Load Balancer – A Quick Start
Lecture 54 Important note
Lecture 55 Load Balancer – Introduction
Lecture 56 Starting Up More Microservices
Lecture 57 Trying How Load Balancer Works
Section 9: Spring Cloud API Gateway
Lecture 58 Important Note
Lecture 59 Introduction
Lecture 60 Creating API Gateway Project
Lecture 61 Automatic Mapping of Gateway Routes
Lecture 62 Manually Configuring API Gateway Routes
Lecture 63 Trying how it works
Lecture 64 Rewriting URL Path
Lecture 65 Automatic & Manual Routing
Lecture 66 Build-In Predicate Factories
Lecture 67 Gateway Filters
Section 10: Spring Cloud API Gateway as a Load Balancer
Lecture 68 Starting Up More Microservices
Lecture 69 Trying How Load Balancer Works
Section 11: H2 In-Memory Database
Lecture 70 H2 In-memory Database. Introduction.
Lecture 71 H2 Database Console Overview
Lecture 72 Adding Support for the H2 Database
Section 12: Users Microservice – Implementing User Sign up
Lecture 73 Introduction
Lecture 74 Adding method to handle HTTP Post Request
Lecture 75 Implementing the Create User Request Model class
Lecture 76 Validating HTTP Request Body
Lecture 77 Application Layers
Lecture 78 Implementing Service Layer Class
Lecture 79 Create a Shared DTO Class
Lecture 80 Generate Unique Public User Id
Lecture 81 Adding Support for Spring Data JPA
Lecture 82 Implementing User Entity Class
Lecture 83 Implementing Spring Data JPA CRUD Repository
Lecture 84 Save User Details in Database
Lecture 85 Return Http Status Code
Lecture 86 Implementing Create User Response Model
Lecture 87 Add Spring Security to Users Microservice
Lecture 88 Add WebSecurity Configuration
Lecture 89 Encrypt User Password
Lecture 90 Allow only IP address of Zuul API Gateway
Lecture 91 Adding Support to Return JSON or XML
Section 13: Users Microservice – Implementing User Login
Lecture 92 Introduction
Lecture 93 Implementing LoginRequestModel
Lecture 94 AuthenticationFilter. Implementing attemptAuthentication()
Lecture 95 Implementing loadUserByUserName()
Lecture 96 AuthenticationFilter. Implementing successfulAuthentication().
Lecture 97 Trying How User Login Works
Lecture 98 Customize User Authentication URL
Section 14: Enable Spring Security in Zuul API Gateway
Lecture 99 Important note
Lecture 100 Introduction to Spring Security on API Gateway
Lecture 101 Adding Support for Spring Security and JWT Tokens
Lecture 102 Enable Web Security in Zuul
Lecture 103 Allow Access to Registration and Login Urls
Lecture 104 Implementing Authorization Filter
Lecture 105 Accessing Protected Microservices with Access Token
Section 15: Spring Cloud API Gateway – Creating a Custom Filter.
Lecture 106 Introduction
Lecture 107 Using Header Predicate
Lecture 108 Adding Support for JWT Token Validation
Lecture 109 Creating AuthorizationFilter class
Lecture 110 Assign Custom Filter to a Gateway Route
Lecture 111 Signup and Login Routes
Lecture 112 Reading Authorization HTTP Header
Lecture 113 Validating JWT Access Token
Lecture 114 Accessing Protected Microservices with Access Token
Section 16: Spring Cloud API Gateway Global Filters
Lecture 115 Introduction
Lecture 116 Creating Global Pre Filter
Lecture 117 Accessing Request Path and HTTP Headers
Lecture 118 Trying how Pre Filter Works
Lecture 119 Creating Global Post Filter
Lecture 120 Trying how the Post Filter works
Lecture 121 Defining Filters in a Single Class
Lecture 122 Ordering Global Filters
Lecture 123 Trying how ordered filters work
Section 17: Spring Cloud Config Server – Git Backend
Lecture 124 Introduction to Spring Cloud Config Server
Lecture 125 Create Your Own Config Server
Lecture 126 Create Private GitHub Repository
Lecture 127 Naming Property Files Served by Config Server
Lecture 128 Configure Config Server to Access Private GitHub Repository
Lecture 129 Adding Properties File to Git Repository
Lecture 130 Configure Users Microservice to be a Client of Config Server
Lecture 131 Make Zuul Gateway a Client of Config Server
Section 18: Spring Cloud Bus – A Quick Start
Lecture 132 Introduction to Spring Cloud Bus
Lecture 133 Add Spring Cloud Bus & Actuator Dependencies
Lecture 134 Enable the /bus-refresh URL Endpoint
Lecture 135 Download and Run Rabbit MQ
Lecture 136 Rabbit MQ Default Connection Details
Lecture 137 Trying how Spring Cloud Bus Works
Lecture 138 Change default Rabbit MQ Password
Section 19: Spring Cloud Config – File System Backend
Lecture 139 Introduction to Spring Cloud Config File System as a Backend
Lecture 140 Setting up File System Backend
Lecture 141 Previewing Values Returned by Config Server
Lecture 142 Trying how Microservices work
Section 20: Spring Cloud Config – Configuration for Multiple Microservices
Lecture 143 Introduction
Lecture 144 Shared and a Microservice specific properties
Section 21: Spring Boot Actuator – A Quick Start
Lecture 145 Introduction to Spring Boot Actuator
Lecture 146 Add Spring Boot Actuator to API Gateway
Lecture 147 Trying How It Works
Lecture 148 Enable Actuator for Users Microservice
Section 22: Using MySQL Instead of In-Memory Database
Lecture 149 Introduction
Lecture 150 Download and Install MySQL
Lecture 151 Start MySQL Server and Login
Lecture 152 Create MySQL Database And a New User
Lecture 153 Downloading and Installing MySQL Workbench
Lecture 154 Connect to MySQL Database using MySQL WorkBench
Lecture 155 MySQL WorkBench brief overview
Lecture 156 Configure MySQL Database Access Details
Lecture 157 Use H2 Console to Access MySQL Database
Lecture 158 Copy MySQL properties to a Config Server
Section 23: Encryption and Decryption
Lecture 159 Introduction to Encryption and Decryption of Configuration Properties
Lecture 160 A note about Java Cryptography Extension(JCE)
Lecture 161 Add Java Cryptography Extension
Lecture 162 Symmetric Encryption of Properties
Lecture 163 Creating a Keystore for Asymmetric Encryption
Lecture 164 Asymmetric Encryption of Properties
Section 24: Microservices Communication
Lecture 165 Introduction to Microservices Communication
Lecture 166 Albums Microservices Source Code
Lecture 167 Clone Source Code of Albums Microservice
Lecture 168 A walk through an Albums Microservice
Lecture 169 Implementing Get User Details
Lecture 170 Make Users Microservice call Albums Microservice
Lecture 171 Trying how it works
Lecture 172 Feign Web Service Client – Introduction
Lecture 173 Enable Feign in Spring Boot Project
Lecture 174 Create Feign Client
Lecture 175 Using Feign Client
Lecture 176 Trying How Feign Client Works
Lecture 177 Enable HTTP Requests Logging in Feign Client
Lecture 178 Handle FeignException
Lecture 179 Handle Response Errors with Feign Error Decoder
Section 25: Microservices communication – Hystrix Circuit Breaker
Lecture 180 Introduction
Lecture 181 Configure Project to use Hystrix Circuit Breaker
Lecture 182 Trying How Hystrix Circuit Breaker & Feign work
Lecture 183 Error Handling with Feign Hystrix FallbackFactory
Section 26: Microservices communication. Resilience4j – Circuit Breaker.
Lecture 184 Introduction
Lecture 185 Removing Hystrix Circuit Breaker
Lecture 186 Adding Resilience4j
Lecture 187 Actuator /health Endpoint
Lecture 188 Feign Client & Circuit Breaker Fallback method
Lecture 189 Circuit Breaker configuration properties
Lecture 190 Configure Access to Actuator endpoints
Lecture 191 Monitoring Circuit Breaker events in Actuator
Section 27: Microservices communication. Resilience4j – Retry.
Lecture 192 @Retry annotation
Lecture 193 Aspect Order
Lecture 194 Configuration properties
Lecture 195 Trying how it works
Section 28: Distributed Tracing with Sleuth and Zipkin
Lecture 196 Introduction to Distributed Tracing with Sleuth and Zipkin
Lecture 197 Add Spring Cloud Sleuth to Users Microservice
Lecture 198 Checking Trace ID and Span ID in a Console
Lecture 199 Startup Zipkin Server
Lecture 200 View Traces in Zipkin
Section 29: Aggregating Log Files with ELK Stack
Lecture 201 Introduction to Aggregating Log Files with ELK Stack
Lecture 202 Configure Microservices to Log into a File
Lecture 203 Download Logstash
Lecture 204 Configure Logstash to Read Log Files
Lecture 205 [New]Download and Run Elasticsearch with Security Enabled
Lecture 206 [New]Configure Elasticsearch Security in Logstash
Lecture 207 Run Search Query
Lecture 208 [Updated]Download, Install and Run Kibana
Lecture 209 [Updated]View Aggregated Logs in Kibana
Section 30: Secure Eureka Dashboard
Lecture 210 Configure Spring Security to Eureka Server
Lecture 211 Enable Web Security
Lecture 212 Configure Eureka Clients to use Username and Password
Lecture 213 Configure Eureka Service URL in Config Server
Lecture 214 Move Username and Password to Config Server
Lecture 215 Encrypting Username and Password
Section 31: Running Microservices in Docker Containers to AWS EC2
Lecture 216 Introduction to Running Microservices in Docker Containers
Lecture 217 Start up a new Linux Server on AWS EC2
Lecture 218 Connect to EC2 Instance
Lecture 219 Docker Commands Used in this Video Course
Lecture 220 Install Docker on AWS EC2
Lecture 221 Docker Hub Introduction
Lecture 222 Run RabbitMQ Docker Container
Lecture 223 Basic Docker Commands: Run, Stop, Start, Remove Containers and Images
Lecture 224 Create Config Server Docker Image
Lecture 225 Publish Config Server Docker Image to Docker Hub
Lecture 226 Run Config Server on EC2 from Docker Hub
Lecture 227 Start New EC2 Instance for Eureka
Lecture 228 Build Docker Image for Eureka Discovery Service
Lecture 229 Run Eureka in Docker container
Lecture 230 Elastic IP address for EC2 Instance
Lecture 231 Create Zuul Api Gateway Docker Image
Lecture 232 Run Zuul Api Gateway in Docker Container
Lecture 233 Run Elastic Search in Docker container
Lecture 234 Run Kibana in Docker Container
Lecture 235 Run Kibana and Elastic Search on the same Network
Lecture 236 Docker Image for Albums Microservice
Lecture 237 Run Albums Microservice Docker Image on EC2
Lecture 238 Logstash Docker Image for Albums Microservice
Lecture 239 Run Logstash in Docker container
Lecture 240 Run MySQL in Docker Container
Lecture 241 Make MySQL Docker Container Persist Data on EC2
Lecture 242 Build Users Microservice Docker Image
Lecture 243 Run Users Microservice in Docker container
Lecture 244 Run Logstash for Users Microservice
Section 32: Multiple Environments: Dev, Prod.
Lecture 245 Introduction
Lecture 246 Preparing Configuration for another environment
Lecture 247 Creating Beans Based on Spring Boot @Profile used
Lecture 248 Running Docker Container for Different Environments
Section 33: Downstream Microservice and Method-Level Security
Lecture 249 Introduction
Lecture 250 Pass Authorization Header to Downstream Microservice
Lecture 251 Add AuthorizationFilter to Users Microservice
Lecture 252 Configure HttpSecurity
Lecture 253 Trying how it works
Lecture 254 Introduction to Method-Level security
Lecture 255 Enable Method-Level Security
Lecture 256 @PreAuthorize annotation example
Lecture 257 Trying how @PreAuthorize annotation works
Lecture 258 @PostAuthorize annotation example
Section 34: What’s next
Lecture 259 Bonus lecture
Beginner Java developers,Java developers interested in learning how to build Spring Boot Microservices
Course Information:
Udemy | English | 19h 49m | 8.85 GB
Created by: Sergey Kargopolov
You Can See More Courses in the Developer >> Greetings from CourseDown.com