RPC简单Demo

code:https://github.com/ice-kumangcao/JavaDemo/tree/master/src/main/java/rpc
RPC-远程过程调用,这里就不详细的解释概念了(百度即可)
RPC是概念性名词,可以通过不同的技术实现

这个Demo就是用Java JDK代理+socket实现RPC

这个Demo分为三个角色:消费者生产者中间件(算个角色吧)

  • 消费者用来消费生产者提供的服务或产品,中间件算是管理生产者,为消费者提供生产者
  • 消费者和生产者之间遵从统一的接口,中间件提供消费者使用和生产者注册的方法
  • 中间件内部实现了生产者到消费者的运输桥梁,具体怎么运输,出了问题怎么办由中间件管理

消费者消费的最终是生产者的资源,消费者只得到一个产品,
映射到代码中就是,消费者执行一个接口的方法,由相应的生产者来执行,
消耗的是生产者的内存和CPU时间,消费者只得到一个结果。

为什么要SOA?

MVC架构中所有的业务都写到了一个应用中,如果并发增加,一台tomcat无法支持,只能进行横向扩展,但是在此种情景下,所以的业务都是平级的,享受相同的系统资源,但是想想,不同的业务在使用频率和系统资源消耗肯定是不同的。
如果并发继续增加,还是只是单纯的横向扩展只会浪费系统的资源,让使用频率高的无法支持更高的并发,让使用频率低的默默占用系统资源。如果能够将服务从应用中剥离出来,就能合理的为服务提供合适的资源。

将服务剥离出来,应用和服务沟通需要走网络传输,网络传输肯定会增加服务调用时间
和增加风险,这些都是需要中间件来提供解决方案的

:sob:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容