微服务入门:Node.js+Docker+NoSQL。
Posted 汇智网
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务入门:Node.js+Docker+NoSQL。相关的知识,希望对你有一定的参考价值。
Touchbase,于整个应用栈的中心的Node.js应用
nginx,作为Touchbase应用的负载均衡器
Couchbase,作为应用的数据层
Consul,用于发现服务
Containerbuddy,用于辅助服务发现
CloudFlare-watcher,用于更新DNS
CloudFlare DNS,用于使我们的站点能够在互联网上通过域名被访问到
Triton,我们的基于容器(container-native)的基础架构平台
该技术栈可以被用于任何微服务应用,并且每一个独立组件都可以被轻松的置换(swap out)掉。如果你更喜欢HAProxy而不是Nginx?没问题——只需要更新docker-compose.yml文件,替换为你想要使用的镜像即可。
获取一个Joyent账户
在你的电脑或环境中安装Docker Toolbox(包括docker和docker-compose),以及Joyent CloudAPI CLI tools(包括masrtdc和json工具)。
为Joyent配置Docker和Docker Compose
准备好你的CloudFlare API的密钥
此刻你就可以在Triton上运行你的应用了(java代码):
./start.sh env
# here you'll be asked to fill in the .env file
./start.sh
或者在你的本地Docker环境中(你可能需要增加内存需求来满足docker-machine虚拟机来运行完整规模的集群)(java代码):
./start.sh env
./start.sh -f docker-compose-local.yml
.env文件需要安装如下格式进行创建(java代码):
CF_API_KEY=<your CloudFlare API key>
CF_AUTH_EMAIL=<the email address associated with your CloudFlare account>
CF_ROOT_DOMAIN=<the root domain you want to manage. ex. example.com>
SERVICE=nginx <the name of the service you want to monitor>
RECORD=<the A-record you want to manage. ex. my.example.com>
TTL=600 <the DNS TTL you want>
CB_USER=<the administrative user you want for your Couchbase cluster>
CB_PASSWORD=<the password you want for that Couchbase user>
当启动脚本运行后,他会启动Consul的web界面和Couchbase的Web界面。一旦Nginx运行了,它会启动Touchbase站点的登录页。目前为止只有一个Couchbase节点,一个应用服务器,和一个Nginx服务器,你将会看到如下消息(java代码):
Touchbase cluster is launched!
Try scaling it up by running: ./start scale
如果你这么做了你将需要运行docker-compose scale操作来增加2个Couchbase和Touchbase节点和一个Nginx节点。
你可以通过Consul和Couchbase的Web界面来观察新的节点的运行状况。
总结
本文的主要内容是介绍应用在Docker化后所具有的优势。首先,通过这种方式我们能够获取一个更简单、更可重复的部署过程,这使得我们能够进行快速简单的本地测试,并将整个应用栈推送到生产环境中。其次,我们的应用能够实现自动发现和配置,并且使得部署也更加的简单。再其次,我们的应用能够更容易的进行水平扩展,并且各个层次能够进行更好的细粒度的规模控制。最后,我们能够进行全局发现,这要感谢与CloudFlare的集成。
之前我们已经使用了Containerbuddy作为一个最小的shims的例子,它需要能够让任何应用实现容器化。但是目前,我们已经可以看到一个运行在Triton中的能够应用于生产环境中的多层级应用,我们已经可以看到基于容器的服务发现可以是任何特定的调度框架。这使得它能够非常简单的连接到没有被容器化的组件中。
将应用部署到Triton也使得这一切变得更加简单。对于应用容器拥有它们自己的NIC(s)的环境而言,正如Triton那样,我们可以依赖应用容器来更新发现服务,而无需一个重量级的调度器。这意味着你可以使用诸如Docker Compose这类简单的工具来部署和链接容器,而无需其他附加的软件。使用Triton的容器化的应用架构无需提供虚拟机,Triton负责控制每一个容器,因此你可以很轻松的跟踪你的应用在扩展时的开销。你可以使用Joyent提供的公有云服务中的Triton进行部署,当然也可以是你的自有数据中心进行部署。只需要配置Docker和start.sh即可。
长按二维码点击“识别图中二维码”即可关注
微博: @汇智网
汇智网课程内容已经覆盖:
Node.js、MongoDB、javascript、C、C#、php、Python、Angularjs、Ionic、React、UML、redis、mysql、Nginx、CSS、html、Bootstrap、Flask、Gulp、Mocha、Git、Meteor、Canvas、Typescript、Material Design Lite、ECMAScript、zebra、Elasticsearch、d3.js、Express、Mongoose、jQuery、django、cheerio、SVG、phoneGap、jQueryMobile、Saas、YAML、Vue.js、webpack、Firebird。
以上是关于微服务入门:Node.js+Docker+NoSQL。的主要内容,如果未能解决你的问题,请参考以下文章