美文网首页
.net core 微服务demo笔记-单体架构

.net core 微服务demo笔记-单体架构

作者: zxws1009 | 来源:发表于2020-09-25 23:04 被阅读0次

    最近微服务比较火,今后也将会大势所趋,今天咱们来实操一下.net core 微服务架构。
    网上将微服务的很多,写得很好,我这里也不在一一总结,放一个微服务框架的博客,Net Core微服务架构
    这个里面提到了微服务框架的生态及技术栈,以及简单介绍了每个技术的概念,这里面每一个技术点要都要花时间精力才能学好。
    接下来咱们开始;

    采用循序的方式演变的程序架构:
    单一进程的单体架构 > 局域网分布式架构 > Nginx分布式集群架构+负载均衡 > Consul高可用性,高伸缩性的集群架构

    demo环境:windows10 + VS 2019 + .net core 3.1

    一、单一进程的单体架构

    单一进程的单体架构非常的常见,就是程序所有任务都是在单一进程里面处理,咱们再部署的时候,也仅需要部署一个实例。

    1. 新建一个asp .net core mvc项目,取名叫MallApp
    2. 新加viewmodel, HomeViewModel.cs
        public class HomeViewModel
        {
            public string Name { get; set; }
            public string NowDate { get; set; }
            public string IP { get; set; }
            public string Info { get; set; }
        }
    
    1. 修改HomeController下的Index这个action
    public IActionResult Index()
    {
        //1. 本地调用单体架构
        var re = "UserService.Get()"; // UserService看做是程序的Service层或三层架构的BLL层,从这个服务里面拿取数据
        var model = new HomeViewModel()
        {
            Name = "MallApp",
            NowDate = $"{DateTime.Now.ToLongDateString()} {DateTime.Now.ToLongTimeString()}",
            IP = $"{ Request.Scheme}://{Request.Host}{Request.Path}",
            Info = re
        };
        return View(model);
    }
    
    1. 修改Index.html
    @{
        ViewData["Title"] = "Home Page";
    }
    @model HomeViewModel
        <div class="text-center">
            <h1 class="display-4">Welcome @Model.Name</h1>
            <p>姓名:@Model.Name</p>
            <p>IP:@Model.IP</p>
            <p>时间:@Model.NowDate</p>
            <p>信息:@Model.Info</p>
        </div>
    

    项目目录结构:


    image.png

    最后的显示效果


    image.png

    这样就是一个最简单的单体应用架构了;

    单体架构的优缺点:

    ——优点:
    1.应用开发简单
    2.易于对应用程序进行大规模的更改
    3.测试相对简单直观
    4.部署简单明了
    5.横向扩展容易

    ——缺点:
    1.过度的复杂度
      系统本身过于庞大和复杂,以至于任何一个开发者都很难以理解它的全部。
      这种极度的复杂度会形成恶性循环,由于代码难以理解,因此开发人员更改更容易出错,每一次更改系统更复杂,更难懂。
    2.开发速度缓慢
      因为应用太大,每启动一次都需要很长的时间,因此从编辑到构建、运行再到测试这个周期花费的时间越来越长。
    3.代码部署的周期很长,而且容易出问题
      程序更改部署到生产环境的时间变得更长.
      代码库复杂,以至于一个更改可能引起的影响是未知的。
      开发团队分为多个小组,当需要发布的时候漫长的合并和测试时间非常长。
    4.难以扩展
      不能做到按需扩展,只能是扩展整个系统。
    5.交付可靠的单体应用是一项挑战
      单体程序缺乏可靠性,这个问题导致了频繁的系统故障和宕机。
      应用程序缺乏故障隔离,因为所有模块都运行在同一个进程当中
    6.需要长期以来某一个可能已经过时的技术栈
      团队长期使用一套相同的技术,单体架构使得采用新的框架和编程语言变的及其困难。

    本章结束!

    下一篇:.net core 微服务demo笔记-局域网分布式架构

    相关文章

      网友评论

          本文标题:.net core 微服务demo笔记-单体架构

          本文链接:https://www.haomeiwen.com/subject/gblquktx.html