互联网技术发展的很快。
想起刚毕业那会,大多数公司还在使用EJB,spring和maven还没有完全的普及。
在公司的第一个项目,就是将技术框架从EJB变为spring,项目的搭建也开始使用maven。
那时的mvc还在使用struts1,页面大多数在使用JSP开发。
再往后几年,struts2和springmvc使用的越来越多,spring框架几乎成了大多数公司的首选,前端技术JSP已经很少使用,freemarker模板、thymeleaf模板或者纯ajax交互成为了主流。
而这两年,MVC已经不再被提及太多,分布式,集群调度成为了新的宠儿,dubbo、spring cloud、spring boot、微服务这些词成为了主流。当你去面试时,如果不了解这些技术,都没法愉快的交流。
一、dubbo是什么
分布式服务框架,提供高性能和透明化的远程服务调用,并且能够对服务进行统一调度管理。
我的理解是,dubbo是实现了RPC(Remote Procedure Call)远程服务调用技术,并且对这些服务的提供者和调用者进行了统一的管理。
二、互联网技术的发展
1.单一应用架构
这种架构一般应用于比较简单的管理网站,或者自己做的小网站,主要功能就是对数据的增删改查,没有太多的访问量。
2.垂直应用架构
当网站的访问量开始增大时,所有功能集中在一起的单一应用架构已经无法支撑,这时候将应用进行拆分,比如一个小说网站的话,读者管理作为单一应用部署,小说管理作为另一个单一应用管理,这样,访问量将会被分流,管理人员和读者是访问不同的应用。
3.分布式服务框架
以小说网站为例,读者可以将小说添加到收藏夹,那么读者管理应用和小说管理应用不可避免的发生了关联,需要通过远程调用来获取数据。这个时候,就可以将读者管理和小说管理分割成独立的服务,作为访问入口的前端应用去根据需要调用这些独立的服务。
4.流动计算架构
当服务越来越多时,如果只是简单的将服务全部部署,应用之间的调用会显得很混乱,服务的稳定性也没法细致的监控。这个时候调度中心便出现了。调度中心对所有的服务进行统一的管理,可以选择性的进行注册,有利于资源的管理。通过消费者生产者的模式,对服务的调用方和提供方进行统一的调度和监控。
这便是对dubbo的初步认识。
dubbo和spring集成的很好,远程调用可以透明的进行,开发者通过spring进行配置后,感觉不到一个接口是在进行远程调用,和本地接口调用没有区别。