File tree Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ #一、序言
3
+ 微服务十分流行,基于微服务开发的项目越来越多,如何把开发的微服务部署到服务器上是一个不小的难题。现在有很多解决方案:
4
+ ##(1) gitlab+jenkens
5
+ 采用gitlab+jenkens等实现自动编译发布,无论是采用触发式(提交代码、定时)还是手动到jenkens的发布,对于开发者来讲都是不方便,需要部署集成gitlab+jenkens,而且很多时候公司使用的是svn。另外在一般的公司很难保证提交的代码都能运行得起来。我所在的公司大部分情况下自动发布的项目是跑不起来(当然和公司的制度的有关),在我接触的某大型公司中技术负责人讲过,他花了一年时才把提交代码这件 事弄得较顺。所以很多人讲Devops(包括自动发布)看上去很美。
6
+ ##(2)购买一站式的DEVOPS
7
+ 该种方式没有什么好讲,只能讲有钱什么事都好解决,这个对于我们这等程序员来讲,不愿接受也不太现实的。
8
+ 本文给出一种简单的方式,从实际出发,只要通过shell脚本,就可以直接把你开发的微服务发布你需要发布的服务器上。
9
+ #二、环境说明
10
+ 微服务需要大量的组件,如注册中心,api网关,配置中心,监控中心等,对于微服务最简单的环境要求那就是注册中心,所有的服务都依赖于注册中心。下图1给出本次实验的环境。
11
+ ![ logo] ( ../01pic/20171122-1423002x.png )
12
+ 图1 微服务基本环境说明图
13
+ (1) 负载均衡
14
+ 这里负载均衡主要是用于对于API网关进行服务端的负载处理,当然也可以用来正反向代理,流量统计等。这里本来需要采用VIP作高可用,防单点故障。这里仅仅使用一台,问题也不是很大。
15
+ (2) API网关
16
+ API网关是自己开发的程序,可以采用spring boot ZUUL等相关API网关。API 网关采用Docker容器进行部署。并把其注册到Consul注册中心。
17
+ (3) 微服务
18
+ 所有的服务都发布在微服务的机器上,采用Docker容器进行部署。
19
+ (4) 注册中心Consul
20
+ 注册中心有很多种,如zookeeper、consul 、etcd、eureka等,这里采用现在很流行的consul
21
+ (5) 其它
22
+ 其它如mongodb、reddis是微服务必要的,但是对于本次实验的作用并不是很大。
23
+
You can’t perform that action at this time.
0 commit comments