Dapr牵手.NET学习笔记:用docker-compose部署服务

上一篇聊到用两个物理机(一个win,一个mac)来部署dapr和服务 ,实现order调用pay的负载均衡。本篇说一下在windows上的docker部署这三个服务,达到与上一篇的效果。

三个服务的部署架构是这样的

50f7497e703ce528f2a2afd2bef03910.png

首先要把OrderSystem(服务端口80)项目docker化,Dockerfile内容为:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["/OrderSystem/OrderSystem.csproj", "OrderSystem/"]
RUN dotnet restore "OrderSystem/OrderSystem.csproj"
COPY . .
WORKDIR "/src/OrderSystem"
RUN dotnet build "OrderSystem.csproj" -c Release -o /app/buildFROM build AS publish
RUN dotnet publish "OrderSystem.csproj" -c Release -o /app/publishFROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "OrderSystem.dll"]

其实要把PaymentSystem(服务端口80)项目docker化,Dockerfile内容为:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["/PaymentSystem/PaymentSystem.csproj", "PaymentSystem/"]
RUN dotnet restore "PaymentSystem/PaymentSystem.csproj"
COPY . .
WORKDIR "/src/PaymentSystem"
RUN dotnet build "PaymentSystem.csproj" -c Release -o /app/buildFROM build AS publish
RUN dotnet publish "PaymentSystem.csproj" -c Release -o /app/publishFROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "PaymentSystem.dll"]

同时再添加一个docker-compose项目(右键 OrderSystem或PaymentSystem,Add,选择Container Orchestrator Support即可),命名为B2C,目录结构如下:

819a48fd982e12a57607ee9ede5f942a.png

其中docker-compose.yml内容如下

version: '3.4'services:ordersystem:image: ${DOCKER_REGISTRY-}ordersystembuild:context: ../dockerfile: /OrderSystem/Dockerfileports:- "3500:3500"volumes:   - ../OrderSystem:/OrderSystem   ordersystem-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "order", "-app-port", "80" ]depends_on:- ordersystemnetwork_mode: "service:ordersystem"paymentsystem1:image: ${DOCKER_REGISTRY-}paymentsystembuild:context: ../dockerfile: /PaymentSystem/Dockerfileports:- "3601:3500"volumes:   - ../PaymentSystem:/PaymentSystem         paymentsystem1-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "pay", "-app-port", "80" ]depends_on:- paymentsystem1network_mode: "service:paymentsystem1"paymentsystem2:image: ${DOCKER_REGISTRY-}paymentsystembuild:context: ../dockerfile: /PaymentSystem/Dockerfilevolumes:   - ../PaymentSystem:/PaymentSystem            ports:- "3602:3500"paymentsystem2-dapr:image: "daprio/daprd:latest"command: [ "./daprd", "-app-id", "pay", "-app-port", "80" ]depends_on:- paymentsystem2network_mode: "service:paymentsystem2"

为了使PaymentSystem部署多个副本,我在docker-compose.yml中配置了paymentsystem1和paymentsystem2,它们使用的都是PaymentSystem项目的信息。关于docker-compose就不多说了。

进入B2C目录,启动三个服务,命令如下:

docker-compose up -d

就会在docker中启动三个服务,一个order,两个pay,如下:

5858b082e8d53b2aca712c959dc6664f.png

看一下结果吧,同样是postman,输入localhost:3500/v1.0/invoke/order/method/order,就会看到pay会轮询调用。

paymentsystem1

f3d37d40d877188ccd41a696289c372b.png

paymentsystem1

8c7b0b8b1a9f10350644a7e6936b8345.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java并发编程实战_真香!阿里P8耗时半年著作660页Java高并发与网络编程实战总结...

随着软件行业的飞速发展,互联网公司对开发者的技能要求也越来越高。而高并发、网络编程、微服务、海量数据的处理等技能,是每一个开发者进阶时的必学知识。为了帮助初级开发者快速掌握这些实用技术,本书以“理论+范例”的形式对各…

oracle如何往dg加盘_oracle 在物理机上添加磁盘操作

物理机上添加磁盘操作注意:1)物理机上添加磁盘操作,不涉及到start_udev的动作。2)磁盘分区的操作,需要谨慎进行,核准无误后再操作。(1)查看磁盘名称命名# su - grid$ sqlplus / as sysasmset linesize 180col name format a20col …

【译】在Asp.Net中操作PDF – iTextSharp - 使用表格

使用Asp.Net生成PDF最常用的元素应该是表格,表格可以帮助比如订单或者发票类型的文档更加格式化和美观。本篇文章并不会深入探讨表格,仅仅是提供一个使用iTextSharp生成表格的方法介绍,本文需要阅读我之前iTextSharp系列文章作为基础&#xf…

linux docker导入镜像,Docker镜像的导入和导出

相关阅读:场景描述:需要在客户现场快速部署应用,东西多,时间短场景分析:为了节省时间,使用docker进行快速部署,由于不是内部环境,无法使用内部私有库,于是构建镜像&#…

有些图,只要看错一眼就再也回不去了!

