# 背景介绍

LMS框架旨在帮助开发者在.net平台下,通过简单的配置和代码即可快速的使用微服务进行开发。

LMS通过.net框架的主机 (opens new window)托管应用,内部通过dotnetty/SpanNetty (opens new window)实现的rpc进行通信,在消息传递过程中,通过rpcToken保证消息在同一个集群内部进行通信,而且rpc通信支持ssl加密。

LSM通过.net的web主机 (opens new window)来托管对外提供访问入口的服务主机,在http请求或是ws会话请求到达该主机时,通过内置的中间件解析到服务集群的路由条目,并指定rpcToken,通过内置的负载均衡算法和路由寻址与集群内部的主机进行rpc通信。

LMS在通信过程中,使用基于缓存拦截实现了TCC分布式事务。

在开发与设计过程中借鉴和吸收了各个优秀的开源产品的设计与思想。在此,作者表示对各个先辈的致敬与感谢。

为方便开发者学习与表达对前辈的谢意,如下对LMS各个模块的设计思想来源做出说明:

服务引擎与IOC容器: 该模块主要借鉴了nopCommerce (opens new window)

模块管理: 该模块的设计主要借鉴ABP (opens new window)

RPC通信: 该模块的设计主要借鉴了Surging (opens new window)RabbitCloud (opens new window)

路由与参数解析: 该模块借鉴了aspnetcore (opens new window)

缓存拦截: 该模块的设计主要借鉴了Surging (opens new window)的设计思想

动态代理: 该模块的设计主要借鉴了ABP (opens new window)

分布式缓存: 该模块的设计主要借鉴了ABP (opens new window)

分布式事务: 该模块的设计思想主要借鉴了hmily (opens new window)

zookeeper客户端SDK: 该模块使用了zookeeper-client (opens new window)

WebSocket通信: 该模块借鉴了Surging (opens new window)Ocelot (opens new window)

分布式锁: 分布式锁使用了RedLock.net (opens new window)

实体映射: 该模块使用了AutoMapper (opens new window)

# 框架特性

# 服务引擎

  • 服务解析与注册
  • 负责LMS主机的初始化过程

# 路由与参数

  • 支持restful风格的API

# RPC通信

# 模块化管理

  • 模块的依赖设置
  • 通过模块注册服务
  • 通过模块预初始化方法或释放资源

# 支持分布式事务

  • 通过TCC方式实现分布式事务

# 支持websocket通信

# 分布式锁

# 开源地址