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.
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.
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:
Node Management is used to configure and manage the systems published on each node. You can also view some node-related information.
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:
You can also view some basic information about the node:
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:
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:
You can also select nodes under the corresponding application in Application Management.
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.
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:
Note the localhost
in the browser address bar.
It has good compatibility and consistency across various environments and devices.
In the future, Eight will penetrate unprecedented fields, extending the reach of enterprises in unprecedented environments in unprecedented ways.