• springcloud的理解


    SpringCloud是Spring为微服务架构思想做的一个一站式实现。从某种程度是可以简单的理解为,微服务是一个概念、一个项目开发的架构思想。SpringCloud是微服务架构的一种java实现。
     
        什么是微服务?
        微服务没有一个标准统一的概念,个人理解:微服务是一种可以让软件职责单一、松耦合、自包含、可以独立运行和部署的架构思想。
        关键思想:拆分、单一、独立、组件化。把原本一个庞大、复杂的项目按业务边界拆分一个一个独立运行的小项目,通过接口的方式组装成一个大的项目。
     
        微服务的出现解决了什么问题?
        相对于微服务,普通的项目都会包含很多功能,是一个大而全的“超级”工程。比如:以普通架构方式实现的电商平台会是一个包含:登录、权限、会员、商品库存、订单、收藏、关注、购物车等功能单一项目。随着项目业务越来越复杂、开发人员越来越多相应开发、编译、部署、技术扩展、水平扩展都会受到限制。
     

    开发
        太多功能在一个项目中,可能会让代码复杂、结构混乱、业务关联混乱、技术单一。过多的功能,让整个项目结构复杂,业务相互交织,可能导致开发人员对业务的理解和代码实现相互交织,最后没人能完全理解整个项目。而且也很难控制每个开发人员能“合法合规”的编码,可能会把两个本来松耦合、互不影响的功能因为实现“简单”就偷懒强关联在一起。

    技术单一
        单一的项目为了技术的统一和管理的简单方便,一般都会采用统一的技术实现。但是超大型业务如电商平台,不可能只采用一种技术,可能会结合业务及不同技术优缺点和技术团队优执采用不同的技术。如果把项目拆分成不同的小项目,每个小项目可以根据自己的特点采用不同的技术,只需要提供统一的接口实现对接即可,最大化技术的优势。

    编译
        过于庞大的代码 也会导致整个项目编译时间过长,一次简单的修改或一个简单的单元测试需要漫长的编译和启动。

    版本控制
        过多的开发人员在同一个项目中共同开发不同业务模块,也会大大增加版本冲突。

    部署
        一个简单的修改需要部署整个项目。当多个功能同时上线,但仅仅因为一个小功能失败,就会导致其它所有功能一起回滚。

    扩展
        互联网的飞速发展,用户和请求量急剧增加,传统的项目很难扩展,即集群和分布式扩展的问题。
     
        微服务如何解决上面的问题?
        核心思路:就是拆分。

    SpringCloud
        SpringCloud是基于SpringBoot的一套实现微服务的框架。它提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。最重要的是,跟SpringBoot框架一起使用的话,会让你开发微服务架构的云服务非常方便。
     
        SpringCloud五大核心组件

    服务注册发现-Netflix Eureka
    配置中心 - spring cloud config
    负载均衡-Netflix Ribbon
    断路器 - Netflix Hystrix
    路由(网关) - Netflix Zuul

  • 相关阅读:
    Jsoup爬取带登录验证码的网站
    HDFS的java客户端编写
    【Eclipse】Elipse自定义library库并导入项目
    一个爬取https和http通用的工具类(JDK自带的URL的用法)
    爬取网站图片保存到本地
    java在CMD窗口执行程序的时候输入密码(隐藏一些敏感信息)
    htmlunit爬虫工具使用--模拟浏览器发送请求,获取JS动态生成的页面内容
    利用Jsoup模拟跳过登录爬虫获取数据
    jsoup抓取网页报错UnsupportedMimeTypeException
    Java爬虫(二)
  • 原文地址:https://www.cnblogs.com/whymoney1000/p/11260743.html
Copyright © 2020-2023  润新知