### 1.1. Boş bir gradle projesi açtık.
### 1.2. dependencies.gradle dosyasını kodladık
#### 1.2.1. ext{} bloğu içerisindeki kütüphaneleri projemize dahil ettik.
#### 1.2.2. versions{} bloğu içerisindeki kütüphanelerin versiyonlarını belirledik.
#### 1.2.3. libs{} bloğu içerisinde kullanacağımız kütüphaneleri belirledil.
### 1.3. build.gradle dosyasını kodladık, bu dosya içinde tüm alt projelerimizde ortak
olarak kullanacağımız kütüphaneleri belirledik.
### 1.4. uygulamamızın mimarisi gereği ihtiyaç duyduğumuz mikroservisleri belirleyerek onları
modül olarak ekledik.
### 1.5. her bir modül için eklememiz gereken aşağıdaki kod bloğunu
build.gradle dosyalarına ekledik.
### 1.6. tüm modüllerimize monolitik mimaride kullandığımız default kodlamaları ekledik.
### 1.7. Eğer bir modül içinde kullanmak istediğimiz özel bağımlılıklar var ise bunları
build.gradle dosyalarına ekledik.
2. MongoDB Kurulum ve Kullanım
2.1. MongoDB Docker üzerinde çalıştırmak
docker kurulu olan bir sistem üzerinde command satırına girerek aşağıda
yeralan komutları yazarak docker üzerinde çalıştırıyoruz.
> docker run --name dockermongo -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=BilgeAdmin -e MONGO_INITDB_ROOT_PASSWORD=root -d mongo
2.2. MongoDB ye bağlanmak
DİKKAT!!!
mongodb kullanırken admin kullanıcısı ve şifrelerini veritabanlarına
erişmek için kullanmayınız.
Yeni bir veritabanı oluşturmak için admin kullanıcısı ile işlem yapılır ve
bu veritananına atanmak üzere yeni bir kullanıcı oluşturulur. böylelikle
admin kullanıcısına ihtiyaç kalmadan DB üzerinde işlemler gerçekleştirilir.
1- Öncelikle bir veritabanı oluşturuyorsunuz. (FacebookDB)
2- mongosh kullanarak konsolda 'use DB_ADI' yazıyorsunuz ve ilgili DB ye geçiş yapıyorsunuz
3- yine aynı ekranda yeni bir kullanıcı oluşturmanız gereklidir. bu kullanıcı yetkili olacaktır.
db.createUser({
user: "Java7User",
pwd: "root",
roles: ["readWrite", "dbAdmin"]
})
-- db.createUser({user: "Java7User",pwd: "root",roles: ["readWrite", "dbAdmin"]})
3. RabbitMQ Kurulum ve Kullanım
### 3.1. RabbitMQ Docker üzerinde çalıştırmak
docker run -d --name my-rabbitmq -e RABBITMQ_DEFAULT_USER=java7 -e RABBITMQ_DEFAULT_PASS=root -p 5672:5672 -p 15672:15672 rabbitmq:3-management
### 3.2. RabbitMQ ye bağlanmak
gradle import -> org.springframework.boot:spring-boot-starter-amqp:VERSION
Rabbit Config yapılandırılır ve kuyruk yapısı tanımlanır.
4. Zipkin Server kurmak ve Kullanmak
docker run --name zipkinfb -d -p 9411:9411 openzipkin/zipkin
Zipkin için gerekli bağımlılılar:
'org.springframework.cloud:spring-cloud-starter-sleuth:3.1.7'
'org.springframework.cloud:spring-cloud-sleuth-zipkin:3.1.7'
application.yml içine eklenilecek kodlar:
zipkin:
enabled: true
base-url: http://localhost:9411
service:
name: config-server
5. Redis Kurulum ve Kullanım
docker run --name localredis -d -p 6379:6379 redis
Redis için gerekli bağımlılılar:
'org.springframework.boot:spring-boot-starter-data-redis:$VERSION'
Redis için bağlantı kodlamalarını yapmakmız gerekli:
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(
new RedisStandaloneConfiguration("localhost", 6379));
}
6. ElasticSearch Kurulum ve Kullanım
DİKKAT!!!
Spring ile kullanımında sürüm önemlidir. Hangi Spring boot sürümünü
kullandıysanız ona uygun bir ElasticSearch sürümü kullanmalısınız.
1- docker network create somenetwork
2- docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx2048m" -e "discovery.type=single-node" elasticsearch:7.17.9
ElasticSearch için gerekli bağımlılılar:
'org.springframework.boot:spring-boot-starter-data-elasticsearch:$VERSION'