Skip to content

Latest commit

 

History

History
117 lines (80 loc) · 5.82 KB

README-zh.md

File metadata and controls

117 lines (80 loc) · 5.82 KB

基于Java Agent的无代理服务网格解决方案

简体中文 | English

Gitter License CI/IT Tests codecov

Sermant

Sermant(也称之为Java-mesh)是基于Java Agent无代理的服务网格技术。其利用JavaAgent为宿主应用程序提供增强的服务治理功能,以解决大规模微服务体系结构中的服务治理问题。

Sermant的愿景还包括构建插件开发生态系统,以帮助开发人员更容易地开发服务治理功能,同时不干扰业务代码。Sermant架构描述如下。

pic

根据上图,Sermant中Java Agent包含两层功能。

  • 框架核心层。核心层提供Sermant的基本框架功能,以简化插件开发。该层的功能包括心跳、数据传输、动态配置等。
  • 插件服务层。插件为宿主应用提供实际的治理服务。开发者可以直接利用框架核心服务开发简单插件,也可以开发插件自身的复杂服务治理功能来开发复杂插件。

Sermant中的Java Agent广泛采用类隔离技术,以消除框架代码、插件代码和宿主应用程序代码之间的类加载冲突。

使用Sermant的微服务架构具有以下三个组件,如下图所示。

pic

  • Sermant Java Agent:动态地为宿主应用程序提供服务治理能力。
  • Sermant Backend:为Java Agent的上传数据提供连接和预处理服务。
  • Dynamic configuration center:通过动态更新监听的Java Agent的配置来提供指令。Sermant项目不直接提供动态配置中心。这些项目目前支持servicecomb-kie等。

快速开始

下载或编译

点击此处下载Sermant二进制包。如果您想自己编译项目,请遵循以下步骤。

执行maven命令来打包Sermant项目的 demo module

mvn clean package -Dmaven.test.skip -Pexample

启动Sermant

启动 Sermant backend, 准备zookeeper

# Run under Linux
java -jar sermant-agent-x.x.x/server/sermant/sermant-backend-x.x.x.jar
# Run under Windows
java -jar sermant-agent-x.x.x\server\sermant\sermant-backend-x.x.x.jar

启动 Sermant demo 应用:

# Run under Linux
java -cp sermant-example/demo-application/target/demo-application.jar \
  -javaagent:sermant-agent-x.x.x/agent/sermant-agent.jar=appName=test \
  com.huawei.example.demo.DemoApplication
# Run under Windows
java -cp sermant-example\demo-application\target\demo-application.jar ^
  -javaagent:sermant-agent-x.x.x\agent\sermant-agent.jar=appName=test ^
  com.huawei.example.demo.DemoApplication

检查Sermant的运行状态。在本例中,打开浏览器并导航到URL“http://localhost:8900".

pic

有关详细信息,请参阅 服务注册和发现快速开始说明

插件功能列表

功能名称 阶段 微服务框架组件支持列表
限流降级 Beta SpringBoot 1.2.x - 2.6.x
SpringWebMvc 4.1.3.RELEASE - 5.3.x
Dubbo 2.6.x-2.7.x
服务注册 GC SpringBoot 1.5.x - 2.6.2
SpringCloud Edgware.SR2 - 2021.0.0
Dubbo 2.6.x-2.7.x
服务双注册迁移 GC SpringBoot 1.5.x - 2.6.2
SpringCloud Edgware.SR2 - 2021.0.0
Dubbo 2.6.x-2.7.x
负载均衡 Beta SpringBoot 1.5.x - 2.6.2
SpringCloud Edgware.SR2 - 2021.0.0
标签路由 Beta SpringBoot 1.5.x - 2.6.2
SpringCloud Edgware.SR2 - 2021.0.0
Dubbo 2.6.x-2.7.x
优雅上下线 Beta SpringBoot 1.5.x - 2.6.2
SpringCloud Edgware.SR2 - 2021.0.0
动态配置 Beta SpringBoot 1.5.x - 2.6.2
spring-cloud-starter-alibaba-nacos-config 1.5.0.RELEASE+
spring-cloud-starter-zookeeper-config 1.2.0.RELEASE+
服务监控 Alpha All

更多文档

请参阅 Sermant 开发和使用介绍

License

Sermant 采用 Apache 2.0 License.

贡献指南

请阅读贡献指南以了解如何贡献项目。

声明

  • Apache/Servicecomb-java-chassis:Sermant引用了Apache Servicecomb项目中的服务治理算法。
  • Apache/Servicecomb-kie: Sermant使用servicecomb-kie作为默认的动态配置中心。
  • Apache/SkyWalking: 本项目中的插件架构参考了Apache Skywalking。Sermant中的部分框架代码是基于Apache Skywalking项目构建的。
  • Alibaba/Sentinel: Sermant的流量控制插件是基于阿里巴巴Sentinel项目构建的。