Architecture Design of The Six Key Points

1. System-level separation

From the big system is concerned, digging the main things in doing four latitudes, the first is the membership center, digging a set of their own membership system, the second is the cash flow, the third is the wind control center, the first Four is the product center, and finally some of the clearing and clearing things.

Dashing will do some modest key separation on all systems. At this level SOA (the method of constructing distributed computing) is essential, when the system is formed after a certain size will force us to go in this direction.

In the cash flow system, because the characteristics of cash flow data and general data characteristics are not the same, it will continue to rise over time latitude, can not be divided simply by the user, so digging from the user and the two dimensions of the time line Distinguish cash flow. In order to maintain the consistency of the data, digging in the selection of the time using the Scala language. In the system architecture, the middleware will grow with the amount of data encountered bottlenecks, so digging in the back of the service-oriented specifically for the service to optimize the application layer for the data layer to do some shielding work to separate them .

?In addition to the technical separation of boundaries, we will be some division of responsibilities, so that personal advantage can be fully exploited, digging wealth at this point is the emphasis on front-end separation, the first digging in the technology is just doing asynchronous calls to generate Some of the norms of the protection level, but ultimately the front-end thing or to be done entirely by the front-end, which will make front-end efficiency of the overall increase.

2. Messaging

The above separation, mainly in the system-level isolation and delimitation, isolation also need to exchange between the system level interoperability, the formation of the system before they can produce greater value services. Digging the message to adopt a mechanism to solve the problem of system interoperability.

In the way of message transmission using remoting (distributed processing), remoting more or RPC-related concepts, the Internet most of the technical system are developed using multiple languages, RPC is a cross-language communication standards. Based on the service to do the work, the basic reference will use the DUBBO service framework. In view of the financial system requirements for high concurrency is not particularly high, digging adopted the HTTP protocol to achieve.

3. Asynchronous processing

Through messaging to solve the problem of system interoperability, in order to minimize the impact of events to the system, as far as possible where all go asynchronous.
[image]
?Mining, Async typical application scenarios

When the mobile end of the server-initiated requests directly to the million level, through asynchronous processing to form a complete asynchronous closed-loop, and other data processing, the data Push to the mobile side. In this process, the server-side can be some interaction, but also in the local to do something. Kafka and Akka are the most commonly used tools in this area. Akka is the Actor model in the JAVA / Scala platform, a more mature implementation.

Akka essentially has no speed limit, and all messages can be sent in real time. This can lead to a little carelessness that can lead to data crashes at the processing nodes, so the first problem we are dealing with using Akka is the current limit. Such as through the ACK mechanism to ease the back-end processing pressure.

4. Information storage, rather than missing

Dug the wealth of this piece of information is now more than the use of more than the principle of not missing, to retain every change to replace the original direct coverage, so that when the problem can be tracked, not because of the query is not a number of information and a head Fog.

Kafka in the message transmission link is also taken into account for this reason, we most value is Kafka multiple copies of data storage capacity.

In addition to Kafka, we also carried out some small practices, maintenance, if the core data changes, previously covered directly, it is now the core field with a version number, the late emergence of any problems can be based on time to find out the operation. For example, the collapse of Actors, we can create the function through the Akka back at any time, and will not be lost message, data loss. In short digging the financial technology to have their own time machine, a problem can be back.

5. System security

On the financial system, security is a more important issue. In the financial system, ATBS is already the minimum standard. In order to resist external hazards, first set the threshold as much as possible, so you can reduce the cost of technology.

In the technical level, will build the basic defense layer, such as network firewall, application firewall.

At the operational level, leveraging a third party, in the anti-fraud level using the same technology with the Shield dug technology, coupled with the wind control team for manual intervention.

At the interception level, in order to ensure isolation, and do not want Kafka to take over everything, the cluster problems, the collective will be affected, so want to physically deploy the application isolation, the corresponding cluster responsible for the corresponding business processes.

6. Storage redundancy

From the perspective of distributed storage, the traditional view of the Internet more in the CP point of view, is often weakened out of storage, but the Internet financial companies, the need to store data consistency to the first. For the core transaction system, in order to avoid the weakness of Message Queue, using a simple, flexible Multi-write to solve the problem of data consistency.

In terms of technical architecture, it is hoped that such an event-triggered, time-and-data-driven, resilient Reactive system will eventually emerge.

In the end, figures about this article will upload later.