2010-09-21 18 views
10

Làm thế nào là khả năng chịu lỗi erlang, hoặc giúp đỡ về vấn đề đó?Làm thế nào là lỗi khoan dung erlang, hoặc giúp đỡ trong vấn đề đó?

+3

Tôi ước mọi người sẽ giải thích các downvotes, vì ai đó không quen thuộc với chủ đề nó có thể cung cấp ít nhất một số thông tin thú vị. –

+6

cũng trang chính nói rằng nó là lỗi khoan dung, là tò mò làm thế nào nó cung cấp này? – Blankman

Trả lời

1

Erlang giúp bạn dễ dàng tạo nhiều quy trình nhỏ và theo dõi các quy trình đó. Khi một trong các quy trình đó bị treo, có thể khởi động lại phần đó của hệ thống mà không cần phải giảm toàn bộ.

Bạn có thể đã thấy một cái gì đó như thế này trong các phiên bản Windows hiện đại: hệ thống có thể khởi động lại trình điều khiển đồ họa nếu nó bị treo; nó không giết toàn bộ hệ thống.

Để dễ dàng viết các ứng dụng chịu lỗi, Erlang cung cấp khái niệm về các quy trình giám sát. Các quy trình này theo dõi một số quy trình con và biết cách trả lời nếu một đứa trẻ chết. Bạn có thể tạo ra một cây giám sát toàn bộ, để bạn có quyền kiểm soát tốt về cách các phần khác nhau của ứng dụng hoạt động như thế nào. Bạn có thể đọc thêm in the Erlang documentation.

2

Lưu ý: Tôi là một Noob của Erlang.

@ Câu trả lời của Daniel về cơ bản là chính xác. Tôi đặc biệt khuyên bạn nên dành thời gian đọc Erlang của tác giả Joe Armstrong thesis (Làm cho hệ thống phân phối đáng tin cậy trong sự hiện diện của lỗi phần mềm). Luận án cung cấp một giải thích tốt về nhu cầu và giải pháp để phát triển các hệ thống phân tán mạnh mẽ. Tôi tin rằng bài báo sẽ trả lời câu hỏi của bạn một cách thỏa đáng.

+0

Hehe, tôi cũng là một Erlang noob, nhưng tôi đã nói những gì tôi đã nói bởi vì đó là cách mà hệ thống Erlang thành ngữ về cơ bản khác với một hệ thống trong hầu như mọi môi trường khác. Hay đúng hơn, các hệ thống khác dường như không đưa ra lời khuyên nào về cách xử lý những vấn đề này, trong khi Erlang làm. –

4

Tôi nghĩ rằng tôi đã đề cập một phần câu trả lời trong số this reply to another thread.

+1

Câu trả lời của bạn trong chủ đề khác khá hoàn chỉnh. Mọi người quan tâm chắc chắn nên xem xét. –

3

Erlang là lỗi khoan dung với những điều sau đây trong tâm trí:

  • Erlang biết rằng lỗi sẽ xảy ra, và điều này sẽ phá vỡ, vì vậy thay vì bảo vệ chống lại các lỗi, Erlang cho phép bạn có các công cụ mạnh mẽ để giảm thiểu tác động lỗi và khôi phục chúng khi chúng xảy ra.

  • Erlang khuyến khích bạn lập trình cho trường hợp thành công và gặp sự cố nếu xảy ra sự cố mà không cố khôi phục dữ liệu bị hỏng một phần. Ý tưởng đằng sau điều này là một phần dữ liệu không chính xác có thể lan truyền hơn nữa trong hệ thống của bạn và có thể được ghi vào cơ sở dữ liệu, và do đó trình bày rủi ro cho hệ thống của bạn. Tốt hơn để loại bỏ nó sớm và chỉ giữ dữ liệu hoàn toàn chính xác.

  • Cách ly quy trình trong Erlang giúp giảm thiểu tác động của dữ liệu sai một phần khi nó xuất hiện và sau đó dẫn đến xử lý sự cố. Hệ thống dọn dẹp mã bị lỗi và bộ nhớ của nó nhưng vẫn hoạt động như một toàn thể.

  • Chiến lược giám sát và khởi động lại giúp hệ thống của bạn hoạt động đầy đủ nếu các bộ phận bị hỏng bằng cách khởi động lại các phần quan trọng của hệ thống và đưa chúng trở lại dịch vụ. Nếu một cái gì đó đi rất sai như vậy mà khởi động lại xảy ra quá nhiều, hệ thống được coi là bị hỏng ngoài sửa chữa và do đó là đóng cửa.

Các vấn đề liên quan