Thực hiện theo dõi chuỗi phân tán trong .NET Core với Zipkin
Bài viết này trình bày cách tích hợp Zipkin để xây dựng hệ thống theo dõi luồng yêu cầu phân tán trong ứng dụng .NET Core. Với sự gia tăng quy mô hệ thống và số lượng dịch vụ triển khai trên Kubernetes, việc phát hiện lỗi do mạng hoặc hiệu suất không ổn định trở nên khó khăn hơn khi thiếu công cụ theo dõi. Do đó, giải pháp được lựa chọn là sử ...
Đăng vào ngày 2 tháng 9 lúc 06:53
Giải pháp triển khai API Gateway với Ocelot trên nền tảng .NET Core
1. Tổng quan và chuẩn bị môi trường
Để xây dựng một hệ thống Microservices mạnh mẽ, API Gateway đóng vai trò là cửa ngõ duy nhất tiếp nhận và điều phối các yêu cầu từ phía client. Ocelot là một framework mã nguồn mở phổ biến trong hệ sinh thái .NET, hỗ trợ đắc lực cho việc định tuyến, xác thực và quản lý lưu lượng.
Các thư viện cần thiết (NuGe ...
Đăng vào ngày 30 tháng 8 lúc 19:38
Cấu hình ứng dụng .NET Core sử dụng Consul
Trong .NET Core, việc đọc và quản lý cấu hình có thể được thực hiện thông qua các nguồn外部 như Consul, một hệ thống quản lý cấu hình tập trung. Thư viện Winton.Extensions.Configuration.Consul cung cấp một cách hiệu quả để đọc các giá trị key-value từ Consul.
Đầu tiên, bạn cần thêm thư viện này vào dự án của mình để bắt đầu sử dụng. Thư viện n ...
Đăng vào ngày 25 tháng 8 lúc 04:20
Triển khai liên tục với Jenkins Pipeline
Gần đây, tôi được yêu cầu chuyển sang sử dụng Jenkins Pipeline để triển khai dự án, đồng thời có thể thay đổi cấu hình triển khai trực tiếp trên Jenkins. Do các dự án khác sử dụng Pipeline khác biệt nhiều so với dự án của chúng tôi (Jenkins chạy trên Docker, quá trình build không thực hiện trên máy Jenkins mà trên máy phát triển), sau một thời ...
Đăng vào ngày 22 tháng 8 lúc 03:45
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