Starting Here

Introduction to the Eight Online Demonstration System

The Eight Online System (click link) is a demonstration system showcasing the basic functionalities and usage of Eight. Developed by Eight, it essentially serves as a service distribution and management system hosted by itself.

Through this system, one can understand how to easily deploy a system onto a node and how to control and manage the systems and services running on the node.

Deploying the System

To deploy a system locally, you need to follow these four steps:

  • Download the seat
  • Register an account
  • Use the appropriate command line to start the seat
  • Configure a system for the current node on the online system platform

Downloading the Seat

Download the seat from the homepage here. Clicking the link will provide a jar package.

Download Seat

Running the seat requires a Java environment. The Eight base can run in environments from jre 1.6 to jre 20 (latest version), with slightly different configuration parameters for different environments. Note, due to the CDN service provider of the online system no longer supporting TLS 1.0, using jre 1.6 will result in connection failure. Therefore, the minimum version required for using the demonstration system is Java 7. This is solely due to the limitation of the CDN service provider. If not using CDN proxy or https, both the server and the seat can run on jre 1.6.

Registering an Account

Then, register an account and log in to the system.

Sign Up

After logging in, you will see two menu items: Application Management and Node Management. Application Management is used to import, publish, modify, and configure various application systems, as shown below:

Application Management

Node Management is used to configure and manage the systems published on each node. You can also view some node-related information.

Node Management

Initially, there are no nodes in Node Management, and it is not possible to add nodes manually. To manage a node, you must start the previously downloaded seat.

Starting the Command

The seat is started with a command like:

java -Dframework.boot.scanner.node=winnt4 -Dfile.encoding=UTF8 -Dframework.web.user=xxxx -Dframework.web.password=pppp -Dframework.web.url=https://www.yeeyaa.net/api -jar eight-seat-1.0.0.jar

The configurable parameters are extensive. You will later find that the configuration parameters of the seat are very crucial, affecting the characteristics of the seat and the various applications running within it. However, the essential parameters are only the following:

Parameter Meaning Example Additional Notes
file.encoding Default encoding method for text within various applications file.encoding=UTF8 Required in Windows environments. The default code page in Windows is not UTF-8, which can cause garbled text when Java reads files. This parameter can only be set at initial startup.
framework.web.user Enter your registered username framework.web.user=zhangsan@example.com  
framework.web.password Enter your password framework.web.password=xxxxxxxxx  
framework.web.url Enter the systems deployment service address framework.web.url=https://www.yeeyaa.net/api This address can be configured to any deployment server. Once configured, the node will be deployed, maintained, and managed by the corresponding deployment server

Generally, with the above configuration, a node can be started. The node name at this point will be the IP address of the node’s first network card. If you need to manually define the node name, additional parameters are required:

Parameter Meaning Example Additional Notes
framework.boot.scanner.node Set node name framework.boot.scanner.node=winnt4 Node management in the system is based on the node name. Nodes with the same name will share the same configuration. It is recommended to set a unique and distinctive name for the node

For nodes running in environments below Java 8, due to the large number of classes loaded when running this example, it is recommended to manually set PermSize to 128M to prevent memory overflow:

Parameter Meaning Example Additional Notes
XX:MaxPermSize Set permanent generation size -XX:MaxPermSize=128m  

