Armeria

network개발 2016. 11. 15. 14:58

<주로 사용하는 기능들>

HttpResponse.aggregate() : CompletableFuture로 전환.

예) httpClient.get(uri.getPath()).aggregate()


Decorator: req나 response를 살짝바꾸는 역할. SoC(Seperation of Concern)가 가능.

- req,res가 같을 때는 SimpleDecoratorService를 상속 - req나 res의 type의 바뀔때는 DecoratorService를 상속 - 간단한 decorate()용 lambda도 있음.

<유용한 class - armeria thrift용 개발시에도 사용가능>

com.linecorp.armeria.common.metric.MetricLabel
      - Collector같은 애들에게, 이름을 붙여서, lambda에서 사용시 지정할 수 있다.


common.util.Functions.voidFunction (Consumer or BiConsumer)   : Consumer를 Function으로 변환. 

                                    .compose (Func12, Func23) -> Func(1,3)으로 변환.   그 외에도 각종 compose들 존재. 


common.HttpHeaders;

common.RequestContext;

server.logging.LoggingService;


<기존 netty꺼긴 하지만..유용class>

io.netty.util.AsciiString;


<Connector>

armeria's TomcatService always create a Request/Response instance.
<-> Tomcat's Http11Processor create them only once and this processor instance will be recycled.




REF-github


- 기존의 netty와는 달리 Http2.0을 지원한다.   HTTP2.0-REF
    (기존의 HTTP1 서비스와 호환성도 유지)

- JNI-based socket I/O 

BoringSSL-based TLS connections

- (Apache) Thrift  호환
   THttpClient와 호환. (Thrift-Over-Http)   

    참고:  Thrift - Binary communication을 위한 IDL로서 RPC사용을 위해 facebook에서 개발.

- Java EE Web Application이랑 호환.  (same TCP/IP port)



Posted by yongary
,