Preface
The open source project was originally initiated by some foreign engineers. The most famous open source community and private software project hosting platform GitHub, founded by foreign Chris Wanstrath, has changed from a developer community to a free open source code hosting platform; more and more companies in China Contributing some excellent open source frameworks developed by ourselves, Alibaba, Tencent, Baidu, NetEase, Dangdang, Ctrip and other companies have open sourced some excellent projects on github. Among them, Alibaba has many open source projects. Almost all domestic companies have used some of Alibaba's projects, such as druid and fastjson. At the moment when distributed is popular, Ali also has many distributed open source projects. Today, I will mainly collect Ali distributed open source projects.
1. Dubbo, a distributed RPC service framework
Apache Dubbo (incubating) | is a high-performance and lightweight open source Java RPC framework from Alibaba. It provides three core capabilities: interface-oriented remote method invocation, intelligent fault tolerance and load balancing, and automatic service registration and Find.
The high-performance and excellent service framework enables applications to implement service output and input functions through high-performance RPC, and can be seamlessly integrated with the Spring framework. Many domestic small and medium companies are using Alibaba's dubbo framework to build distributed projects.
github address : https://github.com/alibaba/dubbo
二、Spring Cloud Alibaba
Spring Cloud Alibaba, a one-stop solution for distributed application service development, is an upgrade and transformation of Alibaba based on Spring Cloud and adding Ali’s own components on top of it. The project contains the necessary components for the development of distributed application services, which is convenient Developers can easily use these components to develop distributed application services through the Spring Cloud programming model. Using Spring Cloud Alibaba, you only need to add some annotations and a small amount of configuration to connect Spring Cloud applications to Ali's distributed application solutions, and quickly build a distributed application system through Ali's middleware. Students who have used SpringCloud development will not be unfamiliar with SpringCloudAlibaba.
github address : https://github.com/spring-cloud-incubator/spring-cloud-alibaba
Three, dynamic service discovery, configuration and service management platform Nacos
Nacos is a management platform developed by Alibaba that integrates registration center and configuration center. Nacos provides a set of simple and easy-to-use feature sets to help you realize dynamic service discovery, service configuration management, service and traffic management.
Nacos helps you build, deliver and manage microservice platforms more agile and easily. Nacos is a service infrastructure that builds modern application architectures (such as microservice paradigm, cloud native paradigm) centered on "services".
github address : https://nacos.io/en-us/
Fourth, high-availability traffic management framework Sentinel
Sentinel is a lightweight microservice-oriented flow control framework developed by Ali open source, which protects the stability of services from multiple dimensions such as flow control, fuse degradation, and system load protection.
As long as the code defined by the Sentinel API is a resource, it can be protected by Sentinel. In most cases, you can use method signatures, URLs, or even service names as resource names to identify resources.
github address : https://github.com/alibaba/Sentinel
Five, distributed link tracking middleware SOFATracer
There are many distributed link tracing solutions. SOFATracer is an open source component of Ali for distributed system call tracing. Through a unified traceId, various network call conditions in the call link are recorded in a log to achieve Perspective of the purpose of network calls.
These logs can be used for rapid fault discovery, service management, etc.
github address : https://github.com/alipay/sofa-tracer
Six, high-performance Java RPC framework SOFARPC
In addition to Dubbo, Alibaba’s open source RPC framework also has Ant Financial’s SOFARPC. SOFARPC is a highly scalable, high-performance, production-level Java RPC framework. SOFARPC has experienced more than ten years and five generations of development in Ant Financial. SOFARPC is committed to simplifying RPC calls between applications and providing applications with a convenient, transparent, stable and efficient point-to-point remote service call solution. In order to facilitate the expansion of functions for users and developers, SOFARPC provides a wealth of model abstraction and extensible interfaces, including filters, routing, load balancing, etc. At the same time, it provides rich microservice governance solutions around the SOFARPC framework and its surrounding components.
github address : https://github.com/alipay/sofa-rpc
7. OpenMessaging, a cloud-oriented distributed messaging standard
OpenMessaging was initiated by Alibaba and co-founded with Yahoo, Didi Chuxing, and Streamlio. It aims to create vendor-independent and platform-independent application development standards in the field of distributed messaging and stream processing.
github address : https://github.com/openmessaging/openmessaging-java
8. P2P file distribution system Dragonfly
Dragonfly (Dragonfly) is a P2P file distribution system developed by Alibaba. It is used to solve the problems of time-consuming, low success rate, and bandwidth waste in large-scale file distribution scenarios. Significantly improve business capabilities such as release deployment, data warm-up, and large-scale container image distribution.
The open source version of Dragonfly can be used for P2P file distribution, container image distribution, local speed limit, disk capacity pre-check, etc. It supports a variety of container technologies, without any modification to the container itself, the image distribution can be up to 57 times faster than the natvie method, and the registry network outgoing traffic is reduced by more than 99.5%. Our company uses this item for log storage and search very convenient.
github address : https://github.com/alibaba/Dragonfly
Nine, the development framework SOFABoot based on Spring Boot
SOFABoot is an open source Spring Boot-based R&D framework developed by Ant Financial. Based on Spring Boot, SOFABoot provides capabilities such as Readiness Check, class isolation, log space isolation, etc. While enhancing Spring Boot, SOFABoot provides users with the ability to easily use SOFAStack-related middleware in Spring Boot.
github address : https://github.com/alipay/sofa-boot
10. Distributed data layer TDDL
In a distributed system, it is often necessary to implement read-write separation, dynamic database configuration, etc.; supporting databases to implement some solutions for distributed systems, TDDL is a jdbc datasource implementation based on centralized configuration, with active and standby, read-write separation, dynamic Database configuration and other functions.
github address : https://github.com/alibaba/tb_tddl
11. Lightweight distributed data access layer CobarClient
I believe that everyone has used MyBatis. Persistence layer middleware, with multi-level cache implementation supporting Spring/SpringBoot plug-in is more convenient to use; Cobar Client is a lightweight distributed data access layer (DAL) based on iBatis (renamed MyBatis) and Spring framework implementation.
github address : https://github.com/alibaba/cobarclient
Twelve, redis java client Tedis
Redis is a very practical and efficient NoSQL (non-relational database) that can effectively solve some of the access pressure between the system and the database, and provides some other more important functions such as the implementation of distributed locks.
Tedis is another java client for redis. Tedis's goal is to create a highly available Redis solution that can be used directly in the production environment.
github address : https://github.com/justified/tedis
to sum up
With more and more open source projects in the country, and the development of science and technology, the strength is getting stronger and stronger. Understanding and participating in open source projects is the strength certification and pride of every technical person. Even if we fail to participate in open source projects, or even fail to use them in our work, at least we can learn about these projects.
Now that I have read the entire article, I believe it will be helpful to you. Originality is not easy, stay away from the party.
Click on the [Reward] editor below, or follow the official account to give support. Every encouragement from you will be a great motivation for the editor.