Red Hat AMQ Broker 7.10 릴리스 정보
AMQ Broker용 릴리스 정보
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. AMQ Broker 7.10에 대한 장기 지원
AMQ Broker 7.10은 장기 지원 (LTS) 릴리스 버전으로 지정되었습니다. LTS 릴리스의 약관에 대한 자세한 내용은 AMQ LTS 릴리스의 지원 기간을참조하십시오.
Red Hat Enterprise Linux 및 OpenShift Container Platform 지원
AMQ Broker 7.10 LTS 버전은 다음을 지원합니다.
- Red Hat Enterprise Linux 7 및 8
- OpenShift Container Platform 4.6, 4.7, 4.8, 4.9, 4.10, 4.11 및 4.12.
Red Hat은 AMQ Broker가 향후 OpenShift Container Platform 버전과의 호환성을 유지하기 위해 노력합니다. 그러나 이 호환성은 보장되지 않습니다. 각 새로운 OpenShift Container Platform 버전에 대해 상호 운용성 테스트가 수행됩니다. 호환성 문제가 없는 경우 Red Hat AMQ Broker 7 지원 구성에 새 OpenShift Container Platform 버전이 추가됩니다.
2장. 지원되는 구성
지원되는 구성에 대한 자세한 내용은 Red Hat AMQ Broker 7 지원 구성을 참조하십시오.
최소한 AMQ Broker 7.10을 실행하려면 Java 버전 11이 필요합니다.
3장. 새로운 기능 및 변경된 기능
이 섹션에서는 AMQ Broker 7.10의 개선 사항 및 새로운 기능 집합을 강조 표시합니다.
- 고가용성 복제 개선 사항
- 이전 버전의 AMQ Broker에서는 복제 HA(고가용성) 정책을 사용하려면 3개 이상의 실시간 백업 브로커 쌍이 필요합니다. 세 쌍의 쌍이 필요했기 때문에 한 쌍의 두 브로커가 대부분의 쿼럼을 얻을 수 있고 두 브로커가 동시에 활성화 된 시나리오를 피할 수 있습니다. 7.10부터 Apache Zookeeper 조정 서비스를 사용하여 각 라이브 백업 브로커 쌍을 조정하도록 브로커를 구성할 수 있으므로 적어도 세 개의 라이브 백업 쌍이 필요하지 않습니다. 자세한 내용은 AMQ Broker 구성의 ZooKeeper 조정 서비스를 사용하여 복제 고가용성을 위해 브로커 클러스터 구성을 참조하십시오.
- 클라이언트 연결 파티션
이전 릴리스에서는 서버 측에서 클라이언트 연결을 분할할 방법이 없었습니다. 7.10부터 클라이언트가 연결을 시작할 때마다 개별 클라이언트에 대한 라우팅 연결이 포함된 클라이언트 연결을 분할할 수 있습니다. 클라이언트 연결 파티션의 두 가지 사용 사례는 다음과 같습니다.
- 의도하지 않은 서브스크립션의 클라이언트 파티셔닝을 통해 구독자가 항상 불안정한 구독자 큐가 있는 브로커에 연결할 수 있습니다.
데이터 중력이라고도 하는 데이터로 고객을 유치하여 브로커 간 데이터를 이동시킬 필요성을 최소화합니다.
클라이언트 연결 파티셔닝에 대한 자세한 내용은 AMQ Broker 구성에서 클라이언트 연결 파티션을 참조하십시오.
- AMQ 관리 콘솔 인증
- AMQ 관리 콘솔을 사용하여 사용자를 인증하려면 인증서 기반 인증을 구성할 수 있습니다. 인증서 기반 인증을 구성하는 방법을 알아보려면 AMQ Broker 구성의 인증서 기반 인증을 사용하도록 브로커 콘솔 구성을 참조하십시오.
- 노드에 대한 Pod 배치 제어
- Operator 기반 브로커 배포에서 노드 선택기, 노드 유사성 규칙 및 테인트 및 톨러레이션을 사용하여 OpenShift Container Platform 노드에 AMQ Broker Pod 배치를 제어하도록 CR(사용자 정의 리소스)을 구성할 수 있습니다. 자세한 내용은 OpenShift 에 AMQ Broker를 배포할 때 OpenShift Container Platform 노드에서 브로커 Pod 배치 제어를 참조하십시오.
- 브로커 상태 점검
- Operator 기반 브로커 배포에서는 활성 상태 프로브 및 준비 상태 프로브를 사용하여 실행 중인 브로커 컨테이너에 대한 정기적인 상태 점검을 구성할 수 있습니다. 활성 상태 프로브는 브로커의 HTTP 포트를 ping하여 브로커가 실행 중인지 확인합니다. 준비 상태 프로브는 브로커가 브로커에 대해 구성된 각 어셉터 포트에 대한 연결을 열어 네트워크 트래픽을 허용할 수 있는지 확인합니다. 상태 점검을 구성하는 방법에 대한 자세한 내용은 OpenShift에 AMQ Broker 배포에서 브로커 상태 점검 구성을 참조하십시오.
- 기본 메모리 제한 덮어쓰기
- Operator 기반 브로커 배포에서 브로커에 설정된 기본 메모리 제한을 덮어쓸 수 있습니다. 기본적으로 브로커에는 브로커의 Java 가상 머신에 사용할 수 있는 최대 메모리의 절반이 할당됩니다. 기본 메모리 제한을 재정의하는 방법을 알아보려면 OpenShift에서 AMQ Broker 배포에서 브로커의 기본 메모리 제한 덮어쓰기를 참조하십시오.
- PVC(영구 볼륨 클레임)에서 스토리지 클래스 요청
- 기본적으로 OpenShift Container Platform의 AMQ Broker의 모든 PVC(영구 볼륨 클레임)는 클러스터에 구성된 기본 스토리지 클래스를 사용합니다. 이번 릴리스에서는 AMQ Broker의 스토리지 클래스를 지정하도록 CR을 구성할 수 있습니다. PVC에서 스토리지 클래스를 지정하는 방법에 대한 자세한 내용은 OpenShift에서 AMQ Broker를 배포 할 때 브로커 스토리지 크기 및 스토리지 클래스 구성을 참조하십시오.
- Pod의 보안 컨텍스트 구성
- Operator 기반 브로커 배포에서 Pod에 대한 보안 컨텍스트를 구성할 수 있습니다. 보안 컨텍스트는 Pod에 대한 권한 및 액세스 제어 설정을 정의하고, 임의 액세스 제어, SELinux(Security Enhanced Linux), Sseccomp(Secure Computing Mode), sysctl 인터페이스, Windows에서 실행되는 컨테이너에 대한 Window의 특정 속성을 포함합니다. 자세한 내용은 OpenShift에 AMQ Broker를 배포할 때 사용자 정의 리소스 구성 참조 를 참조하십시오.
- OpenShift Container Platform 4.12 지원
- OpenShift Container Platform 4.6, 4.7, 4.8, 4.9 및 4.10을 지원하는 것 외에도 AMQ Broker에서 OpenShift Container Platform 4.12를 지원합니다.
- 브로커 Pod의 기본 서비스 계정 이름 변경
-
serviceAccountNamename 특성을 사용하여 브로커 Pod의 default 서비스 계정 이름을 변경할 수 있습니다. 자세한 내용은 OpenShift에 AMQ Broker를 배포할 때 사용자 정의 리소스 구성 참조 를 참조하십시오. - 브로커 Pod 레이블 지정
-
labels 특성을 사용하여 브로커 Pod에
라벨을 할당할 수 있습니다. 자세한 내용은 OpenShift에 AMQ Broker를 배포할 때 사용자 정의 리소스 구성 참조 를 참조하십시오. - *StoreType 및 *StoreProvider로 어셉터 및 커넥터 구성을 업데이트
- 어셉터 및 커넥터에 대한 CR 구성에서 브로커가 사용하는 키 저장소 및 신뢰 저장소에 대한 세부 정보를 지정할 수 있습니다.
- Operator 채널
AMQ Broker Operator,
Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch)은 다음 채널에서 사용할 수 있습니다.-
7.10.x- 이 채널은 버전 7.10에 대해서만 업데이트를 제공하며 현재LTS(Long Term Support) 채널입니다. -
7.x- 현재 이 채널은 버전 7.9에 대한 업데이트만 제공합니다. -
7.8.x- 이 채널은 버전 7.8에만 대한 업데이트를 제공하며 이전 LTS(Long Term Support) 채널이었습니다.
-
채널을 전환하여 Operator를 업그레이드할 수 없습니다. 기존 Operator를 설치 제거하고 적절한 채널에서 새 버전의 Operator를 설치해야 합니다.
선택할 Operator를 확인하려면 Red Hat Enterprise Linux Container Compatibility Matrix 를 참조하십시오.
- 와일드카드 값을 사용하여 Management API를 사용하여 모든 도메인에 대한 액세스 권한을 부여합니다.
-
7.10.1부터
management.xml파일에서도메인 항목필드에 와일드카드 값을 지정할 수 있습니다. 관리 API에 액세스할 때항목 도메인 필드의 와일드카드 값은 모든 도메인에대한 액세스 권한을 부여합니다.
<authorisation>
<allowlist>
<entry domain="*"/>
</allowlist>- JGroups 5.x
- 이전 버전의 AMQ Broker에서는 CloudEvent 3.x를 사용했습니다. AMQ Broker 7.10은 CloudEvent 3.x와 호환되지 않는 CloudEvent 5.x를 사용합니다. 일부 프로토콜 및 프로토콜 속성이 두 가지 JGroup 버전 간에 변경되어 AMQ Broker 7.10으로 업그레이드할 때 CloudEvent 스택 구성을 변경해야 할 수 있습니다.
4장. 더 이상 사용되지 않는 기능
이 섹션에서는 지원되지만 AMQ Broker에서 더 이상 사용되지 않는 기능에 대해 설명합니다.
대기열구성 요소- 7.10부터 <queues> 구성 요소는 더 이상 사용되지 않습니다. <addresses> 구성 요소를 사용하여 주소 및 관련 대기열을 생성할 수 있습니다. <queues> 구성 요소는 향후 릴리스에서 제거됩니다.
- getAddresses>-< 방법
- 7.10부터 org.apache.activemq.artemis.core.config.Configuration 인터페이스에 포함된 getAddressesSettings 방법이 더 이상 사용되지 않습니다. getAddressSettings 방법을 사용하여 브로커의 주소 및 대기열을 프로그래밍 방식으로 구성합니다.
- Open>-<re 프로토콜
- 7.9부터 시작으로 Open>-<re 프로토콜은 더 이상 사용되지 않는 기능입니다. 새로운 AMQ Broker 기반 시스템을 생성하는 경우 다른 지원되는 프로토콜 중 하나를 사용합니다. 이 기능은 향후 릴리스에서 제거될 예정입니다.
- 브로커 인스턴스가 실행되지 않을 때 사용자 추가
- 7.8부터 AMQ Broker 인스턴스가 실행되지 않으면 CLI 인터페이스에서 브로커에 사용자를 추가하는 기능이 제거됩니다.
- 네트워크 pinger
- 7.5부터 네트워크 ping은 더 이상 사용되지 않는 기능입니다. 네트워크 ping은 복구 불가능한 메시지 손실을 초래할 수 있는 네트워크 격리 문제로부터 브로커 클러스터를 보호할 수 없습니다. 이 기능은 향후 릴리스에서 제거될 예정입니다. Red Hat은 네트워크 ping을 사용하는 기존 AMQ Broker 배포를 계속 지원합니다. 그러나 Red Hat은 더 이상 새 배포에서 네트워크 ping을 사용할 것을 권장하지 않습니다. 고가용성을 위해 브로커 클러스터를 구성하고 네트워크 격리 문제를 방지하는 방법에 대한 지침은 I AMQ Broker 구성의 고가용성 을 참조하십시오.
- Hawtio 디스패치 콘솔 플러그인
-
7.3부터 AMQ Broker는 더 이상 Hawtio 디스패치 콘솔 플러그인
dispatch-hawtio-console.war와 함께 제공되지 않습니다. 이전에는 디스패치 콘솔을 사용하여 AMQ Interconnect를 관리했습니다. 그러나 AMQ Interconnect는 이제 자체 독립 실행형 웹 콘솔을 사용합니다.
5장. 기술 프리뷰
이 섹션에서는 AMQ Broker 7.10의 기술 프리뷰 기능에 대해 설명합니다.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에 사용하는 것을 권장하지 않습니다. 자세한 내용은 Red Hat 기술 프리뷰 기능 지원 범위를 참조하십시오.
- 페이징에 대한 주소 제한 구성을 위한 새로운 속성
다음 새 속성을 구성하여 메시지 수에 따라 개별 및 글로벌 주소 제한을 설정할 수 있습니다.
Max-size-ECDHE는 브로커가 address-full-policy에 지정된 정책을 실행하기 전에 주소에 허용되는 최대 메시지 수입니다. 기본값은 -1이며, 이는 메시지 제한이 없음을 의미합니다.global-max-ECDHE는 브로커가 모든 주소에 사용할 수 있는 총 메시지 수입니다. 이 제한에 도달하면 들어오는 메시지와 연결된 주소에 대해 브로커는 address-full-policy의 값으로 지정된 정책을 실행합니다. 기본값은 -1이며, 이는 메시지 제한이 없음을 의미합니다.참고max-size-bytes또는global-max-size속성에 설정된 제한에max-size-message또는global-max-ECDHE 속성에 대해 설정된 제한에 도달하면 브로커는 address-full 정책을 실행합니다.
6장. 해결된 문제
릴리스에서 수정된 문제 목록을 보려면 AMQ Broker 7.10.0에서 해결된 문제 및 AMQ Broker - 7.10.x Resolved Issues 에서 패치 릴리스에서 수정된 문제 목록을 참조하십시오.
7장. 수정된 Common Vulnerabilities and Exposures
이 섹션에서는 AMQ Broker 7.10 릴리스에서 수정된 CVE(Common Vulnerabilities and Exposures)에 대해 자세히 설명합니다.
- ENTMQBR-5140 - CVE-2019-10744 nodejs-lodash: defaultsDeep 함수의 변형 오염
- ENTMQBR-5893 - CVE-2021-4040 브로커: AMQ Broker: Malformed message는 부분적인 DoS(OOM)를 초래할 수 있습니다.
- ENTMQBR-5933 - CVE-2021-43797 netty: 헤더 이름의 controlChars로 인해 HTTP 요청 스푸핑이 발생할 수 있습니다.
- ENTMQBR-6401 - CVE-2022-23913 Artemis-commons: Apache ActiveMQ Artemis DoS
- ENTMQBR-6477 - CVE-2020-36518 jackson-databind: 중첩 객체의 대규모 깊이를 통한 서비스 거부
8장. 확인된 문제
이 섹션에서는 AMQ Broker 7.10에서 알려진 문제에 대해 설명합니다.
ENTMQBR-7359 - 7.10.0 Operator로 인증 정보 시크릿의 현재 처리로 변경
Operator는 시크릿의 브로커에 연결하기 위해 관리자 사용자 이름 및 암호를 저장합니다. 기본 시크릿 이름은 <
custom-resource-name> -credentials-secret형식으로 되어 있습니다. 시크릿을 수동으로 생성하거나 Operator에서 보안을 생성하도록 허용할 수 있습니다.adminUser및adminPassword속성이 7.10.0 이전의 사용자 정의 리소스에 구성된 경우 Operator는 이러한 속성의 값을 사용하여 수동으로 생성된 시크릿을 업데이트합니다. 7.10.0부터 Operator는 더 이상 수동으로 생성된 시크릿을 업데이트하지 않습니다. 따라서 CR에서adminUser및adminPassword속성 값을 변경하는 경우 다음 중 하나를 수행해야 합니다.- 새 사용자 이름 및 암호로 시크릿을 업데이트
-
보안을 삭제하고 Operator에서 보안을 생성하도록 허용합니다. Operator에서 시크릿을 생성할 때 CR에 지정된 경우
adminUser및adminPassword속성 값을 추가합니다. 이러한 속성이 CR에 없는 경우 Operator는 보안에 대한 임의의 인증 정보를 생성합니다.
ENTMQBR-7363 - 7.9 CR에서 주소 10.0.0.1Type의 재전송DelayMultiplier를 조정할 수 없습니다.
redeliveryDelayMultiplier및redeliveryCollisionAvoidanceFactor속성이 7.8.x 또는 7.9.x 배포의 주요 브로커 CR에 구성된 경우 새 Operator는 7.10.x로 업그레이드한 후 CR을 조정할 수 없습니다. 두 속성의 데이터 유형이 float에서 7.10.x에서 문자열로 변경되었기 때문에 조정이 실패합니다.spec.deploymentPlan.address>-<.addressSetting요소에서redeliveryDelayMultiplier및redeliveryCollisionAvoidanceFactor속성을 삭제하여 이 문제를 해결할 수 있습니다. 그런 다음brokerProperties요소에서 특성을 구성합니다. 예를 들면 다음과 같습니다.spec: ... brokerProperties: - "addressSettings.#.redeliveryMultiplier=2.1" - "addressSettings.#.redeliveryCollisionAvoidanceFactor=1.2"참고brokerProperties요소에서 삭제한redeliveryDelayMultiplier특성 이름 대신redeliveryMultiplier특성 이름을 사용합니다.
ENTMQBR-7396 - [Operator, upgrade] 7.10.1로 업그레이드하면 새로운 Acceptor/Connector *v1.ServiceAdmission이 생성되지 않습니다.
AMQ Broker 7.10.0에서 7.10.1로 업그레이드한 후 업그레이드 중에 서비스에 잘못된 라벨이 추가되고 7.10.0의 Pod 선택기가 제거되지 않은 경우 메시징이 작동하지 않습니다. 업그레이드 후 메시징이 작동하지 않는 경우 다음 단계를 완료하여 이 문제를 해결합니다.
- OpenShift Container Platform 웹 콘솔에 클러스터 관리자로 로그인합니다.
- 페이지 상단에 있는 프로젝트 드롭다운 메뉴에서 Operator가 설치된 프로젝트를 선택합니다.
- 왼쪽 탐색 메뉴에서 Networking → Services 를 클릭합니다.
-
Labels 및 Pod Selectors 열에서
ActiveMQArtemis및application이외의 레이블이 구성되어 있는지 확인합니다. ActiveMQArtemis및application이 구성된 레이블이 있는 각 서비스에 대해 다음 단계를 완료하여 레이블을 제거합니다.- 서비스를 클릭하여 세부 정보 탭을 엽니다.
-
라벨 필드에서 Edit 를 클릭하고
ActiveMQArtemis및애플리케이션라벨과는 다른 모든 레이블을 삭제합니다. - 저장을 클릭합니다.
- YAML 탭을 클릭합니다.
-
selector요소에서ActiveMQArtemis,application및statefulset.kubernetes.io/podname라벨을 제외한 모든 라벨을 삭제합니다. - 저장을 클릭합니다.
ENTMQBR-7111 - 7.10 버전의 Operator는 업그레이드하는 동안 StatefulSet을 제거하는 경향이 있습니다.
AMQ Broker Operator 7.10.0으로 업그레이드 중인 경우 새 Operator는 조정 프로세스 중 각 배포에 대한 기존 StatefulSet을 자동으로 삭제합니다. Operator가 StatefulSet을 삭제하면 기존 브로커 Pod가 삭제되어 일시적인 브로커 중단이 발생합니다.
다음 명령을 실행하여 이 문제를 해결하기 위해 Operator에서 StatefulSet: oc delete statefulset < statefulset-name > --cascade=orphan을 삭제하기 전에 StatefulSet을 수동으로 삭제하고 실행 중인 Pod를 분리할 수 있습니다.
업그레이드 프로세스 중에 StatefulSet을 수동으로 삭제하면 새 Operator에서 실행 중인 Pod를 삭제하지 않고 StatefulSet을 조정할 수 있습니다. 자세한 내용은 OpenShift에 AMQ Broker 를 배포 할 때 OperatorHub를 사용하여 Operator 업그레이드를 참조하십시오.
ENTMQBR-6991 - 7.10-opr-3은 7.10-opr-2 사용자의 PV ownerRef를 수정하지 않습니다.
7.10.0-opr-2로 배포하거나 업그레이드하고 배포를 확장하면 나중에 배포 CR을 삭제하면 데이터 손실이 발생할 수 있는
ownerReference속성을 사용하여 새 PV가 생성됩니다. 예를 들어 7.10.0-opr-1을 배포하고 7.10.0-opr-2로 업그레이드한 다음 3개 브로커 인스턴스에서 4개의 브로커 인스턴스로 확장하면ActiveMQArtemisCR을 삭제하면 데이터가 손실될 수 있습니다.이 문제를 해결하려면 다음을 수행할 수 있습니다.
- 가능한 경우 7.10.0-opr-2 업그레이드를 건너뜁니다.
- 7.10.0-opr-2 릴리스가 클러스터에서 활성화되어 있는 동안 배포를 확장하지 마십시오. 7.10.0-opr-3을 배포한 후 확장할 수 있습니다.
- 이후 릴리스에서 이 문제가 해결될 때까지 배포 CR을 삭제하지 마십시오.
-
영향을 받는 PV의
ownerReference값을 수동으로 제거합니다.
ENTMQBR-6712 - Taints and Tolerations - "tolerationSeconds"로 배포 중단
CR의
tolerations섹션에tolerationSeconds속성을 추가하면 Operator 조정 프로세스가 작동하지 않고 브로커 Pod가 올바르게 예약되지 않습니다. 이 문제를 해결하려면 CR의tolerations섹션에tolerationSeconds속성을 추가하지 마십시오.
ENTMQBR-6473 - 스키마 URL 변경으로 인한 호환되지 않는 구성
버전 7.9 또는 7.10 인스턴스가 있는 이전 릴리스의 브로커 인스턴스 구성을 사용하려는 경우 스키마 URL 변경으로 인한 호환되지 않는 구성이 있으면 브로커가 충돌합니다. 이 문제를 해결하려면 Linux의 7.9.0에서 7.10.0으로 요약된 대로 관련 구성 파일의 스키마 URL을 업데이트합니다.
ENTMQBR-4813 대규모 메시지 및 여러 C++ 구독자가 포함된 ENTMQBR-48Exception
AMQP 프로토콜을 사용하는 여러 C++ publisher 클라이언트가 구독자 및 브로커와 동일한 호스트에서 실행되고 있고 게시자가 대규모 메시지를 전송하는 경우 구독자 중 하나가 충돌합니다.
ENTMQBR-6655 명령 artemis 검사 대기열은 "Could not start Jolokia agent"와 함께 실패합니다.
실행하기 전에
artemis 검사 queue명령은 다음과 같은 오류 메시지를 표시합니다:Jolokia 에이전트를 시작할 수 없습니다. java.lang.IllegalStateException: https 통신을 위한 키 저장소를 열 수 없습니다. java.net.BindException: 주소가 이미 사용중입니다.
ENTMQBR-6654 - requireLogin:true는 적용된 새로운 브로커 CR에서만 작동하며 기존 브로커 CR에는 적합하지 않습니다.
CR에서
requireLogin속성이true로 설정된 경우 기존 브로커 인스턴스의 상태 저장 세트에서 AMQ_REQUIRE_LOGIN 환경 변수가 업데이트되지 않고 콘솔 인증 정보가 검증되지 않습니다. 이 문제를 해결하려면 기존 인스턴스에 대한 상태 저장 세트의 환경 변수 값을 수동으로 업데이트합니다.
ENTMQBR-5936 - URL이 클러스터되지 않은 포트를 대상으로 하는 경우 클라이언트는 백업 서버로 장애 조치를 수행하지 않습니다.
클라이언트가 HA 클러스터에 연결하는 데 사용하는 연결 URL에 브로커의
static-connectors에 구성되지 않은 포트가 있는 경우, 장애 조치가 발생한 후 클라이언트는 이전 라이브 브로커에 대한 연결을 재시도하고 새 라이브 브로커에 연결하지 않습니다.ENTMQBR-6728 - 업그레이드 경로가 손상됨
이 문제로 인해
7.x채널에 가입한 AMQ Broker 7.9 사용자가 AMQ Broker 7.10으로 자동 업그레이드되지 않습니다. 이 문제를 해결하려면7.10.x채널에 가입하십시오.
ENTMQBR-5749 - OperatorHub에 표시되는 지원되지 않는 Operator 제거
OperatorHub에서 Operator 배포에 언급된 Operator 및 Operator 채널만 지원됩니다. Operator 게시와 관련된 기술적 이유로 OperatorHub에 다른 Operator 및 채널이 표시되고 무시해야 합니다. 다음 목록은 참조를 위해 표시되는 Operator는 표시되지만 지원되지는 않음을 보여줍니다.
- Red Hat Integration - AMQ Broker LTS - 모든 채널
- Red Hat Integration - AMQ Broker - alpha, current, current-76
ENTMQBR-17 - AMQ222117: 클러스터 연결을 시작할 수 없음
브로커 클러스터는 IPv6를 지원하는 환경에서 제대로 초기화하지 못할 수 있습니다. 로그 메시지에 표시된
SocketException으로 인해 오류 발생 시요청된 주소를 할당할 수 없습니다. 이 문제를 해결하려면java.net.preferIPv4Stack시스템 속성을true로 설정합니다.
ENTMQBR-520 - 다른 주소에 바인딩된 큐와 동일한 주소에서 수신해서는 안 됩니다.
주소와 이름이 동일한 큐는 주소에만 할당해야 합니다. 기존 주소와 동일한 이름으로 큐를 생성하지만 다른 이름으로 주소에 바인딩되는 것은 잘못된 구성입니다. 이렇게 하면 잘못된 메시지가 큐로 라우팅될 수 있습니다.
ENTMQBR-569 - Open>-<re에서 AMQP로 ID를 변환하면 ID를 바이너리로 보냅니다.
A-MQ 6 OpenECDHEre 클라이언트에서 AMQP 클라이언트로 교차 프로토콜을 통신할 때 추가 정보가 애플리케이션 메시지 속성에 인코딩됩니다. 이는 브로커가 내부적으로 사용하는 일반 정보이며 무시할 수 있습니다.
ENTMQBR-636 - Berkeley breaks, cause
JavaNull PointerException, underf load (mpt)브로커가 많은 부하를 관리할 때 IO 관련 문제가 발생하지 않도록 하려면 JVM에 충분한 메모리 및 힙 공간이 할당되어 있는지 확인합니다. ActiveMQ Artemis 설명서의 성능 튜닝 장에 있는 "VM 할당"이라는 섹션을 참조하십시오.
ENTMQBR-648 - JMS Openwire 클라이언트가 정의된
purgeOnNoConsumer또는 대기열필터로 메시지를 큐로 보낼 수 없음A-MQ 6 JMS 클라이언트를 사용하여 consumer가 없는 경우
purgeOnNoConsumer가true로 설정된 큐가 있는 주소로 메시지를 보냅니다. A-MQ 6 JMS 클라이언트를 사용할 때는purgeOnNoConsumer옵션을 설정하지 않는 것이 좋습니다.
ENTMQBR-652 - 알려진
amq-jon-plugin버그 목록이
amq-jon-plugin버전에는 브로커 및 큐에서 알려진 문제가 있습니다.브로커에 대한 문제:
-
연결 종료 시
java.net.SocketTimeoutException예외가 발생 -
listSessions()throwsjava.lang.ClassCastException -
주소 설정 추가
java.lang.IllegalArgumentException -
getConnectorServices()작업을 찾을 수 없음 -
listConsumersAsJSON()작업을 찾을 수 없습니다. -
getDivertNames()작업을 찾을 수 없음 -
네트워크 토폴로지 나열에
IllegalArgumentException - 주소 설정 삭제에 잘못된 매개변수 이름이 있습니다.
대기열의 문제:
-
expireMessage()에서 인수 유형 불일치 예외를 발생 -
listDeliveringMessages()throwsIllegalArgumentException -
listMessages()에서java.lang.Exception을 발생시킵니다. -
moveMessages()에서 오류 메시지 인수 유형이 일치하지 않는IllegalArgumentException을 발생시킵니다. -
removeMessage()에서 오류 메시지 인수 유형이 일치하지 않는IllegalArgumentException을 발생시킵니다. -
removeMessages()가 2개의 인수를 사용하여 작업 removeMessage를 찾을 수 없는 오류와 함께 예외를 발생시킵니다. -
retryMessage()에서 인수 유형 불일치IllegalArgumentException을 발생시킵니다.
-
연결 종료 시
ENTMQBR-655 - [AMQP] fill
-validated-user가 활성화된 경우 메시지를 전송할 수 없음AMQP 프로토콜을 사용하여 생성된 메시지에서는 설정 옵션
populate-validated-user가 지원되지 않습니다.
ENTMQBR-897 - 대상 이름에서 특수 문자가 있는 Openwire 클라이언트/프로토그램 문제
현재 AMQ OpenECDHEre JMS 클라이언트는 이름에 다음 문자가 포함된 큐와 주소에 액세스할 수 없습니다(','), 해시('#'), 큰 ('>'), 공백('>).
ENTMQBR-944 - [A-MQ7, Hawtio, RBAC] 사용자는 RBAC에 의해 작업 액세스가 거부된 경우 피드백을 받지 않습니다.
콘솔은 인증되지 않은 사용자가 시도한 작업이 성공했음을 나타낼 수 있습니다.
ENTMQBR-1875 - [AMQ 7, ha, 복제된 저장소] 백업 브로커는 이동하지 않고 "live" 또는 종료되지 않음 - ActiveMQIllegegegegalStateException errorType=ILLEGAL_STATE message=AMQ119026: Backup Server가 라이브와 동기화되지 않았습니다.
백업 브로커가 마스터 브로커와 동기화하려고 하는 동안 마스터 브로커의 페이징 디스크를 제거하면 마스터가 실패합니다. 또한 백업 브로커는 계속 마스터와 동기화하려고하기 때문에 라이브 상태가 될 수 없습니다.
ENTMQBR-2068 - 일부 메시지가 수신되었지만 HA 장애 조치, 장애 복구 시나리오 중에 전달되지 않음
현재 OpenECDHEre 클라이언트가 메시지를 보내는 동안 브로커가 슬레이브로 장애 조치(failover)되지 않으면 장애 조치 발생 시 메시지가 브로커에게 전달될 수 있습니다. 이 문제를 해결하려면 브로커가 메시지를 승인하기 전에 메시지를 지속해야 합니다.
ENTMQBR-3331 - Stateful set 컨트롤러가 CreateContainerError에서 복구할 수 없으므로 Operator를 차단합니다.
AMQ Broker Operator가 구성 오류가 있는 CR(사용자 정의 리소스)에서 상태 저장 세트를 생성하는 경우 오류가 해결되면 상태 저장 세트 컨트롤러에서 업데이트된 상태 저장 세트를 롤아웃할 수 없습니다.
예를 들어 기본 브로커 CR의
image특성 값이 잘못 입력되면 상태 저장 세트 컨트롤러에서 생성한 첫 번째 Pod의 상태가보류 중상태로 유지됩니다. 그런 다음 맞춤 오류를 수정하고 CR 변경 사항을 적용하면 AMQ Broker Operator에서 상태 저장 세트를 업데이트합니다. 그러나 Kubernetes 알려진 문제로 인해 상태 저장 세트 컨트롤러에서 업데이트된 상태 저장 세트를 롤아웃하지 못합니다. 컨트롤러는보류 중상태의 Pod가준비상태가 될 때까지 무기한 대기하므로 새 Pod가 배포되지 않습니다.이 문제를 해결하려면 상태 저장 세트 컨트롤러에서 새 Pod를 배포할 수 있도록
Pending상태인 Pod를 삭제해야 합니다.보류중 상태의 Pod를 확인하려면oc get pods --field-selector=status.phase=Pending명령을 사용합니다. Pod를 삭제하려면oc delete pod <pod name> 명령을사용합니다.
ENTMQBR-3846 - MQTT 클라이언트가 브로커 재시작 시 다시 연결하지 않음
브로커를 다시 시작하거나 브로커가 장애 조치되면 활성 브로커가 이전에 연결된 MQTT 클라이언트의 연결을 복원하지 않습니다. 이 문제를 해결하려면 MQTT 클라이언트를 다시 연결하려면 클라이언트에서 수동으로
subscribe()메서드를 호출해야 합니다.
ENTMQBR-4023 - AMQ Broker Operator: Pod 상태 Pod 이름에 실제가 반영되지 않음
지정된 OpenShift 프로젝트의 Operator 기반 브로커 배포의 경우
oc get pod명령을 사용하여 브로커 Pod를 나열하는 경우, Pod의 서수 값은0에서 시작합니다(예:amq-operator-test-broker-ss-0). 그러나oc describe명령을 사용하여activemqartmises사용자 정의 리소스(즉,oc describe activemqartemises)에서 생성된 브로커 Pod의 상태를 가져오는 경우 Pod ordinal 값은1에서 잘못 시작됩니다(예:mq-operator-test-broker-ss-1). 이 문제를 해결할 방법이 없습니다.
ENTMQBR-4127 - AMQ Broker Operator: OpenShift에서 생성한 경로 이름이 너무 길 수 있습니다.
Operator 기반 배포의 각 브로커 Pod에 대해 Operator에서 AMQ Broker 관리 콘솔에 액세스하기 위해 생성하는 경로의 기본 이름에는 사용자 정의 리소스(CR) 인스턴스 이름, OpenShift 프로젝트의 이름, OpenShift 클러스터 이름이 포함됩니다. 예를 들면
my-broker-deployment-wconsj-0-svc-rte-my-openshift-project.my-openshift-domain입니다. 이러한 이름 중 일부가 긴 경우 기본 경로 이름은 OpenShift에서 적용하는 63자 제한을 초과할 수 있습니다. 이 경우 OpenShift Container Platform 웹 콘솔에서 경로는Rejected.이 문제를 해결하려면 OpenShift Container Platform 웹 콘솔을 사용하여 경로 이름을 수동으로 편집합니다. 콘솔에서 경로를 클릭합니다. 오른쪽 상단의 작업 드롭다운 메뉴에서
경로 편집을 선택합니다. YAML 편집기에서spec.host속성을 찾아 값을 편집합니다.
ENTMQBR-4140 - AMQ Broker Operator:
storage.size가 부적절하게 지정된 경우 설치를 사용할 수 없습니다.영구 스토리지 배포의 브로커에 필요한 PVC(영구 볼륨 클레임) 크기를 지정하도록 CR(사용자 정의 리소스) 인스턴스의
storage.size속성을 구성하는 경우 이 값을 올바르게 지정하지 않으면 Operator 설치를 사용할 수 없게 됩니다. 예를 들어storage.size의 값을1로 설정한다고 가정합니다(즉, 단위를 지정하지 않고). 이 경우 Operator는 CR을 사용하여 브로커 배포를 생성할 수 없습니다. 또한 CR을 제거하고storage.size가 올바르게 지정된 새 버전을 배포하더라도 Operator는 여전히 이 CR을 사용하여 예상대로 배포를 생성할 수 없습니다.이 문제를 해결하려면 먼저 Operator를 중지합니다. OpenShift Container Platform 웹 콘솔에서 배포를 클릭합니다. AMQ Broker Operator에 해당하는 Pod의 추가 옵션 메뉴(세 개의 수직점)를 클릭합니다. Pod 개수 편집 을 클릭하고 값을
0으로 설정합니다. Operator Pod가 중지되면storage.size가 올바르게 지정된 새 버전의 CR을 생성합니다. 그런 다음 Operator를 다시 시작하려면 Pod 개수 편집 을 다시 클릭하고 값을 다시1로 설정합니다.
ENTMQBR-4141 - AMQ Broker Operator: 영구 볼륨 크기를 늘리려면 상태 저장 세트를 다시 생성한 후에도 수동 개입이 필요합니다.
영구 스토리지 배포에서 브로커가 요구하는 PVC(영구 볼륨 클레임) 크기를 늘리려는 경우 추가 수동 단계없이 변경 사항이 적용되지 않습니다. 예를 들어 사용자 정의 리소스(CR) 인스턴스의
storage.size속성을 구성하여 PVC의 초기 크기를 지정한다고 가정합니다. 다른 값을storage.size로 지정하도록 CR을 수정하면 기존 브로커는 원래 PVC 크기를 계속 사용합니다. 배포를 0 브로커로 축소한 다음 원래 번호로 백업하는 경우에도 마찬가지입니다. 그러나 추가 브로커를 추가하기 위해 배포 크기를 확장하면 새 브로커는 새 PVC 크기를 사용합니다.이 문제를 해결하고 배포의 모든 브로커가 동일한 PVC 크기를 사용하는지 확인하려면 OpenShift Container Platform 웹 콘솔을 사용하여 배포에 사용되는 PVC 크기를 확장합니다. 콘솔에서 스토리지 → 영구 볼륨 클레임 을 클릭합니다. 배포를 클릭합니다. 오른쪽 상단의 작업 드롭다운 메뉴에서
PVC 확장을 선택하고새 값을 입력합니다.
9장. 중요한 링크
2023-08-24에 최종 업데이트된 문서