Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Meituan large-scale micro-service communication framework and governance system OCTO core components open source

2025-02-25 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)06/02 Report--

Microservice communication framework and governance platform OCTO, as an important part of Meituan's infrastructure, has been widely used in the company's technology line, stably carrying tens of thousands of applications and supporting hundreds of billions of calls per day. Based on the standardized technical solution provided by OCTO, the service can easily implement service governance functions such as service registration / discovery, load balancing, fault-tolerant processing, degraded circuit breaker, grayscale release, call data visualization and so on.

Now we open source the core components of OCTO: OCTO-RPC, OCTO-NS and OCTO-Portal. Welcome to use and co-build them.

Background

The OCTO project began at the end of 2014, when Meituan was in the period of new business development, the number of services was growing, and the topology of invocation between services became increasingly complex, which gradually exposed some typical problems:

Low R & D efficiency: lack of standard service governance framework and components, many teams "repeat wheels" resulting in waste of resources, uneven R & D quality, and low overall system availability.

High cost of operation and maintenance: lack of perfect and convenient systematic operation and maintenance means, it is difficult to carry out accurate monitoring and alarm, and it is difficult to quickly locate the faults involving multi-level links.

Service operation is difficult: it is difficult to collect service index data, lack of automatic in-depth analysis, and it is difficult to meet the requirements of rapid evaluation and decision-making.

In view of these pain points, it is particularly important to improve R & D efficiency and quality and reduce operating costs to support the rapid and stable development of the business. Therefore, the infrastructure team developed a unified company-level distributed micro-service communication framework and governance platform-OCTO. OCTO is the abbreviation of the English word octopus (Octopus). The numerous tentacles of octopus represent that the OCTO platform can reach a large number of governance services, covering all parts of the service governance field, so it is named. Since the launch of the platform, it has been widely used in all business lines of the company, which has significantly improved the technical research and development efficiency and operation quality of the whole company, and steadily supported the rapid development of Meituan's business.

Different from the traditional open source service governance components, OCTO provides a systematic service governance solution, from communication framework to registry, from file configuration to burial point alarm, from grayscale links to data reports, three-dimensional enhancement of micro-service operation capabilities, enabling business. In addition, following the design idea of "policy sinking", OCTO strips off the service governance policy function of the traditional communication framework and sinks to the implementation of the proxy component, which effectively improves the stability of the communication framework and reduces the extra overhead of the business system. OCTO, which has been verified by a large number of calls, relying on low-coupling, modular, unitary system architecture, can effectively meet the needs of all kinds of complex business scenarios and achieve disaster recovery goals such as multi-activity in different places.

Functional characteristics

In view of the problems exposed, OCTO has built a series of components and systems around the whole lifecycle of services, including definition, development, testing, deployment, operation and maintenance, optimization and offline, to facilitate R & D students to focus on their own business logic development while enjoying perfect service governance features. For example, in the development phase, we provide a communication framework with high performance, high availability and functional modularization for convenient use of business; in the testing phase, we provide various grayscale strategies such as set, swimlane, service grouping and other grayscale strategies for business nondestructive trial and error; in the operation and maintenance phase, we provide machine-level, framework-level, business-level and other hierarchical monitoring alarms for rapid business location. In the optimization phase, detailed service indicators are provided for business customization analysis and improvement.

The main features of OCTO include, but are not limited to:

Naming service: service registration / discovery.

Service management: service status monitoring; service start and stop; service load balancing.

Fault tolerant processing: shielding abnormal services in real time and automatically allocating request traffic.

Traffic distribution: scenarios such as grayscale release, node dynamic traffic distribution, etc.

Data visualization: service invocation statistics report and analysis, provide clear data chart display, intuitively locate the dependency relationship between services.

Service grouping: support dynamic automatic grouping of services and custom grouping in different scenarios to solve problems such as cross-room call penetration and sandboxie testing in multi-server room scenarios.

Service monitoring alarm: support service and interface level multi-index, multi-dimensional monitoring, support a variety of alarm methods.

Unified configuration management: support unified service configuration management, flexibly set differences between different environments, support historical versions, and issue configuration items in real time after changes.

