设为首页 加入收藏

TOP

基于容器微服务的PaaS云平台设计(一) 实现容器微服务和持续集成(二)
2017-10-10 12:42:17 】 浏览:10475
Tags:基于 容器 服务 PaaS 平台 设计 实现 持续 集成
oServiceA,显示

然后刷新一下eureka server注册中心http://192.168.1.109:8761,看看微服务是否注册成功了。

看到了application中有了一个刚才创建的微服务 MICROSERVICE_A。

 

1.3 创建feign微服务负载均衡

 1、创建工程的时候加入feign和eureka server依赖

程序入口处加入@EnableFeignClients 开启feign服务
2、配置文件
eureka.client.serviceUrl.defaultZone=http://192.168.1.109:8761/eureka/
spring.application.name=Feign_Service
server.port=8764
3、增加并定义一个接口 
@FeignClient(value = "MicroService_A")    //表面调用的是微服务MicroService_A。
public interface SchedualServiceHi {
@RequestMapping(value = "/MicroServiceA",method = RequestMethod.GET)); //URL传入的对象是 MicroServiceA
}

 

将前面创建的eureka client 启动两次,端口为8762和8763,这两个client形成了一个最小集群,通过feign调度,做负载均衡。

输入 http://192.168.1.109:8764/MicroServiceA 多次刷新

结果会交替出现 this MicroServiceA port is:8762 、this MicroServiceA port is:8763 表面feign负载均衡策略生效。

 

1.4 创建zuul

1、 main中加入

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
import org.springframework.context.annotation.Bean;
@EnableZuulProxy //申明是一个zuul服务网关
@EnableEurekaClient

 

2、配置文件中加入

eureka.client.serviceUrl.defaultZone=http://192.168.1.109:8761/eureka/   //向eureka server注册
spring.application.name=zuul_service
server.port=8765
//定义了两个服务 apia和apib ,对用户暴露了这两个服务。
zuul.routes.apia.path=/apia/**
zuul.routes.apia.serviceId=MicroServiceA
zuul.routes.apib.path=/apib/**
zuul.routes.apib.serviceId=Feign_Service

3 、启动zuul服务,同时确保之前的eureka client 和 fenign都已经启动并在注册中心注册,如下图:

 

4 、最终用户访问 http://192.168.1.109:8765/apia/MicroServiceA ,即首先到服务网关zuul,然后zuul将用户请求转到微服务MicroServiceA,然后微服务MicroServiceA返回用户结果,如下图:

服务网关没有做集群部署,如果做集群部署,建议前面可以加上F5或者HAPROXY做负载均衡。

 

二、微服务在Docker容器部署

基础环境:centos7 、jdk1.8 docker1.12.5(centos7自带docker,怎么安装不说了)、maven3.0 本机IP 192.168.1.110 ,docker 需要启动。关闭selinux和iptables、

 

2.1 将上面的eureka server容器化

        创建工程,将上面win7 eurekaserver工程整个目录直接copy到centos /root/下

  其中pom.xml文件参考上面eureka server,唯一不同是加入插件docker-maven-plugin和配置如下(有说明),其他都一样就不累述了。

<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>   //docker image name
<dockerDirectory>src/main/docker</dockerDirectory>                                  //dockerfile path
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

 

2.2 构建可执行文件

  • 运行 mvn package ,会生成如下jar包

确认一下是否OK,运行 java -jar docker_eureka_server-0.0.1-SNAPSHOT.jar,在192.168.1.109 的windows 上输入http://192.168.1.110:8761/ 会显示出eureka_server的主页面如下图,说明构建成功:

 

2.3 docker中运行jar包

1、创建vi src/main/docker/dockerfile内容如下

FROM frolvlad/alpine-oracle

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇jenkins~集群分发功能的具体实现 下一篇基于容器微服务的PaaS云平台设计..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目