ServiceComb Java Chassis 快速入门和复杂系统实践经验总结

编程入门 行业动态 更新时间:2024-10-21 03:49:14

ServiceComb Java Chassis 快速入门和复杂系统<a href=https://www.elefans.com/category/jswz/34/1708168.html style=实践经验总结"/>

ServiceComb Java Chassis 快速入门和复杂系统实践经验总结

快速入门-搭建一个典型的微服务应用

项目介绍

示例微服务应用由 4 个微服务组成。

  1. 应用网关:负责接收前端的请求,并将请求转发给后端服务处理。应用网关还负责简单的认证功能。
  2. 文件服务: 提供一个上传文件接口,和删除文件接口。
  3. 用户管理: 提供登录认证逻辑实现。
  4. 静态页面托管 HTML/JS/CSS等。

本地微服务引擎本是CSE 微服务引擎的简化版本,用于本地开发调试。它包含3个服务。

  1. 服务中心:负责服务注册和发现。
  2. 配置中心:负责集中配置管理。
  3. 控制台:提供前端管理界面。

安装本地微服务引擎

下载本地微服务引擎:.html

启动:

start.bat

访问:

http://localhost:30106/#/cse/service/dashboard

运行示例微服务应用

下载示例微服务应用:

git clone .git

进入本示例项目:

cd porter_springboot

编译项目:

mvn clean install

初始化数据库:本地安装 mysql 数据库, 并且执行目录user-service\src\main\resources\config下面的脚本 create_db_user.sql 。

启动:数据库使用 root/root 登录, 如果数据库密码为自定义值,需要修改脚本后运行。

start_all.bat

访问:http://localhost:9090/ui/login.html  登录用户为 admin 或者 guest, 密码为 test。登录以后可以上传一个文件、根据文件 ID 删除一个文件。

了解示例微服务应用项目结构和开发过程

Maven: 依赖管理

Java-chassis 采用依赖。 依赖关系管理本身并不复杂,但是在项目升级、集成新的第三方软件的时候,容易出现冲突。开发者需要深刻理解 Maven 依赖管理的一些技巧,才能够快速解决这些冲突。

示例微服务项目通过 maven depdendency management 引入 java-chassis 的依赖管理。

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.servicecomb</groupId>
      <artifactId>java-chassis-dependencies</artifactId>
      <version>${servicecomb.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

依赖关系管理并不会在项目中引入三方件,只是告诉项目中,如果引入某个三方件,这个三方件的版本,需要按照 java-chassis-dependencies 里面指定的版本引入。因为 java-chassis-dependencies 引入的三方件经过大量的集成测试,因此能够极少的降低三方件软件冲突的风险。

学习材料:使用maven管理复杂依赖关系的技巧

打包方式

JAVA 项目一般有两种打包方式:Flat 方式和 Spring Boot 方式。

  1. Flat方式:应用编译以后,项目依赖的 jar 包放到一个独立的 lib 目录。
  2. Spring Boot 方式:应用编译以后,将项目的 class, 和依赖的 jar 包都打包在一个 jar 文件中。

Spring Boot方式在分发应用的时候更加简单,所以项目采用 Spring Boot 方式打包。需要在 POM 中引入 Spring Boot 的打包插件。

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>2.1.6.RELEASE</version>
      <executions>
        <execution>
          <goals>
            <goal>repackage</goal>
          </goals>
          <configuration>
            <mainClass>${main.class}</mainClass>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</pluginManagement>

编译选项

Java-chassis 的运行依赖于编译选项中增加 -parameters , 可以通过 maven compiler plugin 指定。

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-parameters</compilerArgument>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

运行环境和启动类

Java-chassis 开发非常灵活,支持不同的运行环境。比如打包为 war,运行于 tomcat 中;和 spring boot 集成,运行于 embedded tomcat 中;使用轻量级的 HTTP 服务器独立运行。 示例微服务项目的 user-service、file service、website 都采用和 spring boot 集成,运行于 embedded tomcat 中。gateway-service使用轻量级的 HTTP 服务器独立运行。

user-service、file-service都引入了如下依赖:

<dependency>
  <groupId>org.apache.servicecomb</groupId>
  <artifactId>java-chassi

更多推荐

ServiceComb Java Chassis 快速入门和复杂系统实践经验总结

本文发布于:2024-03-06 14:38:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1715570.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实践经验   入门   快速   系统   ServiceComb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!