사물 인터넷 기술
분산 시스템 설계에서 중요한(그리고 뜨겁게 논의되는) 주제는 사용할 일관성 모델입니다. 일관성 모델은 시스템 설계의 많은 부분에 영향을 미치며, 하나를 선택하면 시스템 가용성 및 네트워크 장애에 대한 견고성과 같은 요소에 영향을 줍니다. 이 블로그는 일관성의 의미에 대해 더 잘 알고자 하는 시스템 설계자를 위한 것입니다.
먼저 이 블로그가 ACID(https://en.wikipedia.org/wiki/ACID)의 "C"에 대한 것이 아님을 분명히 합시다. ACID 일관성은 데이터 저장소에 대한 업데이트가 일련의 제약 조건에 따라 유효한지 확인합니다. 이 블로그는 분산 저장소 간에 데이터가 복제될 때 어떤 일이 발생하는지 설명하는 일관성 유형에 중점을 둡니다. ACID는 그렇습니다. 그것에 대해 무언가를 말하십시오. 그러나 그것은 "C"가 아니라 "I"(격리)입니다. 혼란스럽다? 조금이지만 참아주세요.
격리는 강력한 일관성이라고도 합니다. . 시스템이 강력한 일관성을 유지하면 분산 저장소 간의 모든 쓰기 및 읽기가 해당 시스템의 모든 응용 프로그램에 대해 동일한 순서로 실행됩니다. 이는 하나의 애플리케이션이 무언가를 작성할 때 다음을 읽는 모든 애플리케이션이 쓰기, 새 데이터를 볼 수 있도록 보장됩니다.
이것은 많은 시스템에서 매우 유용한 속성으로 판명되었습니다. 정확히 같은 시간에 구입하더라도 두 사람이 쇼핑 웹사이트에서 같은 냉장고를 주문할 수 없도록 합니다. 강력한 일관성은 전 세계적으로 동일한 작업 순서를 적용합니다. , 따라서 두 개의 구매는 항상 모든 사람이 동일한 주문으로 처리합니다. 실제로 이것은 두 번째 구매 시도에서 냉장고의 재고가 없음을 확인한다는 것을 의미합니다.
Strong Consistency(강력 일관성)는 꽤 괜찮은 것 같으면서도 모든 시스템에서 사용하지 않는 이유는 무엇입니까? CAP 정리(https://en.wikipedia.org/wiki/CAP_theorem)라는 것이 있기 때문입니다. 첫째, 간단한 참고 사항:CAP는 복잡한 분산 시스템의 동작을 설명하기가 너무 간단하기 때문에 많은 사람들에게 정당한 비판을 받았습니다. 따라서 사용할 때 주의해야 합니다. 그러나 일관성 모델을 논의하는 데 유용한 프레임워크를 제공합니다. 인터넷에는 내가 여기에서 할 수 있는 것보다 훨씬 더 나은 작업을 수행하는 많은 리소스가 있기 때문에 CAP에 대한 자세한 내용은 다루지 않겠습니다.
요약하면 CAP는 애플리케이션이 일시적으로 "대화" 기능을 상실할 때, 즉 네트워크가 다운될 때 분산 시스템에서 어떤 일이 발생하는지 알려줍니다. 시스템이 강력하게 일관된 및 연결 손실에 관계없이 항상 가동 시간을 보장합니다. 꽝.
복잡하게 들리지만 실제로는 매우 직관적입니다. 강력한 일관성을 유지하려면 시스템의 모든 작업에 대한 전역 순서가 필요하다는 사실을 기억하십니까? 즉, 반드시 읽어야 합니다. 모든 사람의 이전 글을 모두 봅니다. 모든 응용 프로그램이 연결되어 있지 않으면 보장할 수 없게 됩니다. 한 응용 프로그램에서 냉장고를 주문했을 수 있지만 모든 응용 프로그램이 아직 이 주문을 받지 않은 경우 새 주문을 넣을 수 없습니다. 그 결과 쇼핑 웹사이트에 다운타임이 발생합니다!
가동 중지 시간은 데이터베이스 복제 수행(더 많은 스토리지) 또는 중복 웹 서버 배포(더 많은 컴퓨팅)와 같이 문제에 더 많은 리소스를 투입하여 완화할 수 있습니다. 오늘날에는 퍼블릭 클라우드 인프라에서 수행하는 것이 거의 불가능하지만, 마이크로서비스 아키텍처와 같이 시스템에 움직이는 부품이 많은 경우 비용이 많이 들고 복잡해집니다. 시스템이 클라우드에서 실행되고 있지 않을 때 스토리지, 컴퓨팅 및 대역폭이 클라우드가 아닌 환경에서 훨씬 더 제한되기 때문에 더 많은 리소스를 추가하는 것은 결코 쉬운 일이 아닙니다.
따라서 강력한 일관성은 애플리케이션에 편리하지만 인프라(및 지갑!)에 부담을 줍니다. 이러한 문제를 해결하기 위해 영리한 사람들은 일관성에 관해서는 현학적이지 않지만 응용 프로그램 관점에서 여전히 실행 가능한 솔루션을 생각해 냈습니다. 우리가 말하는 것은 "최종 일관성"입니다. 다른 정의를 위한 시간입니다.
주어진 항목에 대한 업데이트가 없는 경우 모든 애플리케이션이 결국 동일한 값을 볼 때 시스템은 궁극적으로 일관성이 있습니다. 또는 평신도 용어로:충분히 오래 기다리면 모든 사람이 결국 동일한 데이터를 보게 됩니다. 이것은 응용 프로그램이 동시에 읽고 쓸 수 있고 네트워크가 다운된 동안에도 그렇게 할 수 있음을 의미합니다! 결국 시스템의 인프라는 애플리케이션에 대한 모든 업데이트를 제공합니다.
응용 프로그램이 서로를 기다릴 필요가 없기 때문에 응용 프로그램이 충돌하거나 정전이 발생하지 않는다면 궁극적으로 일관된 시스템의 가동 시간은 이론적으로 무한합니다. 그러나 무한대는 실용적이지 않습니다. 잠시 후 응용 프로그램이 다시 연결될 것으로 예상합니다. 따라서 최종 일관성 시스템은 일반적으로 일관성이 유지되는 데 걸리는 시간에 제한을 둡니다. 해당 제한이 만료되고 응용 프로그램이 동기화할 기회가 없으면 오류 복구가 수행됩니다.
최종 일관성 시스템의 장점은 가용성만이 아닙니다. 강력한 일관성 시스템의 경우와 같이 읽기 및 쓰기에는 동기화가 필요하지 않으므로 훨씬 빠릅니다. 동기화가 부족하면 직접적인 P2P 통신이 가능하므로 단일 실패 지점을 유발하는 중앙 집중식 메시지 브로커가 필요 없기 때문에 성능이 더욱 향상되는 동시에 견고성이 향상됩니다.
최종 일관성은 쇼핑 웹사이트에서 작동하지 않지만 장점(가용성, 성능, 견고성, 리소스 효율성)을 고려할 때 미션 크리티컬 시스템에서 많이 사용된다는 것은 놀라운 일이 아닙니다.
RTI Connext 제품군은 미션 크리티컬한 산업용 IoT 시스템에서 프로토콜로 널리 배포되는 OMG DDS 표준의 선도적인 구현입니다. OMG DDS와 다른 연결 프로토콜의 큰 차이점은 DDS가 애플리케이션 간에 지속적으로 동기화되는 분산 데이터베이스처럼 작동하는 반면, 다른 프로토콜은 일반적으로 메시지를 보내고 상태 관리를 애플리케이션에 맡기는 인터페이스를 제공한다는 것입니다.
분산 데이터베이스가 일관성을 다루어야 하는 것처럼 들린다고 생각한다면 당신이 옳습니다. RTI Connext DDS는 가장 까다로운 미션 크리티컬 환경에서 작동할 수 있도록 가용성과 성능 대 일관성의 균형을 지속적으로 유지해야 합니다. 기본적으로 RTI Connext DDS는 최종 일관성을 사용하여 이를 사용하여 구축된 애플리케이션이 네트워크 장애 시 작동을 중지하지 않고 모든 애플리케이션이 결국 "세계"에 대한 동일한 관점을 공유하도록 합니다.
이제 "일관성"처럼 추상적으로 들리는 것이 어떻게 광범위한 결과를 가져오고 초기 시스템 설계에서 중요한 주제로 다루어져야 하는지 알 수 있습니다. 불행히도 "강력한 일관성" 또는 "결국 일관성"만큼 간단하지 않습니다. 람다 아키텍처(https://en.wikipedia.org/wiki/Lambda_architecture)는 강력한 일관성과 최종 일관성을 모두 사용하여 두 세계를 최대한 활용하는 한 가지 예일 뿐입니다. 일관성이 너무 많기 때문에 시스템 설계자는 시스템이 감당할 수 있는 일관성에 대해 복잡한 결정을 내려야 합니다.
RTI에서 당사의 전문 서비스 팀은 귀하가 이러한 결정을 내리고 결과를 추론하며 귀하에게 적합한 일관성 솔루션을 생성하도록 제품을 구성하는 데 도움을 드립니다.
여기에서 RTI 서비스에 대해 자세히 알아보십시오. https://www.rti.com/services
사물 인터넷 기술
대부분의 시설은 압축 공기 시스템 운영 비용에 우선순위를 두지 않고 단지 작업을 완료하기를 원합니다. 최근 시장 조사1 압축 공기 사용자의 17%만이 압축 공기 시스템 관리 목표로 효율성을 높이 평가했습니다. 9%는 에너지 비용 억제에 대해 우려했습니다. 71%는 단순히 일관되고 안정적인 공기 공급을 원했습니다. 압축 공기 전문가들은 많은 작업 현장 직원이 압축 공기를 사용하여 가공 부품에서 과도한 오일을 날려 버리거나 목공 장치에서 톱밥을 날려 버리거나 바닥의 먼지를 제거하는 데 압축 공기가 무료인 것처럼 행동한다는 사실을 알
여러 면에서 주어진 컨베이어 시스템의 품질을 결정하는 주요 요인은 컨베이어 자체가 아니지만 컨베이어는 컨베이어의 높이 및 정렬 제어를 지원합니다. 일부 프로젝트에는 간단한 바닥 지지대 배열만 필요할 수 있지만 다른 응용 프로그램에는 바닥 지지대, 행거 및 벽 브래킷의 조합이 필요할 수 있습니다. 작업에 맞게 사용자 지정 컨베이어 시스템에서 가능한 최고의 효율성을 얻으려면 당면한 작업에 가장 적합하도록 맞춤화된 컨베이어 지지대와 일치해야 합니다. 곡물 엘리베이터와 채석장에 대한 최상의 컨베이어 지원 설정은 동일하지 않을 수 있습니