Tìm Hiểu Về Spring Cloud Config Server Với Ví Dụ - Openplanning
Có thể bạn quan tâm
- Tất cả tài liệu
- Java
- Java Basic
- Java Collections Framework
- Java IO
- Java New IO
- Java Date Time
- Servlet/JSP
- Eclipse Tech
- SWT
- RCP
- RAP
- Eclipse Plugin Tools
- XML & HTML
- Java Opensource
- Java Application Servers
- Maven
- Gradle
- Servlet/Jsp
- Thymeleaf
- Spring
- Spring Boot
- Spring Cloud
- Struts2
- Hibernate
- Java Web Service
- JavaFX
- SWT
- Oracle ADF
- Android
- iOS
- Python
- Swift
- C#
- C/C++
- Ruby
- Dart
- Batch
- Database
- Oracle
- MySQL
- SQL Server
- PostGres
- Other Database
- Oracle APEX
- Report
- Client
- ECMAScript / Javascript
- TypeScript
- NodeJS
- ReactJS
- Flutter
- AngularJS
- HTML
- CSS
- Bootstrap
- OS
- Ubuntu
- Solaris
- Mac OS
- VPS
- Git
- SAP
- Amazon AWS
- Khác
- Chưa phân loại
- Phần mềm & ứng dụng tiện ích
- VirtualBox
- VmWare
- Mục tiêu của bài học
- Config Server - Tại sao?
- Config Server lưu trữ dữ liệu thế nào?
- Tạo dự án Spring Boot
- Cấu hình Config Server
- Chạy ứng dụng
1. Mục tiêu của bài học
OK, đây là bước đầu tiên của bạn để xây dựng một ứng dụng phân tán sử dụng Spring Cloud. Trong bài học này tôi sẽ hướng dẫn bạn tạo một dịch vụ quản lý các cấu hình cho các dịch vụ khác.Các nội dung sẽ được thảo luận trong bài học này bao gồm:- Config Server là gì? Tại sao cần một Config Server trong ứng dụng phân tán.
- Giải thích về Quản lý cấu hình tập trung (Centralized Configuration management), và quản lý cấu hình theo phiên bản (Versioned Configuration Management).
- Thành lập một kho chứa (Repository), để lưu trữ các thông tin cấu hình.
- Xây dựng (Build) và chạy (Run) Spring Cloud Config Server.
2. Config Server - Tại sao?
OK, Bây giờ chúng ta sẽ thảo luận tại sao trong một ứng dụng phân tán (Distributed Application) bạn cần phải có một dịch vụ quản lý các cấu hình cho các dịch vụ khác trong ứng dụng.Dưới đây là một hình ảnh minh họa một ứng dụng phân tán - "Quản lý Taxi", nó gồm 3 dịch vụ con (ứng dụng con), mỗi dịch vụ được triển khai trên một máy chủ.Mỗi một dịch vụ (ứng dụng) là một Project được phát triển bởi một nhóm lập trình. Trong một project, ngoài mã (code) nó còn chứa các cấu hình, chẳng hạn như các thông tin kết nối vào cơ sở dữ liệu, thông tin vị trí các nguồn dữ liệu khác,... Sẽ là một ý tưởng tồi nếu bạn code cứng (hard code) các thông tin này trong mã của project. Vì vậy các thông tin này thường được đặt trong các tập tin riêng biệt, chúng được gọi là các tập tin cấu hình (Configuration file).Sau khi hoàn thành Project sẽ được đóng gói (pack) và triển khai lên Server. Thông thường các tập tin cấu hình sẽ được đóng gói cùng với code và tạo thành một sản phẩm (tập tin) duy nhất. Như vậy, nếu có thay đổi gì trong cấu hình bạn cần phải biên dịch (compile), và đóng gói (pack) lại project và triển khai lại lên Server. Đây rõ ràng là một thách thức trong một môi trường ứng dụng phân tán.Config Server?Ý tưởng để giải quyết vấn đề ở trên là cần có một dịch vụ (Ứng dụng) quản lý các cấu hình cho các dịch vụ khác, nó chạy độc lập trên một máy chủ.Ý tưởng trên mang lại các lợi ích sau:- TODO
- Spring Cloud Bus:
3. Config Server lưu trữ dữ liệu thế nào?
Khi bạn đặt tất cả các tập tin cấu hình trên Config Server, bạn sẽ đặt câu hỏi Config Server lưu trữ các tập tin đó như thế nào?Có 2 cách chính để Config Server lưu trữ các tập tin cấu hình:- Lưu trữ trên ổ cứng của máy chủ như các tập tin hệ thống (Files system).
- Sử dụng GIT hoặc SVN (Subversion).
Trong bài học này tôi sẽ tạo một Config Server, lưu trữ các tập tin cấu hình trên GitHub. Tôi đã tạo sẵn một GitHub Repository (Kho chứa):
- Sử dụng GitHub với GitHub Desktop
- https://github.com/o7planning/spring-cloud-config-git-repo-example
4. Tạo dự án Spring Boot
Trên Eclipse tạo một dự án Spring Boot:Nhập vào:
- Cài đặt Spring Tool Suite cho Eclipse
- Name: SpringCloudConfigServer
- Group: org.o7planning
- Artifact: SpringCloudConfigServer
- Description: Spring Cloud Config Server
- Package: org.o7planning.scconfigserver
Spring Boot phiên bản thử nghiệm 2.0.0.M..xx đang lỗi với Spring Cloud vì vậy chúng ta sẽ sử dụng Spring Boot 1.5.9.OK, Project đã được tạo ra:pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.o7planning</groupId> <artifactId>SpringCloudConfigServer</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>SpringCloudConfigServer</name> <description>Spring Cloud Config Server</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Edgware.RELEASE</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>@EnableConfigServerSpringCloudConfigServerApplication.javapackage org.o7planning.scconfigserver; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer; @EnableConfigServer // ==> Important!! @SpringBootApplication public class SpringCloudConfigServerApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudConfigServerApplication.class, args); } }
5. Cấu hình Config Server
Dịch vụ (ứng dụng) này sẽ được triển khai và chạy trên cổng 8888 và lưu trữ các tập tin cấu hình trên GitHub, vì vậy bạn cần một vài cấu hình trong tập tin application.properties.application.propertiesserver.port=8888 spring.cloud.config.server.git.uri=https://github.com/o7planning/spring-cloud-config-git-repo-example.git # For File System: # spring.profiles.active=native # spring.cloud.config.server.native.searchLocations=C:/Users/tran/Desktop/configNếu Git Server (Hoặc SVN Server) đòi hỏi username/password bạn cần phải cấu hình thêm, bạn có thể tham khảo thêm trong phần phụ lục phía cuối bài viết này.
6. Chạy ứng dụng
Nhấn phải chuột vào Project chọn:- Run As/Spring Boot App
- http://localhost:8888/spring-cloud-hello-service.properties
Bài học tiếp theo:
- Tìm hiểu về Spring Cloud Config Client với ví dụ
Các hướng dẫn Spring Cloud
- Điện toán đám mây (Cloud Computing) là gì?
- Giới thiệu về Netflix và công nghệ điện toán đám mây của họ
- Giới thiệu về Spring Cloud
- Tìm hiểu về Spring Cloud Config Server với ví dụ
- Tìm hiểu về Spring Cloud Config Client với ví dụ
- Tìm hiểu về Spring Cloud Eureka Server với ví dụ
- Tìm hiểu về Spring Cloud Discovery Eureka Client với ví dụ
- Tìm hiểu về cân bằng tải trong Spring Cloud với Ribbon và ví dụ
Các hướng dẫn Spring Cloud
- Điện toán đám mây (Cloud Computing) là gì?
- Giới thiệu về Netflix và công nghệ điện toán đám mây của họ
- Giới thiệu về Spring Cloud
- Tìm hiểu về Spring Cloud Config Server với ví dụ
- Tìm hiểu về Spring Cloud Config Client với ví dụ
- Tìm hiểu về Spring Cloud Eureka Server với ví dụ
- Tìm hiểu về Spring Cloud Discovery Eureka Client với ví dụ
- Tìm hiểu về cân bằng tải trong Spring Cloud với Ribbon và ví dụ
Các bài viết mới nhất
- Xử lý lỗi 404 trong Flutter GetX
- Ví dụ đăng nhập và đăng xuất với Flutter Getx
- Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
- Hướng dẫn và ví dụ Flutter multi_dropdown
- Hướng dẫn và ví dụ Flutter flutter_form_builder
- Hướng dẫn và ví dụ Flutter GetX obs Obx
- Hướng dẫn và ví dụ Flutter GetX GetBuilder
- Từ khoá part và part of trong Dart
- Hướng dẫn và ví dụ Flutter InkWell
- Bài thực hành Flutter SharedPreferences
- Hướng dẫn và ví dụ Flutter Radio
- Hướng dẫn và ví dụ Flutter Slider
- Hướng dẫn và ví dụ Flutter SkeletonLoader
- Chỉ định cổng cố định cho Flutter Web trên Android Studio
- Hướng dẫn và ví dụ Flutter SharedPreferences
- Tạo Module trong Flutter
- Flutter upload ảnh sử dụng http và ImagePicker
- Bài thực hành Dart http CRUD
- Hướng dẫn và ví dụ Flutter image_picker
- Flutter GridView với SliverGridDelegate tuỳ biến
- Các hướng dẫn Spring Cloud
Từ khóa » Tìm Hiểu Về Spring Cloud
-
Giới Thiệu Về Spring Cloud - Openplanning
-
Tìm Hiểu Spring Cloud Config - Kipalog
-
Sách Spring Boot Và Spring Cloud Hay Nhất Dành Cho Lập Trình Viên ...
-
Giới Thiệu Về Spring Boot. Spring Boot Là Gì? | TopDev
-
Tổng Quan Về Spring Framework - Viblo
-
Giới Thiệu Về Spring Cloud: Config (Phần 1) - HelpEx
-
Spring Boot Là Gì? - Vietnix
-
[Microservice] Dựng Microservice Web Bằng Spring Boot Và Eureka ...
-
Spring Cloud Netflix - Hướng Dẫn Java
-
Spring Cloud Và Spring Boot, Phần 1: Triển Khai Máy Chủ Eureka
-
Spring Cloud
-
Giới Thiệu Về Spring Boot Actuator - Hướng Dẫn Java
-
Spring Boot Là Gì? Bạn Cần Biết Những Gì Khi Học Spring Boot - ITNavi
-
Tìm Hiểu Về Spring Cloud Eureka Server Với Ví Dụ