Giải pháp khóa phân tán RedLockNet trong .NET Core

Địa chỉ mã nguồn trên GitHub samcook/RedLock.net - Triển khai thuật toán Redlock bằng C# Cấu trúc mã nguồn Các lớp chính: RedLockFactory, RedLock Khởi tạo và giải phóng khóa Phân tích từ lớp RedLock: private readonly ICollection<RedisConnection> redisNodes; // Tập hợp node Redis private readonly int requiredNodes; // Số lượng cần thiết để ...

Đăng vào ngày 2 tháng 8 lúc 01:19

Hệ thống hai token JWT

Lý do cần làm mới token JWTToken truy cập (Access Token) xử lý yêu cầu nghiệp vụ, Token làm mới (Refresh Token) quản lý gia hạn, phân tách quyền hạn để giảm thiểu rủi ro khi bị rò rỉ Hệ thống hai token nhằm đạt được hai mục tiêu: tự động gia hạn và bảo mật Cơ chế làm mới JWT (JSON Web Token) giải quyết mâu thuẫn giữa tính bảo mật của token ngắn ...

Đăng vào ngày 8 tháng 7 lúc 07:12

Tối ưu hóa hiệu suất API cho các tác vụ xử lý dữ liệu lớn bằng Background Jobs

Trong quá trình phát triển ứng dụng web, các tác vụ xử lý dữ liệu nặng hoặc gọi API bên thứ ba có độ trễ lớn thường làm giảm trải nghiệm người dùng do thời gian chờ đợi phản hồi (timeout). Để giải quyết vấn đề này, việc chuyển đổi các tác vụ đồng bộ sang xử lý bất đồng bộ thông qua Background Jobs là một giải pháp tối ưu. Dưới đây là cách triển ...

Đăng vào ngày 29 tháng 6 lúc 16:12

Xây dựng Identity hỗ trợ nhiều cơ sở dữ liệu khác nhau trong .NET Core

Bài viết này hướng dẫn cách tách riêng logic Identity thành các dự án độc lập, cho phép dễ dàng chuyển đổi hoặc hỗ trợ nhiều loại cơ sở dữ liệu khác nhau (MySQL, SQL Server, PostgreSQL...) mà không làm ảnh hưởng đến code chính. 1. Tạo thư viện EF chung (ExtendEF) Đầu tiên, tạo một thư viện lớp chứa các định nghĩa entity và DbContext dùng chung ...

Đăng vào ngày 29 tháng 6 lúc 13:23

Thực hiện AOP bằng AutoFac trong .NET Core

Thêm thư viện cần thiết Sử dụng Nuget để cài đặt gói Autofac.Extras.DynamicProxy. Xây dựng lớp ghi nhận hành vi /// <summary> /// Lớp xử lý giao diện (thực hiện Castle.DynamicProxy.IInterceptor) /// </summary> public class GhiNhanKetQua : IInterceptor { public void Intercept(IInvocation invocation) { Console.WriteLin ...

Đăng vào ngày 29 tháng 6 lúc 06:52

Tích hợp Nacos với .NET Core và Ocelot

Cài đặt từ nuget: nacos-sdk-csharp.Extensions.Configuration Để cài đặt Nacos thông qua Docker, lưu ý rằng các phiên bản mới mở thêm cổng 9848 và 9849 cho giao tiếp GRPC: docker run --name nacos \ -e MODE=standalone \ -p 8848:8848 -d \ -p 9848:9848 \ -p 9849:9849 \ --restart always nacos/nacos-server:latest Truy cập giao diện Nacos tại: http:/ ...

Đăng vào ngày 27 tháng 6 lúc 18:19

MongoDB Compass - Công cụ giao diện quản lý CSDL

Cấu hình kết nối MongoDB qua giao diện người dùng Tải xuống MongoDB Compass (GUI) | Hướng dẫn kết nối Cú pháp kết nối terminal: mongo IP:PORT/TEN_CSDL -u TEN_TAI_KHOAN -p MAT_KHAU Ví dụ: 192.168.0.168:27017/test -u admin -p 123456 Thiết lập ứng dụng .NET Kết nối CSDL MongoDB: mongodb://localhost:27017 Định dạng chuỗi kết nối đầy đủ: mongodb://T ...

Đăng vào ngày 26 tháng 6 lúc 04:30

Đóng gói thư viện Canal trong .NET Core

Bài viết này sẽ hướng dẫn cách đóng gói và sử dụng Canal trong ứng dụng .NET Core, bao gồm việc tạo service chạy nền, xử lý dữ liệu thay đổi từ cơ sở dữ liệu và cấu hình kết nối. Service chạy nền Để lắng nghe và xử lý các thay đổi từ Canal, chúng ta triển khai service nền bằng IHostedService. Service này chịu trách nhiệm kết nối, nhận message ...

Đăng vào ngày 25 tháng 6 lúc 16:21

Hiểu sâu về Dependency Injection trong .NET

Nguyên tắc Inversion of Control (IoC) Dependency Injection (DI) là một kỹ thuật cụ thể để thực hiện nguyên lý Inversion of Control – đảo ngược kiểm soát. Thay vì các thành phần tự tạo ra phụ thuộc của mình, chúng được cung cấp từ bên ngoài bởi một container quản lý. Trước đây, lập trình viên phải chủ động khởi tạo đối tượng: IDbConnection conne ...

Đăng vào ngày 24 tháng 6 lúc 20:00

Triển khai Ứng dụng .NET Core trên CentOS với Quản lý Đa Tiến trình bằng Supervisor

Chuẩn bị Môi trường Yêu cầu hệ thống: Dự án .NET Core đã kiểm thử cục bộ Máy ảo CentOS 7+ Công cụ kết nối SSH như MobaXterm Cấu hình Firewall Kiểm tra cổng đang sử dụng: ss -tuln | grep 6000 Mở cổng ứng dụng và giao diện Supervisor: firewall-cmd --zone=public --add-port=6000/tcp --permanent firewall-cmd --zone=public --add-port=6001/tcp --pe ...

Đăng vào ngày 18 tháng 6 lúc 21:43