Specifically, for nodes running in Java 1.6 environments (Note: Java 1.6 cannot connect to the online https://www.yeeyaa.net/api), the following constraints apply:

Parameter Meaning Example Additional Notes
https.protocols Set default https protocol https.protocols=TLSv1 Java 1.6 does not prioritise the TLS protocol and only supports TLS v1.0. The default protocol needs to be set to connect to the server with the higher security TLS protocol
framework.center.useThread Disable multi-threaded component loading mode framework.center.useThread=false This issue originates from Spring. There is sufficient evidence that the entire Spring 4.x series has a bug when running in Java 1.6 environments. When multiple Spring applications are synchronously started in a multi-threaded manner, the first application to finish starting may forcibly terminate the applications that have not yet finished starting, causing initialization failure. This issue persists up to Spring 4.3.30. It affects Java 1.6, including the highest version 6u45, but does not exist in Java 7 and above because Spring handles different Java versions differently. Disabling multi-threaded loading can avoid this issue but may slightly slow down the system loading and batch update process

For nodes running in Java 17 and above environments, since Java 17 has by default disabled third-party libraries from accessing non-public methods and member variables of the base library through reflection, additional parameters must be added:

Parameter Meaning Example Additional Notes
–add-opens java.base/java.lang=ALL-UNNAMED Open member protection for java.lang –add-opens java.base/java.lang=ALL-UNNAMED This issue originates from Spring. The known bug in Spring 4.x (resolved in Spring 5.x, but Spring 5.x is not compatible with environments below Java 8, so it is not adopted by Eight) stems from Spring’s use of cglib to directly access private functions in java.lang through reflection. This issue has not yet been resolved, so member protection mode must be opened for this package
–add-opens java.base/java.io=ALL-UNNAMED Open member protection for java.io –add-opens java.base/java.io=ALL-UNNAMED Not a necessary option. Enabling this option will optimise memory usage in Eight

An example of using Java 17:

java --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED -Dframework.boot.scanner.node=centos9 -Dfile.encoding=UTF8 -Dframework.web.user=xxxx -Dframework.web.password=pppp -Dframework.web.url=https://www.yeeyaa.net/api -jar eight-seat-1.0.0.jar

If an Invalid CEN header exception occurs, it is caused by the Java base library’s default Zip64 extra information validation. Disable it in the startup parameters.

Parameter Meaning Example Additional Notes
jdk.util.zip.disableZip64ExtraFieldValidation Disable default Zip64 validation jdk.util.zip.disableZip64ExtraFieldValidation=true OpenJDK 11 and above, in 64-bit environments, default to enabling ExtraFieldValidation, which may cause validation exceptions for jars based on older versions

The above configurations complete the node startup. Once the node starts, it will automatically connect to the deployment server. At this point, you can see the current node on the operation panel, as shown below:

Node

You can also view some basic information about the node:

Node Information

Publishing Systems

At this point, the node is under management, but the management center has not yet issued application modules to the node. Therefore, you should import the system in Application Management, as shown below:

Import System

The demonstration system comes with several pre-configured test applications. It is recommended to import all of them. Then, in Node Management, you can select a system configuration for the current node, as shown below:

Configure Application

You can also select nodes under the corresponding application in Application Management.

Configure Application

After publishing the application, the various modules of the application will be loaded by the node. Subsequently, as the seat console continuously outputs, a new system will be loaded and run on the seat.

Run Application

Additional Notes

  • The system refresh cycle is 5 minutes (300 seconds) by default, which can be adjusted in the configuration parameters. Considering the potential burden on the server, this configuration parameter is not publicly available. Therefore, please be patient for up to 5 minutes for any changes.
  • Providing system deployment and maintenance over the internet via http (https) is just one mode of Eight’s system management. In fact, Eight can be configured, managed, and deployed on any Resource, such as file systems, Redis, Memcache, MongoDB, databases, etc. Eight’s clustered deployment will be very flexible in different application scenarios (e.g., the online system is a clustered application deployed and maintained through Redis).
  • The online system is designed to illustrate Eight’s core ideas and technical goals. To avoid complexity and high learning costs, it only demonstrates part of Eight’s control and management capabilities. Features such as node monitoring, data tracking, remote debugging, etc., will be provided in future formal environments.
  • Considering the security of trial users’ systems, the current system does not allow users to upload component modules and build systems themselves, only providing pre-set demonstration systems. To prevent irreversible operations, the demonstration system does not provide module deletion, but users can disable modules to achieve the effect of disabling.
  • In principle, a node can be configured with multiple applications. However, considering potential resource and name conflicts between applications, currently, only one application is allowed per node. Multiple applications can be combined into one application after resolving potential conflicts for deployment. In fact, the example in the demonstration system is a combination of demo and search, running as two independent applications.
  • The online system ui may look somewhat retro, but there are sufficient reasons for this. A detailed introduction to the UI selection and technical implementation of the Eight management platform will be provided later (Eight Demonstration System UI Special). In the meantime, you can take a look at the possible application environments of Eight:

Example

Note the localhost in the browser address bar.

Example

It has good compatibility and consistency across various environments and devices.

Example

In the future, Eight will penetrate unprecedented fields, extending the reach of enterprises in unprecedented environments in unprecedented ways.