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

2020-09-25  本文已影响0人  zxws1009

最近微服务比较火,今后也将会大势所趋,今天咱们来实操一下.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笔记-局域网分布式架构

上一篇 下一篇

猜你喜欢

热点阅读