Bài đăng

Fork/Join framework trong Java

Hình ảnh
  Fork/Join framework là một implementation của ExecutorService interface, nó giúp bạn có thể tận dụng được lợi thế của bộ xử lý nhiều luồng. Fork/Join framework được thiết kế cho các công việc mà có thể chia nhỏ liên tục thành các phần nhỏ hơn (chia để trị). Mục đích của việc này là sử dụng tất cả sức mạnh tính toán của hệ thống để cải thiện hiệu suất cho ứng dụng.

Tìm hiểu những thứ bên trong Docker

Hình ảnh
Docker sử dụng các chức năng của Linux kernel cho tính năng của nó. NAMESPACES Docker sử dụng kernel namespaces để cung cấp một môi trường độc lập được gọi là container. Khi bạn chạy một container, Docker tạo ra một tập các namespaces cho container này. Những namespaces này cung cấp một layer cho việc ngăn cách, tạo ra sự độc lập cho container. Mỗi phần của một container chạy trong một namespace riêng biệt và khả năng truy cập được giới hạn trong namespace đó. Docker Engine sử dụng những namespace sau trong Linux: PID namespace cho việc cô lập process NET namespace cho việc quản lý network interfaces IPC namespace cho việc quản lý access đến IPC resources (Inter Process Communication) MNT namespace cho việc quản lý filesystem mount points. UTS namespace cho việc cô lập kernel và version identifiers. CGROUPS Docker cũng sử dụng kernel control group để phân bổ và cô lập resource. Một cgroup giới hạn một ứng dụng cho một tập resource nhất định. Control groups cho phép Docker Engin...

Spring Cloud Config Server và cách tạo một Config Server đơn giản

Hình ảnh
Khi xây dựng ứng dụng theo hướng Microservices, có nhiều thách thức cần được giải quyết. Một trong những vấn đề đó là "làm sao để quản lý các cấu hình trong cụm các microservices và làm sao để chúng được phân phối dễ dàng?" . Spring Cloud Config cung cấp giải pháp theo hướng của Spring, dựa trên các annotations và Spring beans. Đây là một cách dễ dàng để giải quyết vấn đề đối với các module đã được đóng gói, khi đó ta coi các module này là immutable. Có 3 thành phần chính trong module Spring Cloud Config đó là Configuration Repository , là hệ thống quản lý phiên bản, Config Server , cung cấp các cấu hình, và Configuration Client , sử dụng cấu hình từ Config Server. Module này cung cấp các file cấu hình thông qua HTTP interface. Các microservices của chúng ta sẽ không có file application.yaml trong trường hợp này. Như vậy trong quá trình bootstrap, chúng sẽ tìm kiếm trong Config Server để tìm đúng file config của mình, sau đó quá trình bootstrap sẽ kết thúc và đi đến ...

Dấu hiệu của một Microservice không tốt

Dưới đây là những dấu hiệu của một Microservice không tốt trong ứng dụng Microservices. Lưu ý là số ít và số nhiều nhé. Một service với nhiều nhiệm vụ: Flow chính của business logic trong service là phức tạp và có vẻ phải tuân thủ nhiều business rules khác nhau. Một service quản lý dữ liệu của một lượng lớn các bảng: Một microservice là nguồn dữ liệu độc quyền cho dữ liệu mà nó quản lý. Nghĩa là chỉ nó có thể thao tác trên dữ liệu đó. Nếu bạn thấy bạn thao tác với dữ liệu trên nhiều bảng hoặc lấy dữ liệu từ bảng biên ngoài của cơ sở dữ liệu hiện tại, thì đây là một service quá lớn. Một microservice không nên giữ nhiều hơn 5 bảng. Nếu nhiều hơn, thì nghĩa là service có vẻ có quá nhiều nhiệm vụ. Có quá nhiều test cases: Các services có thể tăng kích thước và nhiệm vụ qua thời gian. Nếu bạn có một service mà bắt đầu với một lượng nhỉ các test case và kết thúc với khoảng trăm unit và integration test case, bạn có thể cần phải refactor. Còn về một microservice quá nhỏ? Các microserv...

Tổng quan về Microservices

Một số thông tin về Micoservices: Microservices là các chức năng nhỏ được tách ra từ một phạm vi chức năng. Không có định nghĩa chính xác cho microservices. Không giống như các giao thức web service trước đây, microservices có hướng tiếp cận dựa trên REST và JSON. Viết microservices là đơn giản, nhưng vận hành chúng trong toàn bộ sản phẩm cần thêm nhiều chất xám.

Spring Cloud là gì?

Spring Cloud cung cấp các công cụ dành cho các developers có thể nhanh chóng xây dựng những mẫu thiết kế phổ biến trong các hệ thống phân tán, ví dụ như quản lý cấu hình, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed session, cluster state). Điều phối các hệ thống phân tán dẫn đến các boiler plate patterns, và sử fungj Spring Cloud, các nhà phát triển có thể nhanh chóng dựng nên các services và ứng ựng mà hiện thực những patterns này. Chúng sẽ hoạt động tốt trong mọi môi trường phân tán, bao gồm cả máy tính của nhà phát triển đó, các trung tâm dữ liệ và các nền tảng như Cloud Foundry. Spring Cloud xây dựng trên Spring Boot bằng việc cung cấp một tập các thư viện mà cải thiện hành vi của một ứng dụng khi thêm vào classpath. Bạn có thể tận dụng ưu điểm của hành vi mặc định để tạo một dự án quick start, và sau đó khi bạn cần, bạn có thể cấu hình hoặc mở rộng để tạo một custom solution. ...

Angular - Architecture overview

Hình ảnh
Angular là một platform và framework để xây dựng các ứng dụng phía client bằng HTML và TypeScript. Angular được viết bởi TypeScript. Nó implement core và các chức năng tùy chọn thông qua các thư viện TypeScript mà bạn import vào app của bạn.