Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update roadmap and readme #1508

Merged
merged 1 commit into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 0 additions & 120 deletions README-en.md

This file was deleted.

114 changes: 114 additions & 0 deletions README-zh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<div align="center">
<p></p><p></p>
<p>
<img src="docs/binary-docs/sermant-logo.png" width="50%" syt height="50%">
</p>
<h1>基于JavaAgent的无代理服务网格解决方案</h1>


[简体中文](README-zh.md) | [English](README.md)

[![CNCF Landscape](https://img.shields.io/badge/CNCF%20Landscape-5699C6)](https://landscape.cncf.io/?item=orchestration-management--service-mesh--sermant)
[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![CI/IT Tests](https://github.com/huaweicloud/Sermant/workflows/CI/badge.svg?branch=develop)](https://github.com/huaweicloud/Sermant/actions?query=workflow:CI:push%20branch:develop)
[![codecov](https://codecov.io/gh/huaweicloud/Sermant/develop/graph/badge.svg)](https://codecov.io/gh/huaweicloud/Sermant)

</div>

## Sermant

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

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

![pic](docs/binary-docs/sermant-product-arch.png)

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

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

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

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

![pic](docs/binary-docs/sermant-rt-arch.png)

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

## 快速开始

下面是一个简单的演示,新用户只需4个步骤即可使用Sermant

### 准备工作

- [下载](https://github.com/huaweicloud/Sermant/releases/download/v1.4.0/sermant-1.4.0.tar.gz) Sermant Release包(当前版本推荐1.4.0)
- [下载](https://github.com/huaweicloud/Sermant-examples/releases/download/v1.4.0/sermant-examples-flowcontrol-demo-1.4.0.tar.gz) Demo二进制产物压缩包
- [下载](https://zookeeper.apache.org/releases#download) 并启动zookeeper

### 获取Demo二进制产物
解压Demo二进制产物压缩包,即可得到spring-provider.jar。

### 修改Sermant配置

修改`${path}/sermant-agent-x.x.x/agent/config/config.properties`文件中`agent.service.heartbeat.enable`和`agent.service.gateway.enable`配置为true,以此来开启Sermant的心跳服务和网关服务,如下所示:

```properties
agent.service.heartbeat.enable=true
agent.service.gateway.enable=true
```

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

### 启动Sermant Backend

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

```shell
java -jar sermant-backend-x.x.x.jar
```

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

### 启动Demo应用

在spring-provider.jar文件所在目录下执行以下命令:

```shell
# 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包下载所在路径

### 验证

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


![pic](docs/binary-docs/backend_sermant_info.jpg)

## License

Sermant 采用 [Apache 2.0 License.](/LICENSE)

## 贡献指南

请阅读 [贡献指南](https://sermant.io/zh/document/CONTRIBUTING.html) 以了解如何贡献项目。

## 更多文档

[Sermant官网](https://sermant.io) | [RoadMap](RoadMap.md) | [Membership](community-membership.md)

## 联系我们

* [邮件列表](https://groups.google.com/forum/#!forum/sermant)
* [Slack](https://cloud-native.slack.com/archives/C06VDFQUA7N) | [Join](https://slack.cncf.io/)
* 微信交流群:请先申请Sermant小二为好友,通过后会拉您进群,申请时请备注公司+职务。

![pic](docs/binary-docs/contact-wechat.png)
Loading
Loading