冬至(一)

冬至(一)

什么是冬至?

冬至 是一个基于 .NET Core 平台的开源项目,其目标是构建一个简单易用的模块化的高性能分布式系统。

项目架构采用全新技术栈,遵循领域驱动设计(Domain-Driven Design,DDD)规范并结合命令查询职责分离(CQRS)架构实现事件驱动(Event-Driven Architecture,EDA)、事件溯源(Event Sourcing,ES)等特性。

集成多数据库与多ORM自由平滑切换及组合使用,支持多语言切换与前端多主题切换。

集成 IdentityServer4 进行身份验证及授权。

加入消息队列,分布式缓存以提高系统性能。

采用EFK(ElasticSearch, FluentD, Kibana)方案进行日志收集,基于分布式的全文搜索引擎(ElasticSearch)提高搜索海量数据的查询效率,FluentD是日志记录层的数据收集器,并搭配 Kibana 实现可视化管理和数据分析。

加入Zipkin.NET进行数据跟踪。

使用 RESTFul API 风格开发 Web API,并配合Swagger进行接口文档在线自动生成及可视化展示。

使用测试驱动开发(Test-Driven Development, TDD)方式,设计高内聚低耦合代码,降低维护成本。

使用流畅接口(Fluent Interface)风格编写链式代码。

将程序部署至Docker或k8s中。

冬至名称的由来?

冬至 为中国二十四节气中的第二十二个节气,中国古代对冬至很重视,被视为冬季的大节日。冬至在古代称之为 “亚岁”

使用到的技术栈

  • 应用框架
    • ASP.NET Core 3.0
    • ASP.NET Core WebAPI
    • Blazor
    • gRPC
  • 数据库
    • Microsoft SQL Server
    • Oracle
    • MySQL
    • PostgreSQL
    • MongoDB
  • 对象关系映射
    • EntityFrameworkCore - 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。
    • Dapper - .Net的简单对象映射器
    • Solstice
  • 缓存
    • Redis - 是一个开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询和流的地理空间索引。Redis具有内置的复制,Lua脚本,LRU逐出,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。
  • 消息队列
    • RabbitMQ - 是部署最广泛的开源消息代理。
  • 定时任务
    • Quartz.NET - 是功能齐全的开源作业调度系统,可用于最小的应用程序到大型企业系统
    • Hangfire - 在.NET和.NET Core应用程序中执行后台处理的一种简便方法。无需Windows服务或单独的过程。
  • 即时通讯
    • SignalR - 适用于ASP.NET的极其简单的实时Web
    • WebSocket
    • DotNetty - Netty端口,事件驱动的异步网络应用程序框架
  • 前端框架
    • React - 一个用于构建用户界面的JavaScript库
    • Vue - 渐进式JavaScript框架
    • Angular - 一个框架,手机和台式机。
  • 故障处理
    • Polly - 是一个.NET弹性和瞬态故障处理库,允许开发人员以流畅和线程安全的方式表达诸如重试,断路器,超时,隔离头和回退之类的策略。
  • 应用容器
    • Docker - 提供了一种在容器中安全隔离地运行应用程序的方法,该容器及其所有依赖项和库打包在一起。

参考开源项目

官方推荐参考书籍

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×