2011-12-29 32 views
15

Tôi đang chơi với ý tưởng sử dụng RavenDB làm kho dữ liệu cho một ứng dụng rất có thể sẽ có một giao diện người dùng HTML, một giao diện người dùng WebService và các tiện ích máy chủ cũng sẽ truy cập dữ liệu. Một lý do cho việc sử dụng RavenDB là việc mở rộng theo chiều ngang mà nó cung cấp thông qua việc sao chép và sharding. Tuy nhiên, nó có vẻ như có một số cân nhắc xung quanh chạy Raven như một dịch vụ Windows hoặc chạy nó thông qua IIS.Tôi có nên chạy RavenDB như một dịch vụ Windows hoặc thông qua IIS không?

  • An ninh - Là dịch vụ Raven an toàn hơn hoặc sẽ sử dụng IIS cho phép tôi linh hoạt hơn để hạn chế bởi địa chỉ IP, NET Membership vv
  • Caching - Nó có vẻ như IIS là sự lựa chọn tốt hơn cho tính năng này
  • Kiến trúc - Vì tôi không muốn bất kỳ bên thứ ba nào truy cập vào kho lưu trữ dữ liệu thực sự có ý nghĩa khi tiếp xúc với Raven thông qua IIS. Ngoài ra, sẽ có một lớp nghiệp vụ giữa Raven và các giao diện người dùng và tiện ích khác nhau, do đó liên quan đến IIS có vẻ không cần thiết và có thể dẫn đến sự phức tạp không cần thiết.
  • Hiệu suất - Đường ống IIS có thể có nhiều phí trên mỗi yêu cầu hơn là dịch vụ cửa sổ
  • Chia tỷ lệ - Sử dụng IIS có thể phức tạp hơn trên nhiều máy chủ thay vì cài đặt dịch vụ Raven với một tệp hàng loạt nhỏ

EDITED

tôi có thể hiểu được sử dụng cấu hình Embedded Raven nếu tất cả các bạn có là một khách hàng web duy nhất nhưng khi bạn có khách hàng khác nhau, API Raven cần phải được tiếp xúc một cách độc lập để ngăn chặn một khách hàng fro m khóa các tập tin dữ liệu.

Trả lời

16

Jedatu, Chúng tôi thường lưu trữ RavenDB bên trong IIS, đặc biệt là quản lý máy chủ dễ dàng hơn khi IIS quản lý tất cả kích hoạt, v.v. Chúng tôi chưa thấy bất kỳ ý nghĩa nào sự khác biệt và IIS có các tùy chọn đẹp hơn để quản lý hạt mịn.

+0

Cảm ơn bạn đã trả lời. –

5

An ninh - Là dịch vụ Raven hơn an toàn hoặc sử dụng IIS sẽ cho phép tôi linh hoạt hơn để hạn chế bởi địa chỉ IP, NET Membership vv

Sử dụng một quá trình riêng biệt là an toàn hơn.

Caching - Nó có vẻ như IIS là sự lựa chọn tốt hơn cho tính năng này

DB bộ nhớ đệm (tài liệu tổ chức bộ nhớ đệm) không được giống như IIS bộ nhớ đệm (mà lưu trữ các trang được tạo ra hoặc các bộ phận của trang)

Kiến trúc - Vì tôi không muốn bất kỳ bên thứ ba nào truy cập vào kho lưu trữ dữ liệu thực sự có ý nghĩa khi hiển thị Raven thông qua IIS. Ngoài ra, sẽ có một lớp nghiệp vụ giữa Raven và các giao diện người dùng và tiện ích khác nhau, do đó liên quan đến IIS có vẻ không cần thiết và có thể dẫn đến sự phức tạp không cần thiết.

Bất kỳ ai truy cập vào thư mục Dữ liệu đều có thể mở nó bằng con quạ. Không quan trọng nó nằm ở đâu trừ khi bạn bảo vệ nó bằng các tính năng bảo mật của windows.

Performance - IIS có thể có chi phí hơn so với dịch vụ cửa sổ

Bạn đang đề cập đến một sự khởi đầu lạnh? Sử dụng Raven nhúng loại bỏ các yêu cầu HTTP giữa máy khách và máy chủ.

Scaling - Sử dụng IIS có lẽ là phức tạp hơn để mở rộng ra trên nhiều máy chủ như trái ngược với chỉ cài đặt các dịch vụ Raven với một tập tin thực thi nhỏ

Nhiều máy chủ cần một ví dụ Raven riêng biệt mà tất cả IIS: es có thể nói chuyện với.

+0

Đây là thông tin hữu ích, tuy nhiên tôi không thể cho biết bạn đang đề xuất tùy chọn nào cho trường hợp này? – jedatu

+0

Tôi chỉ nói rằng những cân nhắc của bạn không thực sự hợp lệ. Tôi sẽ đi cho một dịch vụ nếu tôi có thể. Có vẻ mạnh mẽ hơn và quy mô tốt hơn. Có bộ nhớ riêng của nó cũng giúp ích, nhóm ứng dụng IIS không thể f * ck nó lên. – jgauffin

+0

Ayende luôn nói dịch vụ IIS> windows service, liên quan đến RavenDb. –

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