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

Posted kazetotori

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习java后对分布式方面的一些理解相关的知识,希望对你有一定的参考价值。

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

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

 

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

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

流程如下:

serviceCore->

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

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

serviceLog->

  cloudLog.serviceLog()

 

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

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

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

 

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

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

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

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

 

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

以上是关于学习java后对分布式方面的一些理解的主要内容,如果未能解决你的问题,请参考以下文章

201671010139 徐楠 关于学习方面的一些疑惑

20165204 Java第二周学习

java事务学习笔记--深度剖析JTA原理与实现

JAVA反射机制—学习总结

Java 到 C# 尝试学习和理解两者之间的差异 [关闭]

分享一些 Java 无关基础方面的书籍