2016.11-2017.6 work impression

It can be said to be a lucky year, this year made up for the lack of technical and framework understanding before, and gained a more comprehensive understanding of the back-end framework.

 

The working atmosphere of this company is very good. The boss is a technophile who loves to study new technologies. All his subordinates are engineers who can take charge of their own. But when the boss interviewed me, he didn’t ask too many technical questions. I was still wondering if this company would be bad, and it turned out that my choice was correct.

 

When it comes to the project, there are three people at the beginning, an architect, a project manager, and my assistant. Apparently it's not the main character.

What we do is to take the number and call the number system, and most of the whole process is completed by the structural engineer. I am responsible for the management of the background, configuring the assignment of the number-taking and calling matters and the number-taking rules.

 

At first glance, it is a simple system, but the difficulty lies in the concurrent processing of number calls (of course, we can easily handle it with the lock mechanism) and the speed of number access (with Redis to store the cache).

 

The technologies and architectures we use are complex. First, the data that manages the background configuration needs to be loaded into Redis, and the data that is recorded in Redis should also be stored after 5 days. Redis will consume memory if it is not stored for multiple days. Secondly, the parking data synchronized by other interfaces, the number-calling reservation record, the vehicle entry record, and the records of events synchronized from other systems will be saved by the data warehouse Elasticsearch, which will be used as a log query in the future. It should be noted that the Elasticsearch version 1.X The gap between 2.X and 5.X is very large, and the code writing and package references are very different. There is also a message queue ActiveMQ + concurrent processing akka to ensure that Elasticsearch writes will not be missed. And the number-taking project uses nginx as the load.

 

It is worth mentioning that we have a multi-end reservation mechanism, and we use cxf webservice to provide services, and the front and back ends of WeChat and web reservations are separated. log4j is also a useful logging framework that helps us locate errors quickly. I heard that log4j2 is 10 times more efficient than log4j, but considering the project time, I did not switch to log4j2.

The project also involves calling the evaluator, calling the LED display, and calling the hardware interface of the number-taking machine frame.

 

In May, the architect and manager were gone, leaving me alone. Fortunately, I already knew about these frameworks at the time, and most of the problems were still manageable. Recently, another migration was carried out. ES uses its own clustering mechanism, ActiveMQ uses zookeeper for clustering, and Redis uses its own master-slave mechanism for clustering. The number of clusters must be odd. Started the new special new ELK framework of ES 5.X for log analysis.

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326349327&siteId=291194637