Sermant a proxyless service mesh solution based on Javaagent.
基于JavaAgent的无代理服务网格解决方案
Sermant
Sermant(也称之为Java-mesh)是基于Java字节码增强技术的无代理服务网格,其利用Java字节码增强技术为宿主应用程序提供服务治理功能,以解决大规模微服务体系结构中的服务治理问题。
Sermant的愿景还包括构建插件开发生态系统,以帮助开发人员更容易地开发服务治理功能,同时不干扰业务代码。Sermant架构描述如下。
根据上图,Sermant中JavaAgent包含两层功能。
Sermant中的JavaAgent广泛采用类隔离技术,以消除框架代码、插件代码和宿主应用程序代码之间的类加载冲突。
使用Sermant的微服务架构具有以下三个组件,如下图所示。
快速开始
下面是一个简单的演示,新用户只需4个步骤即可使用Sermant
准备工作
编译打包demo应用
在${path}/Sermant-examples/flowcontrol-demo/spring-cloud-demo/spring-provider/
目录执行以下命令:
# windows linux mac mvn clean package
打包成功后,在${path}/Sermant-examples/flowcontrol-demo/spring-cloud-demo/spring-provider/target
得到spring-provider.jar
说明:path为demo应用下载所在路径
修改Sermant配置
修改${path}/sermant-agent-x.x.x/agent/config/config.properties
文件中agent.service.heartbeat.enable
和agent.service.gateway.enable
配置为true,以此来开启Sermant的心跳服务和网关服务,如下所示:
agent.service.heartbeat.enable=true agent.service.gateway.enable=true
说明:path为Sermant包下载所在路径
启动backend
在${path}/sermant-agent-x.x.x/server/sermant
目录执行以下命令:
java -jar sermant-backend-x.x.x.jar
说明:path为Sermant包下载所在路径
启动demo应用
在${path}/Sermant-examples/flowcontrol-demo/spring-cloud-demo/spring-provider/target
目录执行以下命令:
# linux mac java -javaagent:${path}/sermant-agent-x.x.x/agent/sermant-agent.jar -jar spring-provider.jarwindows
java -javaagent:${path}\sermant-agent-x.x.x\agent\sermant-agent.jar -jar spring-provider.jar
说明:path为Sermant包下载所在路径
验证
打开浏览器并导航到URLhttp://localhost:8900
,如下图所示:
更多文档
请参阅 Sermant文档
License
Sermant 采用 Apache 2.0 License.
贡献指南
请阅读贡献指南以了解如何贡献项目。
声明
联系我们
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.