페이지

2021년 7월 23일 금요일

Spring RSocket API Model

RSocket Request : Response Input Type Output Tpye
Request & Response 1:1 Mono<T> Mono<R>
Fire & Forget       1:0 Mono<T> Mono<Void>
Request Stream 1:N Mono<T> Flux<R>
Request Channel M:N Flux<T> Flux<R>


Routing

@MessageMapping("create.user")
public Mono<User> createUser(Mono<User> usermono){
    return this.userService.create(usermono);
}

@MessageMapping("update,user")
public Mono<User> updateUser(Mono<User> usermono){
    return this.userService.update(usermono);
}

RSocketRequester W/O Data

rSocketRequester.route("product.all")
                 //.data()
                 .retrieveFlux(Product.class);


2021년 7월 17일 토요일

RSocket Response - Streaming vs Single List

  • Streaming T
    • Size - Potentially large /unknown
      • Pagination
      • Uber driver location updates
      • Online home-delivery update
    • Receiving side might take too much time to process
      • File upload
    • More effcient than multiple Request & Response calls

  • Single List<T>
    • Size is small & Data already in hand!
    • More efficient than streaming response

RSocket -> Peer-to-Peer

 




SocketAcceptor



2021년 7월 16일 금요일

RSocket API Model


RSocket Request : Response HTTP
Request & Response 1:1 YES
Fire & Forget 1:0 NO
Request Stream 1:N NO
Request Channel M:N NO

RSocket

- RSocket is a binary protocol for client/server application - peer-to-peer messaging - Supports Reactive-Streams * Aync * Non-blocking * BackPressure support - Supports * TCP * WebSockets * Aeron(UDP) - Developed by Netflix - Supports other languages like js, go, py, kotlin etc

2021년 7월 2일 금요일

Spring Boot Annotaions

@RunWith(SpringRunner.class)	Run test with Spring Context.
@SpringBootTest Search for Spring Boot Application for configuration.
@TestConfiguration Specify a Spring configuration for your test.
@MockBean Injects Mockito Mock
@SpyBean Injects Mockito Spy
@JsonTest Creates a Jackson or Gson object mapper via Spring Boot.
@WebMvcTest Used to test web context without a full http server.
@DataJpaTest Used to test data layer with embedded database.
@TestPropertySource Configure the property sources for the test.
@DirtiesContext Resets the Spring Context after the test(expensive to do).
@WebAppConfiguration Indicates Spring should use a Web Application context.
@TestExecutionListeners Allows you to specify listeners for testing events.
@Transactional Run test in transaction, rollback when complete by default.
@BeforeTranasaction Action to run before starting a transaction.
@AfterTransaction Action to run after a transaction.
@Commit Specifies the transaction should be committed after the test.
@Rollback Transaction should be rolled back after test.(Default action)
@Sql Specify SQL scripts to run before.
@SqlConfig Define meta data for SQL scripts.
@SqlGroup Group fo @Sql annotations.
@Repeat Repeat test x number of times.
@Timed Similar to JUnit's timeout, but will wait for test to complete, unlike JUnit.
@IfProfileValue Indicates test is enabled for a specific testing environment.
@ProfileValueSourceConfiguration Specify a profile value source.