码迷,mamicode.com
首页 > 编程语言 > 详细

学习java后对分布式方面的一些理解

时间:2018-01-27 13:35:00      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:调用   响应时间   吞吐量   gpo   返回值   core   kotlin   ice   cloud   

学习java之后,我也可以算全栈了(笑)。

java基于spring的各种东西都很方便,不像node的express需要自己找中间件。

 

这篇文章可能不会太长,主要讲分布式的理解。

假设一个基于spring cloud的应用,核心业务为serviceCore,包含serviceA和serviceB,其中A通过一个cloud服务访问。并且在执行完核心业务后记录日志

流程如下:

serviceCore->

  cloudA.serviceA()   // 这里会阻塞

  serviceB()               // 这里会自己执行事务

serviceLog->

  cloudLog.serviceLog()

 

在这个过程中serviceCore无论使不使用分布式,其执行的时间是不会减少的,而且会增加数据传输的时间。

那么为什么要使用分布式?

如果用kotlin写服务端,使用协程模型(coroutine),使一个线程能多协程,协程可以并行阻塞,资源被释放后就可以增加吞吐量。

 

换句话说,高并发应用场景最核心在于迅速响应用户。

即使在集群的环境下,一组服务的吞吐量是有限的,当线程池资源枯竭的时候服务器就无法继续接收用户请求。

对于核心业务来说,将业务分成若干服务并交给rpc处理,主服务就能空出资源接收更多的用户请求,而核心业务又是调用服务,所有操作都在并行执行。

而非核心业务,可以用消息队列把它推送出去,这部分业务我们不需要返回值。

 

貌似对于单个用户来说,分布式并不能降低响应时间,但它确确实实能降低整个系统的响应时间。

学习java后对分布式方面的一些理解

标签:调用   响应时间   吞吐量   gpo   返回值   core   kotlin   ice   cloud   

原文地址:https://www.cnblogs.com/kazetotori/p/8365237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!