Redant 는 Netty 기반 가벼운 웹 컨테이너입니다
특성:
Redant는 Tomcat 및 Weblogic과 유사한 Netty 기반 웹 컨테이너입니다.
서버 만 시작하면 다음과 같이 웹 컨테이너를 빠르게 시작하려면 기본 구현 클래스가 NettyHttPserver입니다.
public final class ServerBootstrap {
public static void main ( String [] args ) {
Server nettyServer = new NettyHttpServer ();
// 各种初始化工作
nettyServer . preStart ();
// 启动服务器
nettyServer . start ();
}
}지금까지 모든 단일 노드 모드를 설명했습니다. 하루에 단일 노드의 성능을 충족 할 수없는 경우 클러스터를 사용해야하므로 클러스터 모드도 구현했습니다.
클러스터 모드는 마스터 노드와 여러 슬레이브 노드로 구성됩니다. 요청을 수신 한 후 마스터 노드는 처리를 위해 슬레이브 노드로 요청을 전달합니다. 슬레이브 노드는 처리 된 결과를 마스터 노드로 반환하고 마스터 노드는 결과에 요청에 응답합니다.
클러스터 모델을 구현하려면 서비스 등록 및 검색 기능이 필요합니다. 현재 ZK를 사용하여 서비스 등록 및 발견을 수행합니다.
마스터 노드는 요청을 슬레이브 노드로 전달해야하므로 마스터 노드는 현재 어떤 슬레이브 노드가 있는지 알아야합니다. 나는 Zookeeper를 사용하여 서비스 등록 및 발견을 구현합니다.
사용 가능한 ZK 서버가없는 경우 다음 기본 방법을 실행하여 Zookeeper 서버를 시작할 수 있습니다.
public final class ZkBootstrap {
private static final Logger LOGGER = LoggerFactory . getLogger ( ZkBootstrap . class );
public static void main ( String [] args ) {
try {
ZkServer zkServer = new ZkServer ();
zkServer . startStandalone ( ZkConfig . DEFAULT );
} catch ( Exception e ){
LOGGER . error ( "ZkBootstrap start failed,cause:" , e );
System . exit ( 1 );
}
}
}이렇게하면 나중에 마스터 및 슬레이브 노드를 시작할 때이 ZK를 사용할 수 있습니다. 그러나 이것은 필요하지 않습니다. ZK 서버가 이미 실행중인 경우 기본 메소드 매개 변수에 ZK의 주소를 지정하여 마스터 및 슬레이브 노드를 시작할 때 직접 사용할 수 있습니다.
마스터 노드를 시작하려면 다음 코드를 실행하십시오.
public class MasterServerBootstrap {
public static void main ( String [] args ) {
String zkAddress = ZkServer . getZkAddressArgs ( args , ZkConfig . DEFAULT );
// 启动MasterServer
Server masterServer = new MasterServer ( zkAddress );
masterServer . preStart ();
masterServer . start ();
}
}ZK 주소가 기본 메소드 매개 변수에 지정되면이 주소를 통해 서비스 검색이 수행됩니다. 그렇지 않으면 기본 ZK 주소가 사용됩니다.
슬레이브 노드를 시작하려면 다음 코드를 실행하십시오.
public class SlaveServerBootstrap {
public static void main ( String [] args ) {
String zkAddress = ZkServer . getZkAddressArgs ( args , ZkConfig . DEFAULT );
Node node = Node . getNodeWithArgs ( args );
// 启动SlaveServer
Server slaveServer = new SlaveServer ( zkAddress , node );
slaveServer . preStart ();
slaveServer . start ();
}
}ZK 주소가 기본 메소드 매개 변수에 지정되면이 주소를 통해 서비스 등록이 수행됩니다. 그렇지 않으면 기본 ZK 주소가 사용됩니다.
예제 모듈에 내장 된 2 개의 컨트롤러가있는 Redant-Amertiph 모듈에 제공된 예제를 실행하여 시도 할 수 있습니다.
시작 후 브라우저에서 http://127.0.0.1:8888을 방문하여 특정 효과를 볼 수 있습니다 (기본 포트는 Redant.Properties에서 수정할 수 있음).
"Redant에 오신 것을 환영합니다!"와 같은 메시지가 보이면 성공적으로 시작했음을 의미합니다.
Redant-Amermord 모듈에서 다음 기본 경로가 내장되어 있습니다.
| 메소드 유형 | URL | 응답 유형 |
|---|---|---|
| 얻다 | / | HTML |
| * | * | HTML |
| 얻다 | /user/count | JSON |
| 얻다 | /사용자/목록 | JSON |
| 얻다 | /사용자/정보 | JSON |
봄과 마찬가지로 @bean 주석을 통해 모든 객체를 관리하고 @autowired를 통해 자동으로 주입 할 수 있습니다.
팁 : 자세한 내용은 Wiki : Bean을 확인하십시오
Spring과 마찬가지로 @Controller를 통해 컨트롤러를 사용자 정의 할 수 있습니다.
@mapping annotation은 메소드 레벨에서 사용됩니다. @controller + @mapping 만 http 요청 만 정의합니다.
@Param 주석은 메소드의 매개 변수에 사용됩니다. 이 주석을 사용하면 기본 유형을 Pojo 객체로 자동 변환 할 수 있습니다.
팁 : 자세한 내용은 Wiki : Router를 확인하십시오
쿠키 관리자는 사용자 정의 쿠키를 관리 할 수 있습니다.
팁 : 자세한 내용은 Wiki : 쿠키를 확인하십시오
wh_all4you#hotmail.com
