一、spring cloud简介
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
二、创建服务注册中心
1、先创建一个 maven springcloud工程
File→New→Project→Maven
2、在该工程下创建Model
选中springcloud项目→New→Model→Spring Initializr
注意: 选择customer国内阿里云的比较快 : https://start.aliyun.com
3、添加注解 @EnableEurekaServer
4、application.yml配置
# 应用名称
spring:
application:
name: eureka-server
server:
port: 8090
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
5、启动访问: http://localhost:8090/
6、服务器部署(也可在本机测试,此步骤可忽略)
(1)、DockerFile (通用写法)
FROM java:latest
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["java","-jar","-Dspring.config.location=/app/conf/application-prod.yml","/app/app.jar"]
(2)使用finalshell上传jar到服务器
(3)、docker中启动服务注册中心
docker run -d --name eureka-server --restart=always -p 8090:8090 \
-v /data/springcloud/eureka-server/eureka-server-0.0.1-SNAPSHOT.jar:/app/app.jar \
-v /data/springcloud/eureka-server/application-prod.yml:/app/conf/application-prod.yml \
springcloud:latest
三、创建生产者
(1)创建Model
选中springcloud项目→New→Model→Spring Initializr
(2)启动rest
docker run -d --name rest1 --restart=always -p 8091:8091 \
-v /data/springcloud/rest/rest-0.0.1-SNAPSHOT.jar:/app/app.jar \
-v /data/springcloud/rest/application-prod.yml:/app/conf/application-prod.yml \
springcloud:latest
(3)启动rest2
docker run -d --name rest2 --restart=always -p 8092:8092 \
-v /data/springcloud/rest2/rest-0.0.1-SNAPSHOT.jar:/app/app.jar \
-v /data/springcloud/rest2/application-prod.yml:/app/conf/application-prod.yml \
springcloud:latest