微服务实施笔记(三)——建立待发现服务

上回书搭建加了一个由3台服务器和两台开发机组成的模拟开发部署环境。接下来就是要在这个环境中进行模拟的开发和部署了。

如何开啊部署呢,先设想一下实际的应用场景。如下图所示:

应用场景

浏览器通过域名访问web站点,为了web站点的高可用性和提高负载能力,可以使用各大云服务商都提供的负载均衡能力让一个域名对应几台web站点。这个过程用旧有的方案就可以胜任,只需要为这几个站点提供一个一致的身份认证就可以了。

再有就是web站点、手机app和小程序通过api网关访问各种微服务。这些微服务通过服务中心来管理,通过api网关提供调用服务。为了不让api网管成为一个单点故障,故需要多个api网关,多个api网关也通过dns解析的方式提供负载均衡服务。

创建待发现服务

新建项目

开始试验,先选定一个文件目录。在这个目录下创建一个文件夹servers用来存放服务。然后在该文件夹下创建3个文件夹,分别为server1、server2和server3。然后在这三个文件夹中分别创建一个webapi项目。在servers目录下执行如下命令:

 dotnet new webapi -n server1
 dotnet new webapi -n server2
 dotnet new webapi -n server3

建立好的文件结构如下:

打开vscode,使用文件菜单下的【将文件夹添加到工作区】方式打开server1、server2和server3三个文件夹。

制作docker镜像

在vscode中打开命令面板,输入docker命令,选择Add Docker files to Workspace

选择文件夹Server1

选择项目类型为.Ner Core

选择监听的端口号3000:

在工作区标题上点击刷新按钮,就能看到新增的和docker相关的文件。

用这个步骤分别为server2和server3添加docker文件。

打开server1中的dockerfile看到以下内容:

FROM microsoft/aspnetcore:1
LABEL Name=server1 Version=0.0.1
ARG source=.
WORKDIR /app
EXPOSE 3000
COPY $source .
ENTRYPOINT dotnet server1.dll

其中的FROM和COPY要修改一下。

FROM改为:

FROM microsoft/aspnetcore:2.0

COPY改为:

COPY $source/bin/Debug/netcoreapp2.0/ .

server2和server3中的dockerfile中的EXPOSE一节也要修改为3001和3002表示监听的端口分别为3001和3002。修改后记得保存文件。

除此之外,每个项目的监听端口也都要修改一下,webapi默认的监听端口是5000,打开Program.cs文件,把几个项目的监听端口分别改为3000、3001和3002。要和dockfile中的EXPOSE值对应。

修改完成后在项目文件夹上右键,选择在终端中打开。然后在终端中输入命令dotnet build。build项目。

完成后再执行docker命令,build docker镜像。然后执行docker image list命令就能看到刚build好的镜像。

分别为三个项目执行如下命令:

dotnet build
docker build -t server1 . #其中server1为镜像标签,server2和server3项目要改成相应的标签名。

执行docker镜像

在vscode左侧边栏中的docker中的images中能看到本地有的docker镜像,从中可以看到刚刚build好的3个镜像,右键RUN把这几个镜像运行起来。

在inages下面的containers中能看到运行中的几个容器。在运行的容器上右键,Show Logs可以查看运行中的容器的日志信息。

可以看到服务已经运行了。接下来用浏览器来验证一下吧。

server1容器中,监听3000端口:

server2容器中,监听3001端口:

server3容器中,监听3002端口:

至此,待发现的服务建立完毕。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值