메시지란 무엇입니까
느슨하게 결합된 비동기 통신 프로세스
1. 메시지 지향 미들웨어(MOM): 메시지를 보내는 사람을 생산자라고 합니다. 메시지를 수신하는 구성 요소 호출된 소비자
2 메시지 모델:
a. 지점 간: 대상이 대기열이 되고 메시지는 한 번만 소비될 수 있습니다
b. 게시-구독: 대상이 제목이 되고, 소비자는 구독자라고 불리며, 메시지는 임의의 번호로 소비될 수 있습니다
1. JMS API: Java를 사용하여 MOM(메시지 미들웨어)에 액세스하는 통합된 표준 방법을 제공합니다
2. 메시지 생성자 프로세스 개발:
a. 종속성 주입을 사용하여 연결 팩토리 ConnectionFactory 및 대상 대상 객체를 얻습니다
b. 연결 팩토리의 createConnection을 사용하여 연결을 엽니다
c. Connection의 createSession을 사용하여 세션을 생성하고 트랜잭션 매개변수를 지정합니다
d. 세션의 createProducer를 사용하여 화물 대기열 Producer
를 생성합니다.
e. 세션의 createMessage를 사용하여 메시지를 생성하고
를 설정합니다.
f. 화물 대기열 생산자의 보내기를 사용하여 메시지를 보냅니다
g. 리소스 공개
참고: 위 프로세스는 JavaEE 6을 기반으로 합니다. JavaEE 7은 더 간단한 A 개발 프로세스를 제공합니다
3. 메시지 인터페이스: 메시지 헤더, 메시지 속성, 메시지 구현 클래스: ObjectMessage는 객체를 전송하고, ByteMessage는 바이트를 전송하고, MapMessage는 Map을 전송하고, StreamMessage는 스트림 데이터를 전송하고, TextMessage는 텍스트를 전송합니다.
메시지 구동 Bean(MDB)
2. 디자인 원칙:
a. MDB 클래스는 메시지 수신기 인터페이스를 직접 또는 간접적으로 구현해야 합니다
b. 구체적이고 공개적이어야 하며 최종 또는 추상 클래스일 수 없습니다
c. POJO여야 하며 다른 MDB의 하위 클래스일 수 없습니다
d. 매개변수가 없는 생성자가 있어야 합니다
e. 최종적인 방법은 있을 수 없습니다
f. MDB 인스턴스가 발생하면 종료되므로 런타임 예외가 발생하지 않습니다.
3. MDB를 사용하여 소비자 프로세스 개발
b. MessageListener 인터페이스를 구현하고 onMessage 메소드를 구현합니다
c. onMessage에 로직을 구현하세요
4. @MessageDriven: 주석이 달린 클래스는 MDB입니다. name은 MDB의 이름을 지정합니다. messageListenerInterface는 MDB에서 구현되는 메시지 인터페이스를 지정합니다(인터페이스는 클래스에서 직접 구현될 수 있음). 독점 구성 속성을 지정합니다
5. MessageLisener: MDB를 메시지 소비자로 등록하고 다양한 시나리오에 따라 다양한 리스너 인터페이스를 구현합니다.
6. ActivationConfigProperty: 메시징 시스템의 구성 정보를 구성합니다
a. 목적지 유형: MDB가 대기열 또는 주제를 수신하는지 여부를 컨테이너에 알립니다
b.connectionFactoryJndiName: MDB
의 JMS 연결을 생성하는 데 사용되는 연결 팩토리 JDNI를 지정합니다.
c.destianName: 청취 대상을 지정하세요
d.acknowledgeMode: JMS 세션 확인 모드를 지정합니다
e. subscribeDurability: 지속 구독자로 설정하는 데 사용됩니다
f. messageSelector: 메시지 필터링
7. MDB 수명 주기:
b. 리소스 주입
c. 관리형 풀에 저장
d. 메시지가 도착한 목적지를 감지하면 풀에서 유휴 빈을 꺼냅니다
e. 메시지 리스너 메소드, 즉 onMessage 메소드를 실행합니다
f. onMessage 메소드가 실행되면 유휴 Bean을 다시 풀에 저장합니다
g. 필요에 따라 풀에서 빈을 취소/파기하세요
8. MDB에서 메시지 보내기: JNDI에서 대기열에 삽입하고 팩토리 객체에 연결한 다음 Java 메시지와 동일하게 작동합니다
9. 트랜잭션 관리: 일반적인 상황에서는 onMessage 메소드 이전에 트랜잭션이 시작되고 메소드가 끝날 때 트랜잭션이 제출됩니다. 트랜잭션은 메시지 컨텍스트 객체를 통해 롤백될 수 있습니다.
MDB 모범 사례
2. 메시지 모델 선택: PTP 또는 게시-구독은 프로그램 설계 중에 결정해야 하지만 다행히 둘 사이를 전환하려면 구성 수정만 하면 됩니다
3. 모듈화 유지: MDB의 onMessage 메소드는 비즈니스 로직을 처리해서는 안 됩니다. 비즈니스 로직은 해당 세션 빈에 배치되어야 하며 MDB는 해당 세션 빈 호출을 담당해야 합니다. 4. 필터를 최대한 활용하거나 장면에 따라 대상을 구분하세요
5. 메시지 유형 선택: 사용 시나리오에 따라 전송에 사용되는 메시지 유형을 선택하세요
6. 유해한 메시지에 주의하세요. 사용할 수 없지만 롤백된 메시지는 수신/롤백의 무한 루프에 빠지게 됩니다. 개별 제조업체에는 데드 메시지에 대한 자체 구현이 있지만 프로그래밍할 때는 주의해야 합니다
7. MDB 풀 크기 구성: 시나리오 및 요구 사항에 따라 구성
ReferenceEJB 3 실행, 제2판
위 내용은 느슨하게 결합된 메시지를 사용한 비동기 통신 프로세스란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!