Restful、rpc、dubbo
要入职平安健康了,项目框架好像用的dubbo,所以提前自学了解下。
这编先把概念摸清楚,今天在了解dubbo的时候牵扯出rpc,然后想起求职过程中职位要求经常有看到rpc、restful这些单词,所以顺道把restful概念也梳理清楚。
一、REST和RESTful
1、REST
全称为Representational State Transfer,意思是表现层状态转移,它一种软件架构风格,不是标准,不需要严格遵守。
URL中只使用名词来定位资源,用HTTP协议里的动词(GET、POST、PUT、DELETE)来实现资源的增删改查操作。
2、RESTful风格
基于REST构建的API就是Restful风格,下面是示例:
http://localhost:8080/students GET(查询所有学生)
http://localhost:8080/students/1 GET(查询id为1的学生)
http://localhost:8080/students POST(保存学生信息)
http://localhost:8080/students/1 DELETE(删除id为1的学生信息)
http://localhost:8080/students PUT(修改学生信息)
上面我们定义的四个接口就是符合REST协议的,通过请求类型来判断是什么业务操作。
3、优点
和传统风格的相比,我们可以看到REST风格的一部分优点:
a、可以隐藏资源的访问行为(如隐藏了selectById等),这样就无法通过地址得知对资源进行了哪种操作。
b、可以明显的看到其书写简化了,不仅书写简化了,在开发时代码也可以简化。
二、RPC
1、RPC(Remote Procedure Call)是一种概念,表示远程过程调用,就是像调用本地方法一样调用远程方法。
2、主要用在内部服务间的通信,常用在微服务;
3、RPC可以用HTTP实现(springcloud),也可以用TCP实现(dubbo)。 TCP是传输层协议,而HTTP是应用层协议,由tcp实现的rpc性能比较好。
SpringCloud:Spring公司开源的微服务框架,SpirngCloud 定位为微服务架构下的一站式解决方案。
Dubbo: 阿里巴巴开源的RPC框架,它的关注点主要在于服务的调用,流量分发、监控和熔断;
SpringCloud生态丰富,功能完善,更像是品牌机,Dubbo则相对灵活,可定制性强,更像是组装机
参考:https://blog.csdn.net/weixin_51291483/article/details/109212137/
三、dubbo
dubbo官网:https://dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/