开发者学堂课程【微服务实战-服务注册与发现 - Nacos Discovery:服务注册与发现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/622/detail/9442
服务注册与发现(二)
三、如何部署到阿里云EDAS
1.创建ECS
下面要转战到阿里云,如何把这些应用部署到阿里云上,用什么样的服务,在做这个之前请大家用 package 把自己在本地的服务端和客户端的两个应用打包成 JAR,稍后上传时会比较方便。
在向阿里云实操之前先介绍一下什么是企业级分布式应用服务 EDAS 企业级分布式应用服务 EDAS(Enterprise Distibuted Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Dubbo、SpringCloud 等微服务运行环境,助力您的各类应用轻松上云。
也就是说,把应用部署到edas上面自己是比较省心省力。要想把应用部署到edas下面首先我们唯一的是准备好 VM 也就是 ECS,来看一下这个过程是怎么样的。
首先来到阿里云的网站,登录进去以后一般 ecs 不管 page 在哪里,ecs 都是很容易发现和找到的,产品云服务器是第一位的,选了以后,就可以创建实例。在创建实例的过程中,有几个比较注意的点和大家介绍一下,第一就是这个地域,因为各个数据中心之间,是不能通讯的,所以一定要记住,vm 是在哪里拉的,如果 ecs是在北京的,那 edas 也要在北京,如果 ecs 是在上海,那 edas 的应用也要在上海。接下来看镜像,镜像就是一个选择操纵操作系统的地方,通常大家所知道的Windows Server 、Ubuntu 都在这里,因为我们要用的是 edas,edas 有自己的定制的一些组件,所以我们要在镜像市场里面找到edas的镜像,今天用的是一个比较简单的 edas java 环境,不用选分布式应用,选 java 就可以。
这里有不同的版本,选一个通用的,最新的。选完以后,再确认一下地域没有帮我们改掉,然后决定要买多久的时间,如果是做实验,一般一周就够了。
另外就是实例的数量,一般如果有一个 service-provider 和一个 conciro 需要两台,如果是其他的情况一台就够了,这个是根据具体的需要来定的。
公网带宽可以选择一个比较舒适的带宽,价格也会跟着涨上去。安全组是一个比较重要的事情,它保证你可以访问它,来看一下这个安全组。
这里面安全策略应该是比较全了,所以可以选用这个安全组。然后到系统的配置,要选一个安全密钥对,如果没有密钥对,就要自定义 root 的密码,或者新建密钥对,否则无法 ssh 到主题当中。不要选择创建后设置,这个比较麻烦。
现在就可以确认订单了,云服务器的服务条款一定要同意,然后就可以下单了,几分钟以后,回到 ECS 控制台,就可以看到刚刚所定制的ECS实例已经在运行中状态都是绿颜色的,这就是创建 ECS 成功
2.创建应用
配置了 ECS 以后,下面就可以开始把应用导入到 edas 上面,先来找到 edas 的服务,其实是很好找的,不管在哪里,就点产品与服务,展开这个页面以后,就到互联网中间件第一个服务就是企业级分布式应用服务 edas。
刚刚在配置 ECS 的时候,已经用了 edas 的镜像,所以很多 engine 就不用再导入了,这是很方便的地方。到了 edas 的控制台以后,就到应用管理。选择应用列表,现在要创建一个应用,创建这个应用不是用 service 应用就是普通的应用。
这里很重要的一点是,确保这个命名空间和刚刚这个 ECS 的命名空间是在一起的,刚刚这个 ECS 是在北京,就是华北2,这里也继续用华北2。集群类型的就是ECS的集群,这里选择默认值的集群应用的
名称是比较随意的,应用部署方式选择是 JAR 包,运行环境注意是用标准 Java 应用环境。Java 环境选择的是 JDK8。
下一步,实例指的就是ECS现在就选立刻部署,因为需要上传JAR包,选择刚刚编译好的JAR包,然后选版本号,随便1.0、2.0都可以上传好了以后,就可以选确认创建。现在就回到了应用的列表,把服务端和消费端都上传到edas上面以后,就可以对它来进行操作了。先看一下,这里写的是运行正常,变更也是成功的。
再看一下服务列表,就是刚刚的服务service provider。同样,这个消费端consumer也已经创建好了,我们看确认一下它也成功了,运行正常,变更也是成功的。
下面就可以确认部署到edas上是否是好的,我们怎么做呢?ssh到客户端。
这样做的目的是因为有的时候安全组的策略会让有的服务器ECS不能录备远程访问,为了避免没有办法去访问这种情况出现,就采取了一个比较保守的策略。用的是 localhost8080,为什么是8080呢?因为刚刚在本地的时候是18082,因为把应用程序部署到 edas 的时候,edas 其实是重写到我们的配置下,不光是8080这个端口号被改了,nacos-service 也被改了,因为 nacos-server 是部署在云环境下的,对开发者来讲,并不知道他在哪里,本地的是 localhost8848 端口,但是到营上了,都是被优先级更高的配置下覆盖了,这个应用的端口也是被覆盖了。
现在来看一下,打印echo-edas这个字符串,等会应该看到有 edas 这个字符串的出现,edas 出现了
[root@iz2ze7rpsdzbqiy00ufh38Z~]#curl http://localhost:888/echo-feign/edas ledas[root@iZ2ze7rpsdzbqiy00ufh38Z~]#
再来测一下另外一个 API 的路径 cecho-rest 这是用 rest template 写的,打印另外一个字符串,这也是成功了。edas[root@iZ2ze7rpsdzbqiy88ufh38Z~]#curl http://localhost:8080/echo-rest/lesson lesson[root@iZ2ze7rpsdzbqiy00ufh38Z-]#
这样就证明当我们登陆到客户端以后,消费端是可以访问到服务提供方把字符串打印回来,也就证明了整个链路是通的