• 微服务


      单体架构

     单体架构的优点:

      1、易于开发

      2、易于部署

      3、易于拓展

    单体架构的缺点:

      1、巨大的代码、代码质量下滑。两者恶性循环。

      2、IDE过载。

      3、Web容器启动效率。

      4、持续部署带来挑战。

      5、应用不易拓展。

      6、规模化开发。

      7、一套技术栈,撸到低。

    在单体架构中,为了负载均衡,需要将1套代码部署在多台web服务器上。但是 如果在“用户系统”中用到了“项目系统”(就是部署在3台服务器上的系统)中db内的一些数据,那么该怎么去做?直接使用 link server去访问那个DB?

    答:

    1、聚合服务(聚合数据库:再创建一个数据库,将 这两块用到的表都放到一个DB当中,通过对聚合数据库进行查询)。

    2、冗余(将用户数据冗余到项目系统中去,直接在项目系统的DB内查询出)。

    对单体架构进行横向拓展。

     将原本的单体架构拆分成多个服务部署在多个服务器上。

    1、通过调用service,读写数据。

    2、读写分离。(当第1条无法解决问题,就使用第2条)

    3、分库。(当第2条无法解决问题,就使用第3条)

      

    微服务

    一组小的服务

    独立的进程

    轻量级通信

    基于业务的能力

    独立部署

    无集中式的管理

     

    微服务所带来的问题(挑战):

    1、分布式所带来的问题追踪、测试、部署、监控。

    2、开发难度加大(聚合查询、分布式事务)。

    var userService=new UserService();

    var user=userService.GetUser(10010);

    在单体架构中,如果上面的代码发生异常,我们能够很块的定位到错位原因,但是在微服务架构中,由于是通过调用服务(服务器与另一台服务器通信)来获取数据,如果出现了错误,那么无法能够迅速的定位到错误问题。(可能是代码bug,可能是网络问题……)

    面向微服务架构的单体架构。

     在微服务架构下,聚合服务是使用 UserAPI和ContactAPI 来读写数据的。而在这里,作者是创建了AggregateController,并在该controller中引用了两个service来达到目的(引用DLL的方式)。

  • 相关阅读:
    企业IT管理员IE11升级指南【7】—— Win7和Win8.1上的IE11功能对比
    Microsoft Azure Web Sites应用与实践【3】—— 通过Visual Studio Online在线编辑Microsoft Azure 网站
    Microsoft Azure Web Sites应用与实践【2】—— 通过本地IIS 远程管理Microsoft Azure Web Site
    万以内的数字转繁体
    你的生产力工具集
    nodejs保存图片至本地
    设置input 中placeholder的样式
    微信支付报调用支付JSAPI缺少参数: sign
    vuepress项目 配置/使用/部署 markdown语法
    移动端自适应js
  • 原文地址:https://www.cnblogs.com/vichin/p/15255457.html
Copyright © 2020-2023  润新知