二十、微服务之-Spring Cloud使用、打包、启动与整合springboot ...

打印 上一主题 下一主题

主题 927|帖子 927|积分 2781


根据 Spring Cloud 的官方网站,Spring Cloud 为开发人员提供了一些快速构建分布式系统常见模式的工具(例如配置管理、服务发现、断路器、智能路由、向导推举、分布式会话、集群状态)。
要用 Idea 搭建一个 Spring Cloud 微服务项目,需要完成以下步调:


  • 安装 IntelliJ IDEA:从 JetBrains 官方网站下载实用于您操纵系统的 IntelliJ IDEA 版本,并按照安装指南进行安装。
  • 创建一个新的 Spring Boot 项目:打开 IntelliJ IDEA,点击 “Create New Project”,选择 “Spring Initializr”,然后点击 “Next”。
  • 配置项目信息:输入项目名称和存储路径,选择 JDK 版本,然后点击 “Next”。
  • 选择 Spring Boot 版本:选择适合的 Spring Boot 版本,然后点击 “Next”。
  • 选择项目依靠:勾选 “Eureka Server” 和其他您需要的 Spring Cloud 组件依靠,然后点击 “Next”。
  • 配置项目设置:输入项目标 Group、Artifact 和 Version 信息,然后点击 “Next”。
  • 完成项目创建:点击 “Finish” 完成项目创建。
  • 配置 Eureka Server:打开 src/main/resources/application.properties 文件,配置 Eureka Server 的端口、注册中心地址等信息。 以下是一个示例的 Eureka Server 配置代码:
  1. # 设置端口号
  2. server.port=8761
  3. # 设置 Eureka Server 的地址
  4. eureka.instance.hostname=localhost
  5. eureka.client.registerWithEureka=false
  6. eureka.client.fetchRegistry=false
  7. eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
复制代码
在这个配置中,我们设置了 Eureka Server 的端口号为 8761。而且禁用了 Eureka Client 的主动注册和获取注册表的功能。将 defaultZone 设置为了当前的 Eureka Server 地址。
9. 创建微服务模块:在项目中创建新的模块,可以使用右键点击项目名称,选择 “New” -> “Module”,然后按照向导创建新的模块。
10. 配置微服务模块:在新创建的模块中,创建 src/main/resources/application.properties 文件,并配置模块的端口、注册中心地址等信息。
11. 开发微服务模块:在新创建的模块中开发微服务功能代码。
12. 运行微服务模块:使用 IntelliJ IDEA 运行各个微服务模块,可以使用右键点击模块名称,选择 “Run” -> “Run ‘模块名称’”。
13. 测试微服务:使用 Postman 或其他工具测试微服务的功能。
14. 摆设微服务:使用 Maven 打包微服务,并摆设到生产情况。
要使用Maven打包微服务并摆设到生产情况,可以使用以下命令:

mvn clean package -DskipTests
上述命令会执行Maven的clean和package阶段,并跳过测试。这将生成一个可执行的JAR文件,该JAR文件包罗了全部的依靠和资源文件。
接下来,将生成的JAR文件摆设到生产情况。具体的摆设方式取决于你的生产情况配置。通常,可以使用以下命令来运行JAR文件:
java -jar <jar文件名>.jar
根据具体情况和需求,可能需要进一步配置JVM参数和其他配置选项来满足你的需求。
例如,你可以使用以下命令来指定JVM的最大堆内存大小:
   java -Xmx2G -jar <jar文件名>.jar
  这将把JVM的最大堆内存设置为2GB。你还可以使用其他JVM参数来调整堆大小、垃圾接纳等等。请参考Java文档以了解更多关于JVM参数的信息。
  别的,你可能还需要提供其他的配置文件或参数给你的应用程序。你可以通过添加额外的命令行参数来指定这些配置文件或参数。例如:
  java -Dconfig.file=/path/to/config.properties -jar <jar文件名>.jar
  这将指定一个名为config.properties的配置文件,它位于/path/to目录下。
  请留意,上面的示例命令仅供参考,具体的命令行参数和配置选项应根据具体的应用程序和需求进行得当更改。
  请确保在执行打包命令之前,已经在项目标根目录中运行了mvn clean命令,以确保清理了旧的构建文件。