Distributed service tracking: easily diagnose problems such as slow service access, abnormal jitter and so on.

Overload protection: flexibly define the quota allocated to upstream service consumers. When the service call exceeds the maximum threshold, QoS differentiation is made based on different service consumers, triggering flow control for overload protection.

Service access control: supports multi-granularity and multi-stage authentication.

The overall architecture of OCTO

OCTO-RPC (open source Java/C++): distributed RPC communication framework, supporting Java, C++, Node.js and other languages.

SGAgent: deployed in each service node, responsible for service registration / discovery, dynamic route resolution, load balancing, configuration transmission, performance data reporting and other functions.

Oceanus (to be open source): HTTP customized routing loader. For more information, please see "Oceanus: Meituan's practice of customized routing for HTTP Traffic".

OCTO-NS: including SDK (Java/C++), basic proxy SGAgent, naming service cache NSC, health check service Scanner and other components, providing naming service, service registration and other information storage, service status detection scanning and other functions.

Watt (to be open source): statistics of link information, calculation and service of various indicators as the basis for monitoring and alarm.

MCC (to be open source): unified configuration center, which can manage and distribute service configuration.

OCTO-Portal: an one-stop management platform for service registration, management, diagnosis, configuration, quota and other functions.

OCTO open source components

The first open source core components of OCTO include: distributed Services Communication Framework (OCTO-RPC), Service Registry (OCTO-NS), and Service Governance platform (OCTO-Portal). In the future, we will continue to open source more components and functions.

Distributed Services Communication Framework (OCTO-RPC)

The distributed service communication framework is an important part of OCTO, which has the characteristics of high performance, high availability, easy scalability and easy access. It has covered more than 90% of Meituan's services (Java/C++) and supported hundreds of billions of calls every day. At present, Java and C++ versions are open source. For more technical implementation details, please see OCTO-RPC.

Service registry (OCTO-NS)

Based on the service description information, the service registry realizes the functions of service registration / discovery, configuration management, routing grouping, load balancing, health detection and so on. With the service governance platform, the visual operation of service node data can be more convenient. At present, the open source sub-modules include SDK (Java/C++), basic proxy SGAgent, naming service cache NSC, and health check service Scanner. For more technical implementation details, see OCTO-NS.

Service Governance platform (OCTO-Portal)

An one-stop platform for service governance, which provides service stakeholders with core competencies of service governance, such as service node management, performance data analysis, full-link tracking diagnosis and so on. For more technical implementation details, see OCTO-Portal.

About Open Source

In the past four years, OCTO is an important technical project developed by Meituan in the field of architecture middleware, which has been fully verified in the scenario of complex multi-business and large-scale concurrent calls. Currently, OCTO supports hundreds of billions of daily calls to Meituan's large-scale micro services, with an API call success rate of 99.999%, which is the core foundation of company-wide SOA and service governance. We expect to make continuous feedback to the community and contribute to the industry by opening it up. At the same time, we hope that with the help of excellent engineers in the industry, the OCTO platform can be upgraded and updated more quickly. You are welcome to put forward more valuable opinions and suggestions.

Future planning

In order to further support the rapid development of Meituan's business and the advanced service governance concept and practice of the standard industry, OCTO will plan its evolution in the following aspects in the coming period of time:

APization of naming services: weakens strong consistency and focuses on the availability of registries in abnormal conditions.

Framework reactive programming: the RPC framework provides reactive programming support to help businesses build high-performance asynchronous non-blocking services.

Service Mesh: the existing naming service and other functions are combined with the control plane / data plane to further evolve the OCTO service governance system with the idea of service grid.

The author briefly introduces the R & D members of Shu Chao, Zhang Xiang and Meituan OCTO service management team. About team

The OCTO service governance team is responsible for the infrastructure construction of service governance throughout the company, including naming services, configuration services, RPC communication framework, ServiceMesh/Serverless evolution and so on. The language stack includes Java, C++, Node.js, Scala, Golang and so on. The work covers the front and rear technologies and carries hundreds of billions of daily calls from takeout, wine and travel and other business lines of the group. It is the core R & D organization of Meituan.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report