Giter Club home page Giter Club logo

sermant's Introduction

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

简体中文 | English

Gitter License CI/IT Tests codecov

Sermant

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

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

pic

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

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

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

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

pic

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

快速开始

下面是一个简单的演示,新用户只需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.config.serviceBlackList配置为空,如下所示:

agent.config.serviceBlackList=

说明:path为Sermant包下载所在路径

启动backend

${path}/sermant-agent-x.x.x/server/sermant目录执行以下命令:

java -jar sermant-backend-lite.jar

说明:path为Sermant包下载所在路径

启动demo应用

${path}/Sermant-examples/sermant-template/demo-application/target目录执行以下命令:

# linux mac
java -javaagent:${path}/sermant-agent-x.x.x/agent/sermant-agent.jar -jar spring-provider.jar

# windows
java -javaagent:${path}\sermant-agent-x.x.x\agent\sermant-agent.jar -jar spring-provider.jar

说明:path为Sermant包下载所在路径

验证

打开浏览器并导航到URLhttp://localhost:8900,如下图所示:

pic

更多文档

请参阅 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项目构建的。

联系我们

  • Gitter:Sermant社区的聊天室。
  • 微信交流群:请先申请Sermant小二为好友,通过后会拉您进群,申请时请备注公司+职务,谢谢。

pic

sermant's People

Contributors

beetle-man avatar chengyouling avatar develpoerx avatar fuziye01 avatar glovethu avatar hanbingleixue avatar hapthorin avatar joeminty avatar justforstudy-a avatar lilai23 avatar luanwenfei-venus avatar provenceee avatar robotljw avatar scyiwei avatar sherlockhan avatar useless223 avatar willemjiang avatar xuezechao1 avatar yangyshdan avatar zhongleijd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.