关于web应用技术发展的一点感想

web应用技术发展的一点感想

计算机有异于其他学科,很多技术和标准,依靠巨头公司制定的工业标准,而不是产自高校实验室或研究。技术学习,还是要看技术发展的历史。网上有很多未对soa 和微服务的区别进行实质的区分。
web应用,为啥本文要强调这点,因为web一应用本质上是操作系统以上一个进程,和我们使用的word、音乐软件本质是一样的。这点想反复强调,从抽象层面来看待这个问题,不管什么类型的web后端技术,Java Springboot,或.NET MVC ,WEBAPI,还是php、python或 node.js 技术栈,本质都是进程。
我们的技术路线,从单机向多机器 跨机器的分布式发展,解决计算和存储资源不足的瓶颈或者维护问题。

SOA时代和微服务时代进程通信

SOA 时代和微服务时代,有个显著差异就是进程间通信方式的不同。

  • 上古时代:单机进程通信,IPC通信,操作系统给了我们一系列方式,管道、消息队列、共享内存。
  • 远古时代:跨机器进程通信,是要依靠计算机网络,譬如我们的Socket、HTTP和FTP等。也就是SOA时代,为了加快开发效率,我们的巨头微软联合其他一些公司,引入了RPC标准,提交到W3C,当时引入非常火爆的XML 作为通信格式,实现了webservice,实现同语言和跨语言服务间的通信,本质也就是跨机器进程间的通信。webservice 理想是美好的,但是性能是残酷的,并未到当当初制定的目标。
    webservice 是RPC 这一概念的具体实现方式, webservice=HTTP+XML,当然webservice也可以用socket技术去实现。
  • 在微服务时代,摒弃XMl,引入了Json, restful = HTTP+JSON,跨机器进程间的通信,和HTTP强绑定 ,这一技术的发展也得益于google的ajax。
  • 时至今日,当下微服务,也采用rpc 和restful 两种并存的技术通信方式。

微服务为什么不采用更为底层的通信方式 socket

  • socket 过于底层,处于传输层,应用层需要自定义。一般用于特殊的应用开发,譬如即时通信等。
  • 在web应用层开发,我们一般采用生产效率更高,严格测试和实践的http协议。因为采用socket,应用层协议需要自己开发,严格测试,检验,效率更低,但是底层,功能更为强大。应用在一些定制化场景。

总结

  1. 一台机器内,进程间的通信采用操作系统自带的IPC 管道、消息队列、共享内存和同步等。
  2. 垮机器进程间通信,必须站在网络通信协议的基础上,传输层一下都由操作系统实现了,应用层 由用户或者容器实现了,技术手段有RPC 或者HTTP(http本身发明出来是用来和浏览器通信的,看名字就知道,发展到今日扩展到服务器间)。
  3. 抽象看问题,应用抽象为进程、分布式抽象为进程间的通信。SOA 和微服务从抽象角度看,进程间通信方式不同。
  4. 计算机发明的那些基础术语很重要,精华,进程,线程等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值