English | 简体中文
The lms framework is designed to help developers quickly build a microservice development framework through simple code and configuration under the .net platform.
Build general business microservice applications through the Generic Host of the .net framework, internal Communicate through the rpc implemented by dotnetty/SpanNetty. During the message transmission process, the message is communicated within the same cluster through rpcToken
, and the rpc communication supports ssl encryption.
Through the Web Host of .net build a service host that provides access to the outside world ( Gateway), when the http
request or the ws
session request arrives at the host, the routing entry of the service cluster is resolved through the built-in middleware, and the rpcToken
is specified, and the built-in load balancing algorithm and routing addressing and The hosts inside the cluster communicate with rpc
.
In the communication process, LMS uses cache-based interception to realize TCC distributed transaction.
In the development and design process, the design and ideas of various excellent open source products have been borrowed and absorbed. Here, the author expresses his tribute and gratitude to the ancestors.
- Learn the lms framework through Developer Documentation.
- Use lms.samples project to familiarize yourself with how to build a microservice application using the lms framework.
- Familiarize yourself with the configuration properties of the lms framework through the Configuration document.
- Responsible for the initialization process of the lms host
- Service registration and resolve
- Responsible for module resolve and registration
- Routing resolve and maintenance of the distributed application cluster routing table through the registry
- Generate restful style WebAPI through the gateway to provide http services to the outside
- Realize the verification of input parameters through characteristics
- Use dotnetty/SpanNetty as the underlying communication component
- Use Zookeeper as the service registry
- Use Castle.Core.AsyncInterceptor to generate dynamic proxy
- Support cache interception
- Support JSON, MessagePack, ProtoBuf encoding and decoding methods
- Support load balancing routing methods such as polling, random routing, hash consistency, etc.
- Support failure callback -Use Policy to realize service fusing and retry
- Support service failover
- Support removing unhealthy services
- Disable external access to services through configuration support
The service governance module will continue to be updated
- Module dependency settings
- Register service through the module
- Pass module pre-initialization method or release resources
- Realize distributed transactions through TCC
- Realize websocket communication through websocket-sharp
- Use RedLock.net to implement distributed locks