阅读量:139
在Ubuntu上搭建Java微服务架构涉及多个步骤和技术栈。以下是一个详细的指南,帮助你构建和部署一个Java微服务架构。
环境搭建
- 安装JDK:
sudo apt-get update
sudo apt-get install openjdk-11-jdk
- 配置环境变量:
sudo nano /etc/profile
添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
使修改生效:
source /etc/profile
- 验证安装:
java -version
选择Java框架
常用的Java框架包括Spring Boot和Spring Cloud,它们提供了服务发现、负载均衡、配置管理等功能。
创建微服务
- 使用Spring Initializr创建Spring Boot项目:
- 选择必要的依赖项,如Spring Web和Spring Cloud。
- 添加依赖项到
pom.xml文件。
- 配置服务注册:
在application.properties文件中配置Eureka客户端:
spring.application.name=my-service
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
服务发现和注册
- 创建Eureka服务器:
添加Eureka服务器依赖项到pom.xml:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
在主类上添加@EnableEurekaServer注解:
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
配置Eureka服务器:
server.port=8761
eureka.instance.hostname=localhost
- 创建Eureka客户端:
添加Eureka客户端依赖项到pom.xml:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
配置服务提供者:
spring.application.name=my-service-provider
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
部署微服务到容器中
- 编写Dockerfile:
FROM openjdk:11
COPY target/my-service.jar /app/my-service.jar
EXPOSE 8080
CMD ["java", "-jar", "/app/my-service.jar"]
- 构建Docker镜像:
docker build -t my-service .
- 运行Docker容器:
docker run -d -p 8080:8080 --name my-service my-service
- 使用Docker Compose简化多容器应用部署:
创建docker-compose.yml文件:
version: '3'
services:
my-service:
image: my-service
ports:
- "8080:8080"
运行:
docker-compose up