理解网关概念
根据我个人的理解,对于一个系统来说,不管是微服务架构还是非微服务架构,如果单从功能实现来说,网关其实不是必要的。
但是,如果一个系统的业务涉及到了和外部网络的交互,多数情况下都会加入网关功能,最根源的目的就是提升系统的网络安全性。
因此网关可以理解为是在大的系统架构层面,一个网络策略方面的东西,最基本的需求就是实现请求的路由转发。
在有了eureka服务注册中心、ribbon负载均衡及服务消费、hystrix断路器三部分之后,其实在某种程度上就应该能够创建一个基本的spring cloud微服务应用了,只不过这种应用无论是代码层面还是架构层面都还有一定的缺陷。
从代码层面来讲,ribbon和hystrix是一个标准化springcloud应用最基本的模块,通常也都是同时出现的,因此为了简化开发,有一个更高层次的工具来对他们进行了封装整合,这就是Feign。
feign在整合了这两者强大功能的同时,还提供了一种声明式的web服务客户端定义方式及可插拔式的注解,同时支持spring mvc的注解。
在ribbon和hystrix的基础上,feign看起来就比较简单。
ribbon用在客户端,或者说消费端,被称作客户端负载均衡。
对于这个称呼,可以解析为三个部分,一个是客户端,一个是负载均衡,然后就是客户端负载均衡。
根据个人理解,所有发起请求的一端、去拿东西的一端,都可以称之为客户端或消费端。
而负载均衡,一般则是针对于至少两个以上的集群而言,重点在于均衡。从相对论的角度而言,一切都是相对的,那么也就不存在绝对的均衡,因此所谓的均衡就需要一定的标准,如何达到这个标准,则需要一定的控制,即负载均衡策略,也可以称之为规则。
对于客户端负载均衡,则可以很好的理解为,这是相对于服务端负载均衡而言。相对于服务端负载均衡而言,客户端负载均衡的好处就在于各个客户端自己实现负载均衡运算,从而降低了服务端的压力。坏处在于客户端要自己实现负载,就需要清楚服务端集群的状态,增加了客户端的复杂度以及多个客户端下可能看起来的功能冗余。
网上关于dubbo的资料其实已经不少了,尤其是还有一个比较全面的官方文档教程。
但是正所谓知易行难,很多事不动动手,就总不知道里边的一些细节。
虽然早就想学一下dubbo,但是奈何需要学的东西太多,于是就以“工作为主导”的出发点,先学了其他技术。
这次,也是基于上边的出发点,我们某个项目需要重构成dubbo的项目,于是便正好从dubbo基础环境搭建开始学一下,并写一篇笔记备忘。
这篇笔记大概会包含如下一些内容:
1、搭建过程记录
2、遇到的问题和解决办法记录,这一点会在搭建过程记录的同时进行说明,不另外指出