zoukankan      html  css  js  c++  java
  • SpringCloud-分布式与集群的使用一(数据微服务与视图微服务)

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

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

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

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

      

      名词简单解释:

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

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

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

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

    比如下面:先设置一个微服务注册中心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才行,所以这么分析的。。。。)

  • 相关阅读:
    SQL Server 2008高可用性系列:日志传送 天高地厚
    SPICE(简单协议独立计算环境) 天高地厚
    (转载)RedHat桌面虚拟化介绍 天高地厚
    css让页面居中
    (转)AjaxPro实现机制探讨——Ajax是如何调用服务器端C#方法?
    Excel对象
    .net开发人员应该知道(一)
    SQLSERVER 动态执行SQL sp_executesql与EXEC
    存储过程中的 SET NOCOUNT ON
    .net开发人员应该知道(二)
  • 原文地址:https://www.cnblogs.com/meditation5201314/p/12662952.html
Copyright © 2011-2022 走看看