Этот курс предназначен для начинающих, которые никогда раньше не создавали RESTful веб сервисов и микросервисов. Он шаг за шагом проведет вас по основам и поможет вам создавать и запускать RESTful микросервисы с нуля. Вы узнаете, как запускать микросервисы на собственном компьютере , а также в контейнерах Docker на компьютерах AWS EC2 Linux. К концу курса у вас будут собственные микросервисы RESTful Spring Boot, созданные и работающие в Spring Cloud.
Вы научитесь создавать и запускать:
RESTful микросервисы
Сервис Eureka Discovery
Шлюз Zuul API
Шлюз Spring Cloud API
Балансировщик нагрузки
Сервер конфигураций Spring Cloud.
Вы научитесь использовать:
Шину Spring Cloud and Rabbit MQ,
Actuator Spring Boot
Вы узнаете, как реализовать такие функции REST API, как:
User Authentication(Login)
User Authorization(Registration)
Вы научитесь использовать:
Spring Security и JWT
Вы научитесь использовать:
Spring Data JPA для хранения сведений о пользователе в базе данных,
Сервер базы данных MySQL,
Postman HTTP Client,
Набор инструментов Spring
Инициализатор Spring
Этот курс также охватывает:
Отслеживание HTTP-запросов с помощью Spring Cloud Sleuth и Zipkin (распределенная трассировка)
Совокупные файлы журналов в одном месте (централизованное ведение журнала) с помощью стека ELK (Logstash, Elasticsearch, Kibana)
Вы также узнаете, как:
Запустить машину AWS EC2 Linux
Установить Docker
Создавать образы Docker
Запускать микросервисы в контейнерах Docker на нескольких компьютерах EC2 Linux в облаке Amazon AWS
Посмотреть больше
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
Accessing Protected Microservices with Access Token
Урок 104.
00:03:11
Introduction
Урок 105.
00:04:05
Using Header Predicate
Урок 106.
00:02:28
[Updated]Adding Support for JWT Token Validation
Урок 107.
00:03:50
Creating AuthorizationFilter class
Урок 108.
00:01:13
Assign Custom Filter to a Gateway Route
Урок 109.
00:03:06
Signup and Login Routes
Урок 110.
00:07:43
Reading Authorization HTTP Header
Урок 111.
00:08:40
[Updated] Validating JWT Access Token
Урок 112.
00:06:40
Accessing Protected Microservices with Access Token
Урок 113.
00:01:03
Introduction
Урок 114.
00:03:52
Creating Global Pre Filter
Урок 115.
00:03:33
Accessing Request Path and HTTP Headers
Урок 116.
00:03:50
Trying how Pre Filter Works
Урок 117.
00:03:06
Creating Global Post Filter
Урок 118.
00:02:39
Trying how the Post Filter works
Урок 119.
00:06:42
Defining Filters in a Single Class
Урок 120.
00:06:43
Ordering Global Filters
Урок 121.
00:02:23
Trying how ordered filters work
Урок 122.
00:04:04
Introduction to Spring Cloud Config Server
Урок 123.
00:02:54
Create Your Own Config Server
Урок 124.
00:02:25
Create Private GitHub Repository
Урок 125.
00:02:33
Naming Property Files Served by Config Server
Урок 126.
00:02:47
Configure Config Server to Access Private GitHub Repository
Урок 127.
00:03:17
Adding Properties File to Git Repository
Урок 128.
00:07:25
Configure Users Microservice to be a Client of Config Server
Урок 129.
00:02:19
Make Zuul Gateway a Client of Config Server
Урок 130.
00:03:53
Introduction to Spring Cloud Bus
Урок 131.
00:02:28
Add Spring Cloud Bus & Actuator Dependencies
Урок 132.
00:01:48
Enable the /busrefresh URL Endpoint
Урок 133.
00:03:21
Download and Run Rabbit MQ
Урок 134.
00:02:16
Rabbit MQ Default Connection Details
Урок 135.
00:08:38
Trying how Spring Cloud Bus Works
Урок 136.
00:03:30
Change default Rabbit MQ Password
Урок 137.
00:00:46
Introduction to Spring Cloud Config File System as a Backend
Урок 138.
00:04:52
Setting up File System Backend
Урок 139.
00:01:42
Previewing Values Returned by Config Server
Урок 140.
00:02:39
Trying how Microservices work
Урок 141.
00:02:32
Introduction
Урок 142.
00:07:02
Shared and a Microservice specific properties
Урок 143.
00:02:46
Introduction to Spring Boot Actuator
Урок 144.
00:02:01
[Updated] Add Spring Boot Actuator to Spring Cloud Gateway
Урок 145.
00:03:47
Enable Actuator's /gateway and /mappings endpoints
Урок 146.
00:03:27
View Spring Cloud API Gateway Routes using Actuator
Урок 147.
00:04:02
Enable Actuator for Users Microservice
Урок 148.
00:03:03
Trying how Actuator works in Users Microservice
Урок 149.
00:05:26
Actuator /httpexchanges endpoint
Урок 150.
00:01:01
Introduction
Урок 151.
00:03:17
Download and Install MySQL
Урок 152.
00:06:15
Start MySQL Server and Login
Урок 153.
00:06:26
Create MySQL Database And a New User
Урок 154.
00:03:03
Downloading and Installing MySQL Workbench
Урок 155.
00:05:28
Connect to MySQL Database using MySQL WorkBench
Урок 156.
00:04:16
MySQL WorkBench brief overview
Урок 157.
00:09:49
Configure MySQL Database Access Details
Урок 158.
00:02:49
Use H2 Console to Access MySQL Database
Урок 159.
00:01:41
Copy MySQL properties to a Config Server
Урок 160.
00:02:44
Introduction to Encryption and Decryption of Configuration Properties
Урок 161.
00:06:15
Add Java Cryptography Extension
Урок 162.
00:08:51
Symmetric Encryption of Properties
Урок 163.
00:05:06
Creating a Keystore for Asymmetric Encryption
Урок 164.
00:05:26
Asymmetric Encryption of Properties
Урок 165.
00:03:49
Introduction to Microservices Communication
Урок 166.
00:02:12
Clone Source Code of Albums Microservice
Урок 167.
00:05:38
A walk through an Albums Microservice
Урок 168.
00:05:45
Implementing Get User Details
Урок 169.
00:10:27
Make Users Microservice call Albums Microservice
Урок 170.
00:04:00
Trying how it works
Урок 171.
00:01:33
Feign Web Service Client - Introduction
Урок 172.
00:01:56
Enable Feign in Spring Boot Project
Урок 173.
00:05:08
Create Feign Client
Урок 174.
00:01:48
Using Feign Client
Урок 175.
00:03:13
Trying How Feign Client Works
Урок 176.
00:05:42
Enable HTTP Requests Logging in Feign Client
Урок 177.
00:04:37
Handle FeignException
Урок 178.
00:12:58
Handle Response Errors with Feign Error Decoder
Урок 179.
00:02:56
Introduction
Урок 180.
00:04:29
Configure Project to use Hystrix Circuit Breaker
Урок 181.
00:03:11
Trying How Hystrix Circuit Breaker & Feign work
Урок 182.
00:11:06
Error Handling with Feign Hystrix FallbackFactory
Урок 183.
00:07:55
Introduction
Урок 184.
00:02:42
Removing Hystrix Circuit Breaker
Урок 185.
00:03:17
Adding Resilience4j
Урок 186.
00:02:33
Actuator /health Endpoint
Урок 187.
00:04:23
Feign Client & Circuit Breaker Fallback method
Урок 188.
00:07:06
Circuit Breaker configuration properties
Урок 189.
00:04:51
Configure Access to Actuator endpoints
Урок 190.
00:07:27
Monitoring Circuit Breaker events in Actuator
Урок 191.
00:01:37
@Retry annotation
Урок 192.
00:03:14
Aspect Order
Урок 193.
00:03:03
Configuration properties
Урок 194.
00:03:53
Trying how it works
Урок 195.
00:03:44
[Updated]Introduction to Distributed Tracing with Micrometer and Zipkin
Урок 196.
00:03:19
[Updated] Starting up Zipkin
Урок 197.
00:04:36
[Updated]Add Micrometer and Zipkin dependencies
Урок 198.
00:02:17
Micrometer Tracing Sampling Probability
Урок 199.
00:03:33
Logging TraceId and SpanId
Урок 200.
00:01:49
Configure Micrometer to work with Feign
Урок 201.
00:06:19
View traces in Zipkin Dashboard
Урок 202.
00:05:33
Trace Requests Sent with RestTemplate
Урок 203.
00:02:05
Introduction to Aggregating Log Files with ELK Stack
Урок 204.
00:02:56
Configure Microservices to Log into a File
Урок 205.
00:01:40
Download Logstash
Урок 206.
00:09:12
Configure Logstash to Read Log Files
Урок 207.
00:05:57
[New]Download and Run Elasticsearch with Security Enabled
Урок 208.
00:05:05
[New]Configure Elasticsearch Security in Logstash
Урок 209.
00:06:51
Run Search Query
Урок 210.
00:04:59
[Updated]Download, Install and Run Kibana
Урок 211.
00:05:32
[Updated]View Aggregated Logs in Kibana
Урок 212.
00:02:16
Configure Spring Security to Eureka Server
Урок 213.
00:05:24
[Updated] Enable Web Security
Урок 214.
00:03:11
Configure Eureka Clients to use Username and Password
Урок 215.
00:04:21
Configure Eureka Service URL in Config Server
Урок 216.
00:04:01
Move Username and Password to Config Server
Урок 217.
00:06:04
Encrypting Username and Password
Урок 218.
00:08:00
Introduction to Running Microservices in Docker Containers
Урок 219.
00:14:57
Start up a new Linux Server on AWS EC2
Урок 220.
00:04:47
Connect to EC2 Instance
Урок 221.
00:01:52
Install Docker on AWS EC2
Урок 222.
00:01:58
Docker Hub Introduction
Урок 223.
00:09:13
Run RabbitMQ Docker Container
Урок 224.
00:06:50
Basic Docker Commands: Run, Stop, Start, Remove Containers and Images
Урок 225.
00:09:49
Create Config Server Docker Image
Урок 226.
00:04:28
Publish Config Server Docker Image to Docker Hub
Урок 227.
00:10:23
Run Config Server on EC2 from Docker Hub
Урок 228.
00:03:24
Start New EC2 Instance for Eureka
Урок 229.
00:04:02
Build Docker Image for Eureka Discovery Service
Урок 230.
00:11:21
Run Eureka in Docker container
Урок 231.
00:04:42
Elastic IP address for EC2 Instance
Урок 232.
00:04:42
Create Zuul Api Gateway Docker Image
Урок 233.
00:08:04
Run Zuul Api Gateway in Docker Container
Урок 234.
00:05:56
Run Elastic Search in Docker container
Урок 235.
00:06:35
Run Kibana in Docker Container
Урок 236.
00:04:32
Run Kibana and Elastic Search on the same Network
Урок 237.
00:04:28
Docker Image for Albums Microservice
Урок 238.
00:10:50
Run Albums Microservice Docker Image on EC2
Урок 239.
00:08:51
Logstash Docker Image for Albums Microservice
Урок 240.
00:04:35
Run Logstash in Docker container
Урок 241.
00:08:38
Run MySQL in Docker Container
Урок 242.
00:03:20
Make MySQL Docker Container Persist Data on EC2
Урок 243.
00:04:23
Build Users Microservice Docker Image
Урок 244.
00:10:00
Run Users Microservice in Docker container
Урок 245.
00:07:52
Run Logstash for Users Microservice
Урок 246.
00:05:10
Introduction
Урок 247.
00:08:32
Preparing Configuration for another environment
Урок 248.
00:11:33
Creating Beans Based on Spring Boot @Profile used
Урок 249.
00:01:03
Running Docker Container for Different Environments
Урок 250.
00:06:31
Introduction
Урок 251.
00:01:23
Pass Authorization Header to Downstream Microservice
Урок 252.
00:09:25
[Updated] Create and register the AuthorizationFilter
Урок 253.
00:02:54
[Updated]Register Authorization Filter with HTTP Security
Урок 254.
00:04:29
[Updated] Trying how it works
Урок 255.
00:04:56
Introduction to Method-Level security
Урок 256.
00:02:28
[Updated] Enable Method Level Security
Урок 257.
00:03:31
@PreAuthorize annotation example
Урок 258.
00:03:03
Trying how @PreAuthorize annotation works
Урок 259.
00:07:12
@PostAuthorize annotation example
Автор - udemy
udemy
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Можете обновить? Добавилось
34) Role-based Access Control in Microservice
35) Role-based Access Control Exercise: Albums Microservice
36) Role-based Access Control at the Spring Cloud API Gateway level
37) Eureka Server Cluster
hazartilirot
If you have come so far my brother and reached 133-d lesson, here is a bonus for you! Just stay relaxed, enjoy the learning process. :D
Omg... so much pain with the course. I like so much Sergey for those courses, but there is a mistake he keeps making. Just stop using all those 100500 instruments for the development. All may be accomplished within the IntelliJ IDEA. There is a 30-days evaluation period - it's more than enough. Moreover, if you're a student you're eligible to get a free period from the JetBrains.
Bloody hell!
I have written my previous message in Russian, I hope Google Translate helps you to figure out what it actually means.
Basically, if you work with the project in the IntelliJ IDEA - read the article I shared with you to gain a better understanding of how to run multiple projects (mutliservices) within one project.
hazartilirot
Короче, народ, если Вы как и я смотрите этот курс с IntelliJ IDEA 2023+, подошли к Eureka, DiscoveryService и прочее, вместо использования Spring Tool Suite 4, делаете так как написано в статье
Если коротко, когда создали два проекта по-отельности, создаёте третий, пустой, называете его микросервисы, и дальше начинаете импортировать два проекта, которые создали до него. Прилагаю сразу два конфига, переименуйте application.properties -> application.yml
Очень хороший курс. Да! Я бы даже опять по нему пробежался. Сергей очень хороший тьютор. Мне понравился. Рекомендую. Хочу посмотреть ещё несколько его курсов.
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.
Master Spring Boot Microservices with CQRS & Event Sourcing
В этом курсе вы не только узнаете, как создать небольшой REST API, но и узнаете, как создавать микросервисы, соответствующие лучшим практикам проектирования, в том числе CQRS, Event Sourcing и Domain-Driven Design. К концу этого курса вы узнаете, как создавать слабо связанные микросервисы Spring Boot, у каждого из которых есть собственная база данных.
Практический курс, где вы на основе проекта создадите микросервисную архитектуру с применением всех популярных технологий (Spring Cloud, Config, Eureka, RabbitMQ, GitHub и др.)
Осваивайте микросервисы с помощью Spring Boot и Spring Cloud
Master Microservices with Spring Boot and Spring Cloud
Разработка веб-сервисов RESTful и REST API — это весело. Сочетание Java, Spring Boot, Spring Web MVC, Spring Web Services и JPA делает процесс еще более увлекательным. И еще веселее создавать микросервисы. Этот курс состоит из двух частей: веб-сервисов RESTful и микросервисов. Архитектуры движутся в сторону микросервисов. Веб-сервисы RESTful — это первый шаг к разработке отличных микросервисов.
Узнайте, как начать работу с Spring Boot, мощной платформой для быстрого создания веб-приложений с использованием меньшего количества кода. Программы на основе Java, которые вы создаете в Spring Boot, «просто запускаются». Ваш инструктор Нельсон создал этот курс на основе реального опыта инженера-программиста. Этот курс детализирован во всех аспектах, и новый материал добавляется в соответствии с предложениями студентов. В конце этого
Шаблон и архитектура микросервиса (Java Spring Cloud/Boot)
Microservice Pattern & Architecture (Java Spring Cloud/Boot)
Микросервисная архитектура стала основным выбором для разработки современных приложений. Она решает некоторые проблемы, хотя и не является решением всего. При использовании микросервиса требуется изменение сложности и мышления. Будут возникать технические проблемы, которые необходимо решать. К счастью, многие люди уже столкнулись с такими же техническими проблемами и разработали решение. Эти решения становятся общими шаблонами для решения проблем
34) Role-based Access Control in Microservice
35) Role-based Access Control Exercise: Albums Microservice
36) Role-based Access Control at the Spring Cloud API Gateway level
37) Eureka Server Cluster
https://github.com/simplyi/SpringCloudVideoCourse/issues/8
Using Header Predicate - status 403 at "/users-ws/users/status/check" with Bearer abc
https://github.com/simplyi/SpringCloudVideoCourse/issues/7
If you have followed up until now and you have made sure that there is no mistake on your side. The problem is at the 00:30.
He uses a filter it doesn't exist AuthenticationHeaderFilter. Delete the line or add the class
https://github.com/simplyi/SpringCloudAPIGateway/blob/main/src/main/java/com/appsdeveloperblog/photoapp/api/gateway/AuthorizationHeaderFilter.java
Mind the PATH!!!!!! to the class.
However, as a first step to solve the problem I suggest that you delete the parameter
spring.cloud.gateway.routes[0].filters[2]=AuthorizationHeaderFilter
If it works - than you know the reason, create the class, copy the code, return the line of the code.
Now, I use application.yml file therefore if you need my help feel free to copy the text:
spring:
application:
name: api-gateway
cloud:
gateway:
routes:
- id: users-status-check
uri: lb://users-ws
predicates:
- Path=/users/status/check
- Method=GET
- Header=Authorization, Bearer (.*)
filters:
- RemoveRequestHeader=Cookie
- RewritePath=/users-ws/(?.*), /$\{segment}
- AuthorizationHeaderFilter
- id: users-ws
uri: lb://users-ws
predicates:
- Path=/users-ws/users
- Method=POST
filters:
- RemoveRequestHeader=Cookie
- RewritePath=/users-ws/(?.*), /$\{segment}
- id: users-ws-2h-console
uri: lb://users-ws
predicates:
- Path=/users-ws/h2-console
- Method=GET
filters:
- RemoveRequestHeader=Cookie
- RewritePath=/users-ws/(?.*), /$\{segment}
- id: users-ws-2h-login
uri: lb://users-ws
predicates:
- Path=/users-ws/login
- Method=POST
filters:
- RemoveRequestHeader=Cookie
- RewritePath=/users-ws/(?.*), /$\{segment}
discovery:
locator:
enabled: true
lower-case-service-id: true
server:
port: 8082
eureka:
client:
service-url:
defaultZone: http://localhost:8010/eureka
Bloody hell!
I have written my previous message in Russian, I hope Google Translate helps you to figure out what it actually means.
Basically, if you work with the project in the IntelliJ IDEA - read the article I shared with you to gain a better understanding of how to run multiple projects (mutliservices) within one project.
https://medium.com/backend-habit/intellij-idea-running-multiple-project-microservices-in-one-workspace-d61126fe0eef
Если коротко, когда создали два проекта по-отельности, создаёте третий, пустой, называете его микросервисы, и дальше начинаете импортировать два проекта, которые создали до него. Прилагаю сразу два конфига, переименуйте application.properties -> application.yml
PhotoAppApiUsers
application.yml
server:
port: 0
spring:
devtools:
restart:
enabled: true
application:
name: users-ws
eureka:
client:
service-url:
defaultZone: http://localhost:8010/eureka
PhotoAppDiscoveryService
application.yml
spring:
application:
name: discovery_service
server:
port: 8010
eureka:
instance:
prefer-ip-address: true
client:
serviceUrl:
defaultZone: http://localhost:8010/eureka
register-with-eureka: false
fetch-registry: false