以下是一个基本的 Spring Cloud 项目模板:

  1. <!-- pom.xml -->
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5.     <modelVersion>4.0.0</modelVersion>
  6.     <groupId>com.example</groupId>
  7.     <artifactId>spring-cloud-demo</artifactId>
  8.     <version>1.0.0</version>
  9.     <properties>
  10.         <java.version>1.8</java.version>
  11.         <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
  12.     </properties>
  13.     <dependencies>
  14.         <!-- Spring Boot -->
  15.         <dependency>
  16.             <groupId>org.springframework.boot</groupId>
  17.             <artifactId>spring-boot-starter-web</artifactId>
  18.         </dependency>
  19.         <!-- Spring Cloud -->
  20.         <dependency>
  21.             <groupId>org.springframework.cloud</groupId>
  22.             <artifactId>spring-cloud-starter-config</artifactId>
  23.         </dependency>
  24.         <dependency>
  25.             <groupId>org.springframework.cloud</groupId>
  26.             <artifactId>spring-cloud-starter-eureka</artifactId>
  27.         </dependency>
  28.         <dependency>
  29.             <groupId>org.springframework.cloud</groupId>
  30.             <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
  31.         </dependency>
  32.         <!-- 其他 Spring Cloud 组件依赖 -->
  33.         <!-- Spring Boot 测试 -->
  34.         <dependency>
  35.             <groupId>org.springframework.boot</groupId>
  36.             <artifactId>spring-boot-starter-test</artifactId>
  37.             <scope>test</scope>
  38.         </dependency>
  39.     </dependencies>
  40.     <dependencyManagement>
  41.         <dependencies>
  42.             <dependency>
  43.                 <groupId>org.springframework.cloud</groupId>
  44.                 <artifactId>spring-cloud-dependencies</artifactId>
  45.                 <version>${spring-cloud.version}</version>
  46.                 <type>pom</type>
  47.                 <scope>import</scope>
  48.             </dependency>
  49.         </dependencies>
  50.     </dependencyManagement>
  51. </project>
复制代码
以上步调是一个大致的流程,具体还需要按照您的项目需求进行相应的配置和开发。一个基本的 Spring Cloud 项目模板,包罗了 Spring Boot、Spring Cloud 的焦点依靠,可以根据自己的需求添加其他依靠。请留意,这只是一个基本模板,您还需要根据具体的业务需求进行相应的配置和开发。
spring boot 整合spring cloud 实例

下面是一个简单的示例,演示了如何使用Spring Boot整合Spring Cloud:

  • 创建一个Spring Boot项目,添加Spring Cloud依靠。在pom.xml文件中添加以下依靠:
  1. <!-- pom.xml -->
  2. <dependencies>
  3.     <!-- Spring Boot -->
  4.     <dependency>
  5.         <groupId>org.springframework.boot</groupId>
  6.         <artifactId>spring-boot-starter-web</artifactId>
  7.     </dependency>
  8.     <!-- Spring Cloud -->
  9.     <dependency>
  10.         <groupId>org.springframework.cloud</groupId>
  11.         <artifactId>spring-cloud-starter-config</artifactId>
  12.     </dependency>
  13.     <dependency>
  14.         <groupId>org.springframework.cloud</groupId>
  15.         <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
  16.     </dependency>
  17. </dependencies>
复制代码

  • 在application.properties文件中配置应用程序和Spring Cloud相关的属性:
  1. # application.properties
  2. # 应用程序配置
  3. server.port=8080
  4. spring.application.name=spring-cloud-demo
  5. # Spring Cloud Eureka配置
  6. eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka
复制代码

  • 创建一个Spring Boot应用程序的入口类DemoApplication.java:
  1. // DemoApplication.java
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
  5. @SpringBootApplication
  6. @EnableDiscoveryClient
  7. public class DemoApplication {
  8.     public static void main(String[] args) {
  9.         SpringApplication.run(DemoApplication.class, args);
  10.     }
  11. }
复制代码

  • 创建一个简单的控制器类DemoController.java:
  1. // DemoController.java
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. @RequestMapping("/demo")
  8. public class DemoController {
  9.     @Value("${spring.application.name}")
  10.     private String appName;
  11.     @GetMapping
  12.     public String getDemo() {
  13.         return "Hello from " + appName;
  14.     }
  15. }
复制代码

  • 运行应用程序并访问http://localhost:8080/demo,您将获得Hello from spring-cloud-demo的相应。
这是一个简单的示例,演示了如何使用Spring Boot整合Spring Cloud。您可以根据自己的需求进行更多的配置和开发。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表