The company has built a large-scale distributed spot trading system, including various systems, and the technologies involved need to be studied in depth.
Among them, I am responsible for the design, structure and overall details of the core account system in the overall system.
1. Technical aspects:
1. Distributed coordination:
zookeeper
say again
2. Persistence
Distributed cache redis
data persistence mysql
3. System communication
dubbo
netty (used by the market system)
okhttp (used for http communication)
rocketMq
4. System construction
spring,mybatis,spring boot
5. Others
jwt, high concurrency, distributed tasks
2. Business:
Registration and signing process:
1. Registration
2. Sign the contract
Payment process (three-party payment):
1, withdrawal
2, deposit
After-hours trading process:
1. Subscription
2. Purchase
3. After-hours non-trading transfer
4. Pick up
Intraday trading process
1. Commission
2. Match
3. Transaction
4. Cancellation
Exchange intraday status modification process
1. Deposit and withdrawal status
2. Transaction pending release status
3. Account lock status
4. Market opening and closing state
After-hours settlement process
After-hours internal reconciliation process
After-hours external reconciliation process
3. Data flow
1. Fund data flow of ordinary users
2. Ordinary user position data flow
3. Platform capital data flow
Summary: It is inconvenient to say the specific details of the business, so you should keep a running account for yourself. But the technology involved, summarize and write it yourself.
Receipt:
Technically, it's the ones written above
In business, spot transaction, financial system, three-party payment, etc.
In terms of operation and maintenance, including Linux system deployment and debugging, the shell is simply written.
The development tool has always been eclipse, but now it's turned to idea
Tucao: If it is only the improvement of the above symptoms but not the root cause, wouldn't it be very low, huh, huh
thinking,
The overall process thinking mode, that is, the business of the system needs to be considered when writing code, and the relevant business needs to be fully understood and determined whether it is involved.
The high-level thinking mode means jumping out of the system. Because the large-scale trading system has a large amount of data, complicated circulation, many systems involved, and different communication methods, it is necessary to consider whether other systems are involved, and think about the entire trading system.
The no-dead-end thinking mode, that is, the business line of thinking cannot be interrupted, and there cannot be any unclear or unresolved dead ends in the middle.
on the code,
The sensitivity of try/catch is improved, the service deduplication sensitivity of message queue is improved, the sensitivity of redis read and write and distributed cache design, the sensitivity of query dimension is improved, and the sensitivity of object-oriented abstract business extraction thinking Improve, the sensitivity to the cleanliness of other code is improved. Increased sensitivity to high concurrent processing caused by subscription messages. The sensitivity of filling in buried log for important code parts has been improved.
In Shenyang, a place where technology is relatively poorly developed, it is not bad, I have gained a lot, and I will continue to work hard. There are many stages in Zizai Jiyi, but it is still a lot worse. If you have self-knowledge, continue
Tucao again: The first thing in technical life is to have a forward-looking vision. Now it seems that artificial intelligence is very popular. Am I following the trend? Or continue to run java? In fact, java has not yet run to understand