SpringCloud-分布式与集群的使用一(数据微服务与视图微服务)

  先解释下单体架构:平时开发数据部分+视图部分都放在一个应用中。故而缺点就出来

1.修改数据部分时,视图部分必须等待修改完才能重新打包部署。

2.数据部分或视图部分出错,整个项目无法运行

3.性能问题等等(现在大部分公司都采用的是分布式。。。。。)

  

  名词简单解释:

    微服务:一个项目springboot就是一个微服务

    分布式:原本数据开发+视图开发现在分在多个项目springboot中开发。

    集群:两个springboot开发,功能一样,端口不一样,就是集群

    父子-聚合项目:Maven创建:一个父项目,有多个子项目

扫描二维码关注公众号,回复: 10606858 查看本文章

比如下面:先设置一个微服务注册中心eureka server,然后一个数据微服务,在微服务注册中心注册(为了视图微服务调用),同时数据微服务下面分成2个端口(集群),

这样就类似Nginx的负载均衡了,然后视图微服务访问数据服务时候就会去微服务注册中心eureka server调用接口,最终实现分布式的功能。(整体是在一个SpringCloud的项目下面

也就是说微服务注册中心、数据服务、视图服务都是SpringCloud的子项目)。

  

                                                            

共使用了2个视图微服务(使用Feign更佳):

视图微服务Ribbon:使用 restTemplate 进行调用,并进行客户端负载均衡

视图微服务Feign:  Feign 是对 Ribbon的封装,调用起来更简单

 

下面是SpringCloud的父项目,下面4个都是子项目

 

 

 

 

实现效果如下:

注册服务中心eureka server:

 

 

 

127.0.0.1:8001

 

 

 127.0.0.1:8002

 

 

 

 

Ribbon和Feign实现效果都如下(可以看到,视图微服务实现了客户端的负载均衡,与普通的Nginx负载均衡不同,这提高了性能,完美实现了分布式):

 

 

 

-------------------------------------------------------------------------------补充----------------------------------------------------------------

一个小注意点:

127.0.0.1与localhost的区别:127.0.0.1 经过网卡,相当于本机通过网络访问本机,

而localhost不经过网卡,由于本机要重新访问端口8001与8002,所以使用localhost会访问不到页面products

(我是这样的,localhost访问不到,127才行,所以这么分析的。。。。)

猜你喜欢

转载自www.cnblogs.com/meditation5201314/p/12662952.html