Redante é um contêiner leve baseado em rede
característica:
Redante é um contêiner da Web baseado em rede, semelhante ao Tomcat e WebLogic.
Você só precisa iniciar um servidor e a classe de implementação padrão é o nettyhttpServer para iniciar rapidamente um contêiner da web, como mostrado abaixo:
public final class ServerBootstrap {
public static void main ( String [] args ) {
Server nettyServer = new NettyHttpServer ();
// 各种初始化工作
nettyServer . preStart ();
// 启动服务器
nettyServer . start ();
}
}Até agora, descrevi todo o modo de nó único. Se o desempenho de um único nó não puder ser atendido em um dia, preciso usar um cluster, então também implementei o modo de cluster.
O modo de cluster é composto por um nó principal e vários nós de escravos. Depois de receber a solicitação, o nó principal encaminha a solicitação ao nó escravo para processamento. O nó escravo retorna o resultado processado ao nó principal e o nó principal responde ao resultado à solicitação.
Para implementar o modelo de cluster, precisamos ter uma função de registro e descoberta de serviço. Atualmente, usamos o ZK para fazer registro e descoberta de serviços.
Como o nó principal precisa encaminhar a solicitação ao nó escravo, o nó principal precisa saber quais nós de escravos estão lá atualmente. Eu uso o Zookeeper para implementar o registro e a descoberta de serviços.
Se você não tiver um servidor ZK disponível, poderá iniciar um servidor Zookeeper executando o seguinte método principal:
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 );
}
}
}Dessa forma, você pode usar esse ZK ao iniciar o nó mestre e escravo mais tarde. Mas isso não é necessário. Se você já possui um servidor ZK em execução, pode usá -lo diretamente ao iniciar o nó mestre e escravo, especificando o endereço de ZK nos parâmetros principais do método.
Basta executar o código a seguir para iniciar um nó principal:
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 ();
}
}Se o endereço ZK for especificado nos parâmetros principais do método, a descoberta de serviço será executada através deste endereço, caso contrário, o endereço ZK padrão será usado.
Basta executar o código a seguir para iniciar um nó escravo:
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 ();
}
}Se o endereço ZK for especificado nos parâmetros principais do método, o registro de serviço será realizado através deste endereço, caso contrário, o endereço ZK padrão será usado.
Você pode experimentá-lo executando o exemplo fornecido no módulo Red-Exemplo, que possui dois controladores embutidos no módulo de exemplo.
Após o início, você pode visitar http://127.0.0.1:8888 no seu navegador para visualizar os efeitos específicos (a porta padrão pode ser modificada no Red.Properties)
Se você vir uma mensagem como esta: "Bem -vindo ao Redante!", Isso significa que você começou com sucesso.
No módulo Red-Exemplo, as seguintes rotas padrão são incorporadas em:
| Tipo de método | Url | Tipo de resposta |
|---|---|---|
| PEGAR | / | Html |
| * | * | Html |
| PEGAR | /usuário/contagem | JSON |
| PEGAR | /usuário/lista | JSON |
| PEGAR | /usuário/info | JSON |
Como a primavera, você pode gerenciar todos os objetos através da anotação @Bean e injetar automaticamente -os através do @Autowired.
Dicas: Para mais informações, verifique Wiki: Bean
Como a primavera, você pode personalizar um controlador através do @Controller.
A anotação @Mapping é usada no nível do método, @Controller + @Mapping define apenas uma solicitação HTTP.
A anotação @param é usada nos parâmetros do método. Esta anotação permite converter automaticamente o tipo básico em um objeto Pojo.
Dicas: Para mais informações, verifique Wiki: roteador
O Gerenciador de Cookies pode gerenciar cookies definidos pelo usuário.
Dicas: Para mais informações, verifique Wiki: Cookies
wh_all4you#hotmail.com
