Skip to content

Commit de4fec3

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/master' into beginner-guide-to-creating-apache-http-client
# Conflicts: # build-all.sh
2 parents 18f445e + 71e243e commit de4fec3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2841
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
target
2+
.project
3+
.settings
4+
.DS_Store
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip
2+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Publisher-Subscriber Pattern using AWS SNS and SQS in Spring Boot
2+
3+
Codebase demonstrating the implementation of publisher-subscriber pattern using AWS SNS and SQS in Spring Boot. [Spring Cloud AWS](https://spring.io/projects/spring-cloud-aws) is used to interact with AWS services in context.
4+
5+
[LocalStack](https://github.com/localstack/localstack) has been used to containerize the multi-module Maven project for local development. The below commands can be used to start the applications:
6+
7+
```bash
8+
./mvnw clean package spring-boot:build-image
9+
```
10+
```bash
11+
sudo docker-compose up -d
12+
```
13+
14+
## Blog posts
15+
16+
Blog posts about this topic:
17+
18+
* [Publisher-Subscriber Pattern using AWS SNS and SQS in Spring Boot](https://reflectoring.io/publisher-subscriber-pattern-using-aws-sns-and-sqs-in-spring-boot)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
version: '3.7'
2+
3+
services:
4+
localstack:
5+
container_name: localstack
6+
image: localstack/localstack:3.3
7+
ports:
8+
- 4566:4566
9+
environment:
10+
- SERVICES=sns,sqs
11+
volumes:
12+
- ./localstack/init-sns-topic.sh:/etc/localstack/init/ready.d/init-sns-topic.sh
13+
- ./localstack/init-sqs-queue.sh:/etc/localstack/init/ready.d/init-sqs-queue.sh
14+
- ./localstack/subscribe-sqs-to-sns.sh:/etc/localstack/init/ready.d/subscribe-sqs-to-sns.sh
15+
networks:
16+
- reflectoring
17+
18+
user-management-service:
19+
container_name: user-management-service
20+
image: aws-pubsub-user-management-service
21+
ports:
22+
- 8080:8080
23+
depends_on:
24+
- localstack
25+
environment:
26+
spring.cloud.aws.sns.endpoint: 'http://localstack:4566'
27+
spring.cloud.aws.credentials.access-key: test
28+
spring.cloud.aws.credentials.secret-key: test
29+
spring.cloud.aws.sns.region: 'us-east-1'
30+
io.reflectoring.aws.sns.topic-arn: 'arn:aws:sns:us-east-1:000000000000:user-account-created'
31+
networks:
32+
- reflectoring
33+
34+
notification-dispatcher-service:
35+
container_name: notification-dispatcher-service
36+
image: aws-pubsub-notification-dispatcher-service
37+
ports:
38+
- 9090:8080
39+
depends_on:
40+
- localstack
41+
- user-management-service
42+
environment:
43+
spring.cloud.aws.sqs.endpoint: 'http://localstack:4566'
44+
spring.cloud.aws.credentials.access-key: test
45+
spring.cloud.aws.credentials.secret-key: test
46+
spring.cloud.aws.sqs.region: 'us-east-1'
47+
io.reflectoring.aws.sqs.queue-url: 'http://sqs.us-east-1.localhost.localstack.cloud:4566/000000000000/dispatch-email-notification'
48+
networks:
49+
- reflectoring
50+
51+
networks:
52+
reflectoring:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
HELP.md
2+
target/
3+
!.mvn/wrapper/maven-wrapper.jar
4+
!**/src/main/**/target/
5+
!**/src/test/**/target/
6+
7+
### STS ###
8+
.apt_generated
9+
.classpath
10+
.factorypath
11+
.project
12+
.settings
13+
.springBeans
14+
.sts4-cache
15+
16+
### IntelliJ IDEA ###
17+
.idea
18+
*.iws
19+
*.iml
20+
*.ipr
21+
22+
### NetBeans ###
23+
/nbproject/private/
24+
/nbbuild/
25+
/dist/
26+
/nbdist/
27+
/.nb-gradle/
28+
build/
29+
!**/src/main/**/build/
30+
!**/src/test/**/build/
31+
32+
### VS Code ###
33+
.vscode/
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip
2+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar

0 commit comments

Comments
 (0)