全世界只有3.14 % 的人关注了爆炸吧知识平时在网络上逛,你会发现有种图片,一旦看茬,就再也回不去了!今天就来集体复习一下:首先是这张著名的图,很可爱的小盆友但如果告诉你:那两个大黑点是鼻孔&…

2015年网页设计最佳颜色搭配的9种选择

2019独角兽企业重金招聘Python工程师标准>>> 2015年网页设计最佳颜色搭配的9种选择 还在为你的网站选用哪种色调发愁,难易选择吗?本篇为你总结了2015年国外网友设计最佳颜色搭配的9个方案,供你参考... 详细解读 和小伙伴们一起来吐…

CryEngine

最近CryEngine3已经发布了(实际上已经到3.1了),看到很多朋友都想要拿到最新的版本,在这里附上具体的申请方法。楼主看到了,麻烦看看能不能置个顶。 CryEngine对于教育机构是有免费授权的。实际上授权也十分宽松&#x…

EF Core的一个紧急bug,我这样修改

1背景今日在生产环境碰到如下错误ASP.NET MVC项目 Repository层中,Delete总是失败another entity of the same type already has the same primary key value具体错误提示:Attaching an entity of type ResearchManager.Models.BigTracker_UI.Product_Tr…

电脑home键在哪_如何灵活使用电脑键盘上的各个键

电脑上的键有很多但是你真的了解它们的用法么,今天笔者给大家分享一下电脑键盘上各个键的作用。区域一:共有13个按键,ESC,F1-F2。F1:帮助信息。F2:选定一个文件或文件夹。按下F2可以重命名。F3:…

svn强制注释 linux,svn强制要求提交注释

看了N多资料,不知道为什么我总是不成功。现在终于测试成功了,下面是实际操作过程~~使用bitnami一键安装了subversion,在使用中,希望开发人员提交时必须输入日志内容,可通过以下方法实现。首先转到相应的库的hook目录中…

jquery easyui datagrid getSelections用法

1.datagrid、 数据绑定 $(#tt).datagrid({ url: GetDataJosn, title: DataGrid, width: 800, height: 300, pageSize: 10, idField: productid, fitColumns: true,…

XCode5 真机调试及发布应用

一、XCODE 真机测试 Xcode5已经很智能,只需生成一个开发证书,安装后,插入设备会自动添加,注意,当Mac系统升级后,证书需要重新生成。证书生成步骤:1、生成 CertificateSigningRequest.certSignin…

身家4400亿美元的他,吃低于3美元的早餐,和2个老婆同居28年!

全世界只有3.14 % 的人关注了爆炸吧知识1930年8月30日,巴菲特出生在美国内布拉斯加州的奥马哈市。当时的美国还笼罩在经济大萧条的阴影中,还好父亲是位出色的股票掮客,这也让小巴菲特的童年过得顺顺利利。但小巴同学从小就不合群,…

怎么才能把项目做烂?!

上一篇聊聊《为什么被用户牵着鼻子走?刚参加工作做项目常说的一句话:没有困难,制造困难也得上。到不是真闲得蛋疼制造困难,而是表达解决困难的决心。2009年在某煤炭集团做了一个动态监测煤质煤量的实时系统,当时一般为…

电脑重新分区扩大c盘_两种方法,给电脑C盘增加10G的容量,电脑焕然一新

在我们日常的生活工作中,手机电脑已经成为了不可或缺的存在。然而当我们的手机电脑经过长年累月的使用之后,手机电脑都会变得很卡,在电脑上最直观的显示就是电脑C盘分区显示为红色,可用空间已经不够用了。我们知道,电脑…

python wx提示框字体_使用wxStyledTextCtrl实现代码提示

wxStyledTextCtrl是wxPython对流行的Scintilla的包装,Scintilla的网站(http://www.scintilla.org/),wxStyledTextCtrl是一个功能强大的富文本编辑控件,常见的编辑器功能都能找到,包括代码高亮,搜索替换,拷贝…

PHP5中PDO的简单使用

PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,PHP 6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的php_mysql.dll之类的了,那怎么办捏,我们…

redis在linux搭建集群,Linux/Centos 7 redis4 集群搭建

背景说明:项目初期使用AWS的ElastiCache Redis作为系统的数据缓存,近期由于数据量和QPS加大,导致Redis存在压力,进行了两次的单点垂直升级,缓解了目前的压力。项目组进行了数据和费用的评估,考虑到日后升级…

远程控制

我和舍友共用ADSL,我的电脑接在宽带路由器上面。为了能远程控制家里的电脑,我是煞费苦心,最后终于OK了,把一些经验心得写出来。 首先想要远程登录的机器最好是WinXP或者Win2003(据说Win2003更好一些,可以多用户同时登…

防SQL注入的最好实现方式是什么?

咨询区 LeonidasFett:我的问题是:如何在 C# 中是使用SQL防注入,我的模糊理解是可以通过限定应用程序接收的字段格式来实现最终目的,比如说:email字段只能接收email的格式,name字段不能输入特殊字符&#xf…