All Products
Search
Document Center

Microservices Engine:Compatibility requirements and features of Go application governance

Last Updated:Oct 10, 2024

Microservices Governance of Microservices Engine (MSE) supports Go applications. This topic describes the operating systems, programming language versions, third-party components, and governance capabilities supported by Go application governance.

Operating systems

Compiler

Operating system

Architecture

instgo_linux_amd64

Linux

amd64

instgo_linux_arm64

Linux

arm64

instgo_darwin_amd64

Darwin/macOS

amd64

instgo_darwin_arm64

Darwin/macOS

arm64

instgo_windows_amd64.exe

Windows

amd64

Programming language versions

Go 1.18 and later are supported.

Third-party components

Component

Repository address

Minimum version

Maximum version

Net/HTTP

https://pkg.go.dev/net/http

v1.18

v1.23

Gin

https://github.com/gin-gonic/gin

v1.8.0

v1.10.0

Grpc-go

https://github.com/grpc/grpc-go

v1.44.0

v1.65.1

Kratos

https://github.com/go-kratos/kratos

v2.5.2

v2.7.4

Go-Zero

https://github.com/zeromicro/go-zero

v1.5.0

v1.7.0

Sentinel-Golang

https://github.com/alibaba/sentinel-golang

v1.0.0

v1.4.0

Governance capabilities

Category

Feature

Description

Limit

Service contract

View information on the Application overview page

You can view the basic monitoring information of an application and the top N lists.

None

View information on the API Details page

You can view the details of all interfaces of an application. The interface details include the queries per second (QPS), abnormal requests, response time (RT), and concurrency. If you use Microservices Governance Enterprise Edition, you can also configure traffic protection rules for the interfaces.

None

View node details

You can view the details of all nodes of an application. The node details include the basic information, node-level QPS metrics, operating system metrics, and traffic monitoring metrics of the interfaces of a node.

None

System protection configuration

Configure system protection

The system protection feature provides system-wide traffic protection capabilities in different scenarios to handle various unexpected situations. For example, if an interface that is not configured with traffic protection rules encounters traffic surges, the system protection feature can provide traffic protection for the interface and ensure the stability of applications.

None

Traffic governance

Create a throttling rule

A throttling rule is used to immediately block traffic when the system detects that the QPS of a monitored application or service reaches a threshold that you specify. This prevents the application from breaking down due to traffic surges and ensures high availability of the application.

None

Create an isolation rule

You can create isolation rules to manage the number of concurrent threads of interfaces or dependencies to ensure system stability. Isolation rules are used in scenarios in which the internal processing of an application or the performance of a downstream application on which the application depends is unstable. For example, you can use isolation rules if the execution of SQL statements in an application is slow or the responses from a downstream application on which the application depends have high latency.

None

Create a circuit breaking rule

You can use circuit breaking rules to monitor the RT of requests or the ratio of abnormal requests for an application or a downstream application on which the application depends. If a specific threshold is reached, MSE immediately lowers the priority of the downstream application. The system does not call the abnormal downstream application within a specific period of time. This ensures the stability and high availability of the application. After the specified period of time elapses, the system continues to call the downstream application.

None

Create a hot parameter throttling rule for RPC requests

After you create hot parameter throttling rules for an application, MSE analyzes and collects statistics on the hot parameters that are most frequently used during resource calls. MSE also throttles resource calls in which the hot parameters are used based on the hot parameter throttling rules. This ensures system stability.

Only remote procedure call (RPC) requests are supported.

End-to-end canary release

Implement an end-to-end canary release

Go application governance supports the end-to-end canary release feature. You can use the end-to-end canary release feature to implement end-to-end traffic throttling without the need to modify your business code.

Only the CoreDNS-based Kubernetes service discovery method is supported. Third-party registries are not supported.