RabbitMQ에서 VirtualHost(vhost)란 하나의 RabbitMQ 브로커에서 여러 개의 메시지 도메인을 사용할 수 있게 해 주는 논리적 그룹을 의미합니다. 각각의 vhost는 Queue, Exchange, Binding, 권한에 있어서 완전히 분리된 메시징 환경을 가집니다.


vhost는 다른 애플리케이션 유저 또는 부서사이의 메지싱 트래픽을 독립화하고 분리하는 기능을 제공해 줍니다. 기본적으로 RabbitMQ는 브로커 최상단에 위치해 있는 “/”라는 이름의 하나의 vhost를 생성합니다. 하지만 추가적으로 vhost를 메시징 애플리케이션의 요구사항을 충족시키기 위해 필요에 따라 생성할 수 있습니다.

각각의 vhost는 유저나 애플리케이션이 queue로부터 메시지를 소비하거나 교환하거나 발행하는 등과 같은 특정 작업을 수행할 수 있는가를 결정하는 권한들을 갖습니다. 이는 vhost 안에서 메시징 자원에 대한 정교한  컨트롤을 가능하게 합니다.

정리하자면 vhost는 하나의 브로커에서 여러 메시징 도메인을 가능하게 하는 논리적 컨테이너이며 이들 간의 분리와 메시징 트래픽을 컨트롤을 관리 유지 합니다.

반응형

 

 

EF Core에서 Postgres 사용 시 발생하는 Cannot write DateTime with Kind=UTC to PostgreSQL type 'timestamp without time zone'  에러를 해결하는 방법에 대해 알아봅니다.

 

 

 

현상

 

public class SomeClass
{
    [Column("created_on")]
    public DateTime? created_on { get; set; }
}

 

위와 같이 nullable DateTime 값을 수정하고자 할 때 Cannot write DateTime with Kind=UTC to PostgreSQL type 'timestamp without time zone' 오류가 발생.

 

 

 

수정

 

직접 setter를 구현해 명시적으로 DateTime.Kind를 설정합니다.

 

public class SomeClass{
    [Column("created_on")]
    private DateTime? _created_on
    public DateTime? created_on 
    {
        get
        {
            return this._created_on;
        }
        set 
        {
            this._created_on = DateTime.SpecifyKind(value, DateTimeKind.Utc); 
        }
    }
}

 

위와 같이 수정하면 정상적으로 nullable DateTime 컬럼이 수정됩니다.

 

 

 

 

 

반응형

컨테이너 별로 DB를 다르게 사용하는게 좋습니다.

 

컨테이너와 PostgreSQL을 함께 사용하는 경우 일반적으로 컨테이너별로 별도의 스키마를 사용하는 것보다 컨테이너별로 데이터베이스를 분리하는 것이 좋습니다.

각 컨테이너가 이상적으로 자체 데이터베이스 인스턴스를 포함하여 자체 독립 환경을 가져야 하기 때문입니다. 각 컨테이너에 대해 별도의 데이터베이스를 사용하면 데이터가 각 컨테이너 내에서 격리되고 안전하며 한 컨테이너의 데이터베이스에 대한 변경 사항이 다른 데이터베이스에 영향을 미치지 않도록 할 수 있습니다.

반면에 단일 데이터베이스 내에서 각 컨테이너에 대해 별도의 스키마를 사용하는 경우 두 컨테이너가 동일한 스키마에 액세스하거나 수정하려고 하면 데이터 유출 또는 충돌의 위험이 있습니다. 이로 인해 데이터 일관성 문제와 잠재적인 보안 취약성이 발생할 수 있습니다.

물론 밀접하게 관련되어 있고 데이터를 공유해야 하는 소수의 컨테이너가 있는 경우와 같이 별도의 스키마를 사용하는 것이 적합한 경우가 있을 수 있습니다. 이러한 경우 권한이 없는 사용자가 실수로 데이터를 유출하거나 수정하지 않도록 권한 및 액세스 제어를 신중하게 관리하는 것이 중요합니다.

 

 

 

 

 

반응형

+ Recent posts