所謂的 Configuration
===
Configuration Source 只有 application.properties, env ?
---
```sequence
participant Configurations
participant Adapter
participant Data Provider
participant Data Source
Note over Data Source: In Memory
Data Source --> Configurations:
Note over Data Source: Files
Note over Data Source: Envioronment
Note over Data Source: Databases (MSSQL, PostgreSQL, MySQL, Redis, etc)
Note over Data Source: 3rd party services
Note over Data Source: Event Message, Streaming
Data Source --> Data Provider:
Note over Data Provider: IO Reader
Note over Data Provider: DAL, Repository
Note over Data Provider: APIs, WebHook, etc
Note over Data Provider: RabbitMQ, Redis, Kafka, etc
Data Provider --> Adapter:
Adapter --> Configurations:
```
### 資料你在哪兒
- memory
- file (ex: application.properties, json file, yaml file...)
- system envioronment
- database (ex: MSSQL, Redis, MemoryDB, jsonDB)
- external service
- etc
#### 太難了
- 存在於 Memory 一定是被 cache 的資料嗎 ?
- 有沒有一種可能, 它只是程式碼 method 內用到, 暫時存在的變數
- 有沒有是 service configuration 的可能
- etc
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
有一種實作方式叫做 In Memory
---
> Memory 是 Cache, 大聲叫出來 Redis 是 Cache [name=銀行業的霸氣 Programer]
話應該是這麼說的: `Cache 有幾種實作方式, ex: 透過 Memory or Redis 來存放資料`
### ChatGPT 大導師是這麼說的
> Cache is a type of memory that is used to store frequently accessed data in a computer system. It is typically faster and more efficient than main memory (e.g., RAM), because it is closer to the processor and can be accessed more quickly.
>
> Redis is an in-memory data structure store that is often used as a cache. It is often used to improve the performance of web applications by storing data in memory that would otherwise be stored on a slower backing store, such as a database. Redis can be used as a cache in a variety of situations, including storing session data, storing the results of expensive database queries, or storing the results of computations that are expensive to perform. [name=ChatGPT 大導師]
Spring 生態系有種東西叫做 Spring Cloud Config Server
---
### Service Discovery
### Configuration Server
> property data source