博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开篇有益-解析微软微服务架构eShopOnContainers(一)
阅读量:6402 次
发布时间:2019-06-23

本文共 2044 字,大约阅读时间需要 6 分钟。

为了推广.Net Core,微软为我们提供了一个开源Demo-eShopOnContainers,这是一个使用Net Core框架开发的,跨平台(几乎涵盖了所有平台,windows、mac、linux、android、ios)的,基于微服务架构的,运行在容器中的小型应用,其不仅展示了.Net Core的跨平台性,更展示了VS2017的强大,所有代码都在VS2017下开发。从名字上可以看出,这是一个运行在容器上的电子店铺应用,利用Docker的跨平台性,使我们可以“build once, run anywhere”。
 
一、介绍
eShopOnContainers是基于微服务架构和Docker容器的一个简单的.Net Core的应用。目前微服务架构如火如荼,docker技术也发展迅速,微软在这时推出这个Demo,其用意可想而知,虽说这个Demo还不能完全应用到生产环境,但对于我们开发者来说,可是非常好的学习资料,无论你是稍作修改还是利用架构重新开发,学习这样一个Demo都是非常有必要的,这让我想起以前学习BlogEngine.Net。
 
二、架构
我们看下微软提供给我们的架构图
从左到右我们看到有2个虚线框,左边是各个客户端应用,右边是假设在Docker上的web应用、微服务应用和数据库。
在Demo中,微软根据不同功能分别搭建了多个service,而且在设计这几个service的时候,微软又使用了不同的方式来实现,如下图所示:
以上是微软在Demo中展示的四种services,你还可以使用不同的框架,不同的数据库完成你的微服务搭建,这就是微服务为何如此流行的原因了。我可以利用任何语言,任何数据库都能搭建我的服务,无论我的调用端使用的何种语言,何种系统。
三、源代码
这套架构在Github上开源,地址:
我们可以通过git把源代码clone下来:
我们看到里面有3个sln,建议用vs2017打开,如果你安装了完整版,你可以打开eShopOnContainers.sln,不过一般对于初学者来说,我们还是打开eShopOnContainers-ServicesAndWebApps.sln解决方案。
可以看到在解决方案中已经涵盖了webapp和service app,我们的教程也是以这个solution为准。
四、必要环境:
之前说过我们的应用是跨平台的,可以运行在任何支持Docker的操作系统之上,但在我们开发调试的时候,我们需要相应的环境才能进行调试(当然你也可以使用iisexpress进行调试)
1、64bit Windows 10 Pro
2、开启Hyper-V(微软的虚拟机)
3、
如果我们是win10之前的版本,我们虽然可以安装 ,但是没办法利用VS2017进行Docker调试,运行时会报错,为了这教程,我决定把我电脑升级到Win10,这样才能更好的展示。
如果你想在之前的系统下进行调试运行,除了安装Docker Toolbox外,您还需要安装:
1、
2、
Docker for Windows 在win10或者server 2016上有2种类型的容器,Linux container 和Windows Container,这里我们只需要使用Linux Container即可(默认)。我们的教程只针对Services和WebApp,微软建议设置Docker的使用内存是4096M(4G)和CPU 3,如果你要运行完整版(包含手机客户端),那你需要为Dockere配置16G内存。
我个人建议的话,你最好有台专门放数据库的机器,否则一个 都需要4G内存,不用说还需要搭建一个redis。
我们在学习的时候,我们不一定要使用Docker进行调试,利用iis express也可以,用哪种方式不重要,重要的是学习。
 
五、学习步骤:
本系列讲解的都是以ServicesAndWebApps.sln代码为准,我们将先从微服务学习,再看web部分的代码结构。大致的顺序如下:
1、Identity service
2、Catalog Service
3、Ordering Sevice
4、Basket Service
5、WebApp Mvc
6、WebSPA
 

 
写在最后:
前段时间比较忙,但一直非常关注.Net Core的发展,在之前的builder大会上,2.0的惊艳亮相,彻底让我相信微软会不惜余力的发展.Net,也使我等.Net Developer感觉到春天到了,至此为天下所有.Net Developer致敬,我们等了10年啊。
为什么挑这个架构来说呢,因为这是微软写的,很有教学意义,而且现在微服务和Docker概念越来越火,目前的公司是基于服务做的(还没有到达微服务概念),在部署、开发、维护、扩展上都有很多不便,所以这个学习对我来说非常重要。
 
第一篇比较偏废话些,后面会围绕代码和架构和设计模式进行讲解,欢迎大家订阅。最后来一张效果图

转载地址:http://zejea.baihongyu.com/

你可能感兴趣的文章
《深入理解ElasticSearch》——2.8 ElasticSearch切面机制中的过滤器与作用域
查看>>
Mozilla 开源 web 虚拟现实框架 A-Frame
查看>>
Libreboot 申请重新加入 GNU
查看>>
《伟大的计算原理》一总结
查看>>
开源笔记本 Novena 将支持宽频软件无线电
查看>>
程序员怎样才能找到一个靠谱的创业公司
查看>>
《实施Cisco统一通信VoIP和QoS(CVOICE)学习指南(第4版)》一第1章 介绍语音网关...
查看>>
ZFS On Linux 现状,是否足够稳定了?
查看>>
《OpenCV图像处理》——2.5 算术运算
查看>>
《嵌入式 Linux C 语言应用程序设计(修订版)》——导读
查看>>
YurunHttp V1.3.3 发布,支持 composer
查看>>
Ubuntu LTS 16.04 开发进入功能冻结阶段
查看>>
《企业大数据系统构建实战:技术、架构、实施与应用》一第2章 企业大数据职能规划2.1 大数据组织架构体系...
查看>>
《手机测试Robotium实战教程》—第2章2.4节ADT插件的安装
查看>>
《架构真经:互联网技术架构的设计》分而治之
查看>>
发展型机器人:由人类婴儿启发的机器人. 2.2 机器人学简介
查看>>
干货!2017苹果开发者大会发布了啥,看这篇就够了
查看>>
数博会第一辩:机器智能是人也不具备的智能
查看>>
《术以载道——软件过程改进实践指南》目录—导读
查看>>
SSH 使用密钥登录并禁止口令登录实践
查看>>