MCPcopy Index your code
hub / github.com/alibaba/Appactive

github.com/alibaba/Appactive @v0.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.1 ↗ · + Follow
1,484 symbols 3,724 edges 203 files 131 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

A middleware dedicate to building multi-site active/active application architectures

A middleware designed by alibaba: standard, universal and powerful

License

English | 中文

Introduction

AppActive is an open source middleware that builds a cloud-native, high-availability and multi-active disaster tolerance architecture for business applications. It provides standards, implementations, and demos for applying the multi-active disaster recovery architecture, which is suitable for rich business scenarios (single AZ, single region, single cloud, multi AZ, multi region, multi-cloud, self-built IDC...).

AppActive is an internal open source project of AHAS-MSHA. It is based on Alibaba's nearly 9-year production disaster recovery practice, and combines the best practices of many external customers and communities from Alibaba Cloud's commercial services, and has the characteristics of high reliability and scalability.

Architecture

appactive_landscape

The overall structure of AppActive covers the data plane and the control plane. It manages application traffic and data in the whole process. As shown in the figure above, the details can be found in the following links:

  • Architecture: Introduce AppActive deployment architecture and technical architecture.
  • Concept: Introduce the basic conceptual model of AppActive.
  • Features: Introduce the features implemented by AppActive.

Quick Start

Prerequisite

The following software are assumed installed: - docker && docker-compose - curl

note:this demo contains many applications, please adjust your memory settings to avoid failures.

Experience

appactive_landscape

Docker Run

  1. Run sh run.sh in the appactive-demo module to start all applications
  2. Bind hosts: 127.0.0.1 demo.appactive.io, and then visit http://demo.appactive.io/buyProduct?r_id=2000 to see how it works
  3. Run sh cut.sh in the appactive-portal module to switch flow. It should be noted that the writing-forbidden rules of this demo are hard-coded. If you want to change the range, you need to calculate the writing-forbidden rules and the next-routing rules, and then execute the flow switch.

If you plan to stop the experience, you can proceed: cd appactive-demo -> docker-compose down

More

For more, please visit demo

Developer Guide

  • DEVELOPER Guide :Introduce how to use AppActive, including basic samples, support plug-ins, version management, use effects.

Change Log

  • Change Log :Introduce the change features and content of each version of AppActive.

Contributing

We always welcome new contributions, whether for trivial cleanups, big new features or other material rewards, more details see here

Connect

  • DingTalk Group:34222602
  • we need your ideas for a better AppActive https://www.wjx.cn/vj/P9FB5QR.aspx

Extension points exported contracts — how you extend this code

ServerMeta (Interface)
@author mageekchiu [5 implementers]
appactive-java-client/client-bridge/client-bridge-rpc-springcloud/client-bridge-rpc-springcloud-common/src/main/java/io/appactive/rpc/springcloud/common/consumer/ServerMeta.java
InitFunc (Interface)
(no doc) [9 implementers]
appactive-java-api/src/main/java/io/appactive/java/api/base/init/InitFunc.java
OrderService (Interface)
(no doc) [8 implementers]
appactive-demo/common/src/main/java/io/appactive/demo/common/service/springcloud/OrderDAO.java
PathUtil (Interface)
(no doc) [4 implementers]
appactive-java-client/client-channel/src/main/java/io/appactive/channel/PathUtil.java
RuleCondition (Interface)
(no doc) [2 implementers]
appactive-java-client/client-rule/src/main/java/io/appactive/rule/traffic/condition/RuleCondition.java
NumComparator (Interface)
(no doc) [1 implementers]
appactive-java-client/client-support/src/main/java/io/appactive/support/lang/number/NumComparator.java
ProductRepository (Interface)
(no doc)
appactive-demo/product/src/main/java/io/appactive/demo/product/repository/ProductRepository.java
ProductRepository (Interface)
(no doc)
appactive-demo/storage/src/main/java/io/appactive/demo/storage/repository/ProductRepository.java

Core symbols most depended-on inside this repo

call
called by 237
appactive-java-api/src/main/java/io/appactive/java/api/bridge/gateway/route/AbstractExecuteRoute.java
indexOf
called by 122
appactive-java-api/src/main/java/io/appactive/java/api/utils/lang/StringUtils.java
add
called by 104
appactive-java-client/client-support/src/main/java/io/appactive/support/lang/ConcurrentHashSet.java
apply
called by 98
appactive-java-client/client-bridge/client-bridge-rpc-springcloud/client-bridge-rpc-springcloud-common/src/main/java/io/appactive/rpc/springcloud/common/consumer/RouterIdTransmissionRequestInterceptor.java
split
called by 88
appactive-java-api/src/main/java/io/appactive/java/api/utils/lang/StringUtils.java
get
called by 78
appactive-java-api/src/main/java/io/appactive/java/api/base/enums/PriorityLevel.java
contains
called by 55
appactive-java-api/src/main/java/io/appactive/java/api/utils/lang/StringUtils.java
remove
called by 45
appactive-java-client/client-support/src/main/java/io/appactive/support/lang/ConcurrentHashSet.java

Shape

Method 885
Function 396
Class 147
Interface 46
Enum 10

Languages

Java73%
TypeScript27%

Modules by API surface

appactive-demo/storage/src/main/resources/static/js/jquery-3.2.1.slim.min.js71 symbols
appactive-demo/product/src/main/resources/static/js/jquery-3.2.1.slim.min.js71 symbols
appactive-demo/frontend/src/main/resources/static/js/jquery-3.2.1.slim.min.js71 symbols
appactive-java-client/client-bridge/client-bridge-db-mysql/src/main/java/io/appactive/db/mysql/connection/proxy/CallableStatementProxy.java60 symbols
appactive-demo/storage/src/main/resources/static/js/popper.min.js50 symbols
appactive-demo/product/src/main/resources/static/js/popper.min.js50 symbols
appactive-demo/frontend/src/main/resources/static/js/popper.min.js50 symbols
appactive-java-client/client-bridge/client-bridge-db-mysql/src/main/java/io/appactive/db/mysql/connection/proxy/PreparedStatementProxy.java45 symbols
appactive-java-client/client-bridge/client-bridge-db-mysql/src/main/java/io/appactive/db/mysql/connection/proxy/ConnectionProxy.java43 symbols
appactive-java-client/client-bridge/client-bridge-db-mysql/src/main/java/io/appactive/db/mysql/connection/proxy/StatementProxy.java39 symbols
appactive-java-api/src/main/java/io/appactive/java/api/utils/lang/StringUtils.java23 symbols
appactive-java-client/client-channel/src/main/java/io/appactive/channel/file/FilePathUtil.java16 symbols

Datastores touched

(mysql)Database · 1 repos
productDatabase · 1 repos

For agents

$ claude mcp add Appactive \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact