微服务架构简介

2017-04-17  本文已影响0人  山本聪

近日不务正业,读黄勇写的《轻量级微服务架构(上)》有感。

总体技术栈:

1、后端基于SpringBoot用java实现,核心原因在于boot引入了诸多简化spring的注解、实现了诸多自动化的识别与配置、内嵌了tomcat容器、引入了诸多监控组件、且打包成jar包;使得整个后端服务非常简化、轻量。

代码:https://github.com/weikuo0506/microservice-api.git

2、后端java负责将服务注册与暴露到zookeeper上。framework模块负责与zookeeper交互,创建node节点。

代码:https://github.com/weikuo0506/microservice-framework.git

3、用node.js来做服务网关,实现服务的自动发现;node.js是一个基于chrome v8引擎的js运行环境,使用了事件驱动和异步非阻塞IO,非常轻量且高效;另外node.js的npm包含了全球最多的开源生态系统,使用非常方便。node.js作为网关的核心作用是1)与zookeeper交互,寻址;2)作为http proxy实现反向代理。

代码:https://github.com/weikuo0506/gateway-nodejs.git

4、用docker封装后端服务的运行环境。借助docker maven plugin非常方便就能做到。

5、搭建本地docker registry,作为docker的局域网私有仓库。

6、搭建gitlab,作为本地代码托管私服。

7、借助jenkins,实现从gitlab 自动拉取代码,打包,build & push到私有docker registry。此处gitlab、jenkins都可能运行在docker中,涉及到docker间的通讯问题。

从上可知,代码的开发、打包、部署变得非常自动化,交付产物也由之前的”代码“,抽象提升到了更高的层次,即交付"docker镜像",即交付的是能够即可运行的完整服务。

上一篇 下一篇

猜你喜欢

热点阅读