- 1. Giới thiệu bối cảnh
- 2. Đặt hàng kinh doanh
- 1. Hệ thống đặt hàng
- 2. Quản lý quy trình
- 2.1 Phân chia quy trình
- 2.2 Quá trình chuyển tiếp
- 2.3 Quy trình ngược lại
- 2.4 Lập kế hoạch và giám sát
- 3. Thiết kế kết cấu
- 3. Giải pháp kỹ thuật
- 1. ID đơn hàng
- 2. Tính song song và tính không đồng bộ
- 3. Vấn đề hết thời gian
- 4. Giao dịch phân phối
- 4. Gói dữ liệu
- 1. Phân tích chuyển đổi
- 2. Thư viện con và bảng con
- 3. Đồng bộ hóa dữ liệu
- 5. Mã nguồn tham khảo
Đặt hàng, mô-đun cốt lõi của doanh nghiệp;
1. Giới thiệu bối cảnh
Kinh doanh đơn hàng luôn là mô-đun cốt lõi trong nghiên cứu và phát triển hệ thống. Quá trình tạo đơn hàng có liên quan chặt chẽ đến nhiều mô-đun trong hệ thống, chẳng hạn như hệ thống tài khoản, trung tâm thanh toán, quản lý vận hành, v.v. bản thân nó đã đủ phức tạp;
Trong quá trình phát triển kinh doanh, số lượng đơn đặt hàng chắc chắn sẽ tăng lên. Bản thân các đơn đặt hàng, khối lượng dữ liệu và quy trình thực hiện đều cần được cập nhật lặp đi lặp lại liên tục nếu không có sự xem xét tương đối toàn diện trong giai đoạn đầu nghiên cứu và phát triển. phát triển quá trình đặt hàng, nó sẽ rất khó khăn để tái thiết giai đoạn giữa đến cuối;
Từ kinh nghiệm thực tế, xung quanh việc kinh doanh đơn hàng: nên thiết kế tổng thể và triển khai nhẹ nhàng, từng bước một;.
Trong giai đoạn đầu của sản phẩm, hãy hoàn thành thiết kế toàn diện, duy trì khả năng mở rộng trong các kịch bản và quy trình, lập kế hoạch phản hồi cho các khối lượng khác nhau ở cấp độ dữ liệu, đi trước hoạt động kinh doanh theo đơn đặt hàng để tránh bị động và cố gắng không bị quá tải bởi hoạt động kinh doanh phát triển và Để lại sự tiến hóa phía sau;
2. Đặt hàng kinh doanh
1. Hệ thống đặt hàng
Từ góc độ vai trò, hệ thống đặt hàng chủ yếu có sự tham gia của ba người tham gia cốt lõi: người dùng, người bán và nền tảng. Quy trình đặt hàng được xây dựng xung quanh các kịch bản giao dịch của ba bên;
Một số chi tiết cần được giải thích ở đây: người bán có thể là người bán bên thứ ba hoặc chính nền tảng, điều này không ảnh hưởng đến việc phân chia khái niệm; hàng hóa cũng tồn tại dưới nhiều hình thức, vì vậy việc sử dụng giao hàng để mô tả chúng có thể bao hàm định nghĩa về hậu cần;
Người dùng: chọn sản phẩm và đặt hàng thông qua nền tảng ứng dụng: hiện thực hóa các liên kết giao dịch đặt hàng và khả năng thanh toán, cũng như lên lịch cho toàn bộ quá trình của người bán: cung cấp sản phẩm và khả năng giao hàng;
Trong hình, nó chỉ là một khuôn khổ và mô tả rộng rãi xung quanh hệ thống đặt hàng Trong một doanh nghiệp đặt hàng trưởng thành, độ phức tạp của nó lớn hơn nhiều so với hình trên. Sau đây là phân tích chi tiết về các nút cốt lõi;
2. Quản lý quy trình
2.1 Phân chia quy trình
Thuộc tính kinh doanh của đơn đặt hàng là cực kỳ cao và bản thân quy trình cũng tương đối phức tạp Từ quan điểm của những người tham gia khác nhau, các chiến lược phân khúc quy trình là hoàn toàn khác nhau. Ở đây chúng tôi chỉ xem xét khía cạnh R&D và chia logic đơn hàng thành: sáng tạo, thanh toán và giao hàng.
- Tạo đơn hàng: quản lý đường dẫn đặt hàng của người dùng, từ việc truy cập sản phẩm, nhấp và chọn sản phẩm, đến đặt hàng ô tô hoặc đặt hàng trực tiếp, từ đó hoàn thành việc tạo đơn hàng;
- Thanh toán đơn hàng: Việc kết nối các kênh thanh toán khác nhau là chức năng cơ bản của kịch bản giao dịch và trạng thái cốt lõi của đơn hàng là thanh toán thành công;
- Giao hàng: Sau khi hoàn tất thanh toán đơn hàng, quá trình giao hàng bắt đầu, có thể là việc vận chuyển hoặc cung cấp dịch vụ của người bán. Giao hàng thành công có nghĩa là đơn hàng đã được hoàn thành;
Nếu chúng ta xem xét toàn bộ kịch bản đặt hàng một cách tổng thể, vẫn còn nhiều quy trình ẩn và có nhiều hoạt động kinh doanh thượng nguồn và hạ nguồn được kết nối với đơn hàng. Ở đây chúng ta chỉ tập trung vào việc phân chia ranh giới của chính chức năng đặt hàng;
2.2 Quá trình chuyển tiếp
Ở trạng thái lý tưởng, đơn hàng bắt đầu từ việc thanh toán giỏ hàng, đến khi hoàn thành thanh toán giao dịch và cuối cùng đến người bán để hoàn tất việc giao hàng, đây là một liên kết quy trình rất phức tạp;
Về mặt triển khai, các liên kết quy trình chuyển tiếp của đơn đặt hàng được quản lý theo từng phân đoạn, chẳng hạn như giỏ hàng, sau khi tạo đơn hàng, hoàn tất thanh toán, giao hàng và nhiều nút chính khác, không phải là một quy trình tức thời;
2.3 Quy trình ngược lại
Đối với các quy trình cực kỳ phức tạp như đơn đặt hàng dẫn đến quy trình đặt hàng ngược lại, chúng tôi phải xem xét cẩn thận và đưa ra giải pháp tương ứng, đồng thời cố gắng đảm bảo rằng chương trình có thể đảo ngược quy trình. Chi phí và rủi ro khi can thiệp thủ công là cực kỳ cao;
- Hành động hủy: Người dùng chủ động hủy đơn hàng, bắt đầu quy trình hoàn tiền, v.v.; người bán chủ động bắt đầu quy trình trả lại hàng do giao hàng không thành công;
- Tình huống hết thời gian chờ: Sau khi đơn hàng được tạo, không có khoản thanh toán nào trong thời gian quy định; sau khi đơn hàng được thanh toán, người bán không giao hàng trong thời gian quy định, v.v. Có nhiều tình huống hết thời gian chờ;
- Sự bất thường của nút: sự bất thường trong kinh doanh của nền tảng hệ thống trong quá trình gửi đơn hàng hoặc sự bất thường của chương trình hoặc sự bất thường của kênh bên thứ ba như thanh toán, v.v.;
Những sự cố bất thường phổ biến này có thể không gây ra sự cố ảnh hưởng trong các tình huống phức tạp như đơn hàng bị tách không đồng bộ, cần có cơ chế ổn định để thực hiện nhanh chóng quy trình ngược lại, ví dụ: không thanh toán sau khi đặt hàng dẫn đến khóa hàng tồn kho liên tục; hoặc thời gian chờ phân phối ảnh hưởng đến trải nghiệm người dùng, v.v.;
2.4 Lập kế hoạch và giám sát
Đơn hàng là các quy trình cốt lõi và có những đặc điểm phức tạp nên đương nhiên chúng dựa vào các phương pháp lập lịch và giám sát của nền tảng hệ thống. Cho dù đó là quy trình thuận hay ngược, tất cả đều dựa vào các phương pháp lập lịch để cải thiện tỷ lệ hoàn thành đơn hàng hoặc để thúc đẩy. việc thực hiện có trật tự quy trình ngược lại. Trong quy trình này Yêu cầu khả năng giám sát hoàn chỉnh cho các đường dẫn đơn hàng;
Cơ chế lập lịch: Nó tập trung nhiều hơn vào việc xử lý trạng thái thụ động của đơn hàng. Nó thường được sử dụng trong các tình huống hết thời gian chờ khác nhau. Nó được sử dụng để nhắc nhở người dùng và người bán trước hoặc để xử lý quy trình đặt hàng;
Chiến lược giám sát: tập trung nhiều hơn vào việc can thiệp tích cực vào đơn hàng. Khi một đơn hàng bị gián đoạn hoặc bất thường, nó có thể được chủ động sửa chữa thông qua lối vào cấp sản phẩm hoặc chủ động thử lại ở cấp hệ thống.
3. Thiết kế kết cấu
Xung quanh kịch bản đơn hàng, cấu trúc dữ liệu liên quan rất phức tạp Cho dù đó là hàng hóa, thanh toán hay chính cấu trúc của đơn hàng, nhiều bảng liên quan sẽ được mở rộng trong các doanh nghiệp cụ thể;
Việc thiết kế và quản lý cấu trúc đơn hàng, dựa trên mức độ phức tạp của kịch bản, có thể liên quan đến việc tích hợp người bán, kệ lưu trữ, người dùng, kênh, loại hình, v.v. sau khi khối lượng đơn hàng tăng lên, cũng cần kết hợp các kịch bản kinh doanh để thực hiện xử lý phân chia ở mức khối lượng dữ liệu;
3. Giải pháp kỹ thuật
1. ID đơn hàng
ID duy nhất của chủ thể đơn hàng Khi khối lượng dữ liệu không lớn, chỉ cần sử dụng khóa chính ID tự động tăng của bảng về lâu dài sẽ không thân thiện. Nếu khối lượng đơn hàng tương đối lớn. nó có thể liên quan đến quá trình cơ sở dữ liệu phụ và bảng phụ. Sau đó, bạn cần xây dựng chiến lược tạo ID;
- Mã UUID : Tạo mã nhận dạng chuỗi duy nhất và sử dụng trực tiếp ID đơn hàng;
- thuật toán bông tuyết : Chiến lược thuật toán tạo ID phân tán, ID được tạo theo thứ tự thời gian;
- ID tùy chỉnh : Ngoài các thuộc tính duy nhất, hãy thêm các mã nhận dạng doanh nghiệp quan trọng khác vào ID đơn đặt hàng;
2. Tính song song và tính không đồng bộ
Hoạt động song song. Trong quá trình tải chi tiết đơn hàng, có rất nhiều thông tin truy vấn, chẳng hạn như sản phẩm, người bán, đơn hàng, người dùng, v.v. Thời gian phản hồi có thể được cải thiện thông qua các phương thức song song. Hiệu suất sẽ tồi tệ hơn nhiều;
Hoạt động không đồng bộ, thứ tự là một quy trình phức tạp và rõ ràng là không thể hoàn thành tất cả logic trong một quy trình. Phương pháp thông thường của quy trình không đồng bộ được phân đoạn, đó là sử dụng các thông báo MQ, cũng có thể cải thiện đáng kể hiệu suất dịch vụ cho dù đó là chuyển tiếp hay; quá trình đảo ngược của trật tự, tất cả có thể thực hiện xử lý tách rời không đồng bộ dựa trên trạng thái, sự kiện và hành động;
3. Vấn đề hết thời gian
Bản chất của vấn đề hết thời gian chờ đặt hàng là một hành động cần được thực hiện sau một khoảng thời gian xác định, ví dụ: trong trường hợp cổ điển nhất, nếu đơn hàng không được thanh toán trong hơn 15||30 phút sau khi đơn hàng được đặt; , đơn hàng sẽ tự động bị hủy và đóng, hàng tồn kho của sản phẩm sẽ được giải phóng và người dùng sẽ được thông báo;
Có nhiều cách để triển khai việc thực hiện một hành động bị trì hoãn, chẳng hạn như hàng đợi bị trì hoãn, quá trình nghe đã hết hạn, việc tiêu thụ tin nhắn bị trì hoãn, v.v. Tuy nhiên, những phương pháp này không phổ biến trong các hệ thống đặt hàng phức tạp. Phương pháp chủ đạo vẫn là sử dụng lập lịch tác vụ theo lịch trình;
Khi lập kế hoạch nhiệm vụ, khi xử lý đơn hàng, cũng cần phải đảm bảo tính bình thường của các hoạt động trong quy trình kinh doanh, tính nhất quán của cấp độ dữ liệu và các vấn đề khác. Nếu xảy ra đơn hàng bất thường, hãy thử lại nó. liên tục tối ưu hóa quy trình;
Nếu quy mô đơn hàng lớn, liệu việc lập kế hoạch nhiệm vụ có thể được hoàn thành không?
Khối lượng đơn đặt hàng và khối lượng đơn đặt hàng theo thời gian thực không giống nhau. Khối lượng đơn đặt hàng được hệ thống gửi và khối lượng nhiệm vụ cần xử lý không ở cùng một mức. Khối lượng dữ liệu thông thường chỉ cần được thiết kế. và truy vấn được tối ưu hóa cho cơ sở dữ liệu phụ và bảng, và sẽ không trở thành vấn đề tắc nghẽn lịch trình;
Điều gì sẽ xảy ra nếu khối lượng dữ liệu đơn hàng theo thời gian thực lớn, chẳng hạn như hơn 10 triệu mỗi ngày?
Đây không còn là vấn đề của ứng dụng nữa. Khối lượng đặt hàng có thể lên tới hàng chục triệu mỗi ngày. Công ty sẽ đưa nhóm dữ liệu đến nhóm ứng dụng từ rất lâu để giải quyết vấn đề hóc búa cốt lõi này. Trước đây, công ty dữ liệu đã chuyển đi. những viên gạch, khối lượng đặt hàng hàng ngày vừa vượt quá một triệu, và nhóm dữ liệu đã được bố trí để tìm ra giải pháp;
4. Giao dịch phân phối
Đơn đặt hàng bao gồm nhiều quy trình phức tạp khác nhau như chốt thanh toán, quản lý hàng tồn kho, thanh toán và đối chiếu, v.v. Đương nhiên, có yêu cầu cực kỳ cao về tính nhất quán của dữ liệu. Nếu có vấn đề xảy ra ở cấp độ dữ liệu và xuất hiện các đơn hàng bất thường, chắc chắn sẽ cần phải can thiệp thủ công. , tất cả các khía cạnh của quy trình đều được yêu cầu. Điều cực kỳ quan trọng là phải thực hiện giao dịch chi tiết và quản lý hợp lý ở từng giai đoạn;
Quá trình đặt hàng được thúc đẩy theo cách không đồng bộ và tách rời. Trong chiến lược giao dịch phân tán, tính nhất quán của kết quả cuối cùng chỉ được theo đuổi. Tuy nhiên, điều này không ngăn cản việc quản lý giao dịch cục bộ trong quy trình được phân đoạn. Chuyển tiếp tiến lên, giao dịch thất bại, thử lại quy trình hoặc khôi phục ngược lại;
4. Gói dữ liệu
1. Phân tích chuyển đổi
Hệ thống chỉ báo đơn hàng cổ điển và thống kê đường dẫn của quy trình đặt hàng của người dùng cho phép phân tích chuyên sâu các vấn đề về tỷ lệ chuyển đổi và tối ưu hóa liên tục các quy trình và kịch bản để tăng khối lượng giao dịch;
Phân tích đường dẫn chuyển đổi giao dịch là một hệ thống chỉ báo tập trung vào sản phẩm và hoạt động ở cấp độ dữ liệu, dữ liệu được thu thập tại các điểm ẩn thường được tải lên nền tảng của bên thứ ba để hỗ trợ phân tích người dùng và doanh nghiệp, đồng thời góp phần tiếp thị và quảng bá. của các nhóm khách hàng tương tự;
2. Thư viện con và bảng con
Sau khi dữ liệu đạt đến một khối lượng nhất định, nó cần được chia thành các cơ sở dữ liệu và bảng để giải quyết các vấn đề về hiệu suất khác nhau; dữ liệu thứ tự được tính toán theo các kích thước cụ thể, từ đó chuyển dữ liệu sang các bảng cơ sở dữ liệu khác nhau để giải quyết vấn đề tắc nghẽn đọc và ghi; ;
Logic tính toán phân chia dựa trên ID đơn hàng là phổ biến nhất. Trong trường hợp đặc biệt, nó cũng sẽ được tính toán dựa trên ID người dùng hoặc ID người bán, từ đó xếp chồng các dữ liệu liên quan lại với nhau. Nếu cần, cũng có thể xem xét phân chia đa chiều. -chế độ viết;
3. Đồng bộ hóa dữ liệu
Mặc dù việc phân chia dữ liệu theo thứ tự giải quyết được các vấn đề về lưu trữ nhưng nó cũng mang lại nhiều trở ngại cho truy vấn. Giải quyết các vấn đề truy vấn thông qua các công cụ tìm kiếm cũng là một lựa chọn công nghệ phổ biến;
Có nhiều cách để đồng bộ hóa dữ liệu thứ tự giữa cơ sở dữ liệu và công cụ tìm kiếm: ghi kép đồng bộ, có yêu cầu thời gian thực cực cao đối với dữ liệu; tách rời không đồng bộ, có một chút chậm trễ trong quá trình thực hiện các tác vụ đã lên lịch, có tính kịp thời rõ ràng; vấn đề; đồng bộ hóa thành phần, Sử dụng các thành phần đồng bộ hóa dữ liệu của bên thứ ba, trong các tình huống theo thứ tự, nên sử dụng phương pháp ghi kép đồng bộ.
5. Mã nguồn tham khảo
Tài liệu lập trình: https://gitee.com/cicadasmile/butte-java-note Kho ứng dụng: https://gitee.com/cicadasmile/butte-flyer-parent
Cuối cùng, bài viết về thiết kế và triển khai hoạt động kinh doanh "Đặt hàng" kết thúc tại đây. Nếu bạn muốn biết thêm về việc thiết kế và triển khai hoạt động kinh doanh "Đặt hàng", vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. mong bạn sẽ ủng hộ blog của mình trong tương lai nhé! .
Tôi là một lập trình viên xuất sắc, rất giỏi!