ElasticSearch
什么是ElasticSearchElasticsearch 是一个分布式的搜索与分析引擎,专门用于处理大规模数据的全文搜索、结构化查询、日志分析和实时数据可视化等场景。它是 Elasticsearch Stack(原 ELK Stack) 的核心组件,和 Logstash、Kibana 一起广泛应用于日志收集和分析系统中。 核心特点全文搜索 支持分词、模糊匹配、相关性打分等强大的全文检索功能。 分布式架构 可以横向扩展,支持亿级数据的快速读写和查询。 实时分析 支持对数据的实时聚合、过滤、统计分析。RESTful API 操作基于 HTTP 的 JSON 请求,易于集成。 强大的查询 DSL 提供基于 JSON 的查询语法,支持布尔、范围、模糊、地理、聚合等多种查询方式。 Elasticsearch工作原理数据写入流程: 搜索查询流程:┌──────────┐ ┌────────────┐│ 客户端 │ │ 客户端 │└────┬─────┘ ...
Nginx
安装Nginx第一步: 下载Nginx: https://nginx.p2hp.com/ 选择对应版本 第二步: Nginx的使用 我们的常用配置只需要在nginx.conf中。 可以看到Nginx默认配置的端口号是 80 第三步: Nginx启动方式 通过命令行启动 在nginx安装目录的绝对路径的框框内输入 cmd,直接输入 nginx 或者 start nginx,然后回车,就可以启动nginx了。 !windows防火墙要允许nginx访问网络。 然后在浏览器地址栏输入 localhost 如果能看到这个页面,那么nginx启动就成功了。关闭nginx的命令:nginx -s stop
Git使用
Git简介Git 是一个分布式版本控制系统,用来管理代码或任何文件的版本历史。 常用于协作开发,支持分支、合并、回滚等操作。 Windows再Windows上安装Git。官网下载:https://git-scm.com/download/win安装之后,就可以使用命令行git工具了。在开始菜单里找到 “Git”->”Git Bash”,会弹出 Git 命令窗口,你可以在该窗口进行 Git 操作。 Git配置基本身份配置在第一次使用 Git 时,先配置用户名和邮箱: 12git config --global user.name "你的名字"git config --global user.email "你的邮箱@example.com" 这会把配置写入 ~/.gitconfig 文件,并对所有仓库生效。如果只想对当前仓库有效,去掉 –global。 查看配置查看所有当前生效的配置项: 1git config --list Git常用命令仓库操作初始化一个新仓库 1git init 克隆远程仓库克隆远程仓库 1git...
整洁架构
实现整洁架构项目分层这个案例分为Users.Domain、Users.Infrastructure、Users.WebAPI这三个项目。 Users.Domain是领域层项目,主要包含实体类、值对象、领域事件数据类、领域服务、仓储接口、防腐层接口等; Users.Infrastructure是基础设施项目,主要包含实体类的配置、上下文类的定义、仓储服务、防腐层接口的实现、基础工具类等; Users.WebAPI是ASP.NET Web...
什么是反射
当然!你问的“什么是反射”,这里给你一个通俗易懂的中文解释: 反射(Reflection)是什么?反射 是 .NET(以及很多语言和平台,比如 Java)提供的一种机制,它能让程序在运行时查看、检查、访问甚至修改自身的类型信息。 简单来说: 反射就是在运行时动态获取或操作对象、类型、方法、属性等元数据的能力。 常用的 System.Reflection 类型 Type表示 .NET 中任何类型的运行时信息,是反射的核心入口。 PropertyInfo表示属性的元数据,能用来读/写属性值。 MethodInfo表示方法的元数据,能用来调用方法。 FieldInfo表示字段的元数据,能用来访问字段值。 ConstructorInfo表示构造函数的元数据,可以用来创建对象。 Assembly表示程序集(.dll 或 .exe),可以用它动态加载程序集并获取类型信息。 MemberInfo表示成员(属性、方法、字段等)的基类,很多 API 返回它。 举个简单的例子假设你有一个类: 1234public class Person{ ...
ASP.NET Core使用RabbitMQ和MassTransit
MassTransit一、MassTransit 基本概念定位:基于 .NET 平台 的开源消息总线框架,用于构建分布式、异步通信的应用程序,支持多种消息传输协议(如 RabbitMQ、Azure Service Bus、Kafka 等)。设计目标:简化分布式系统中消息传递的开发,提供高层次的抽象(如消费者、管道、 Saga 模式等),降低开发者对消息中间件底层细节的依赖。 核心特点多传输协议支持:可无缝集成 RabbitMQ、Azure Service Bus、Kafka、ActiveMQ 等多种消息代理。编程模型友好:基于 C# 语言,支持依赖注入(DI)和 Lambda 表达式,代码简洁易读。内置消费者管道(Consumer Pipeline),支持消息过滤、重试、日志记录等中间件。分布式事务支持:通过 Saga 模式 实现长流程事务的异步协调(如订单状态更新、支付回调处理)。高可用性与监控:支持消费者集群和负载均衡。集成 Prometheus、Grafana 等监控工具,提供运行时指标和健康检查。 应用场景.NET 微服务架构:作为服务间通信的核心组件(尤其适合 C#...
如何安装RabbitMQ服务器
在Windows安装RabbitMQ安装RabbitMQ需要安装Erlang环境,网址:Downloads - Erlang/OTP 下载对应的版本RabbitMQ Erlang Version Requirements — RabbitMQ 配置Erlang环境变量 在搜索框里输入编辑系统环境变量. 变量名一定要写成ERLANG_HOME,变量值就是你的Erlang的安装路径 还需要在系统变量中选中Path进行编辑,新建一个%ERLANG_HOME%\bin 打开命令窗口,输入erl或者erl -version()验证环境是否配置成功(出现以下版本号即成功,显示不是内部命令则环境变量配置失败) 安装RabbitMQ RabbitMQ官网下载址:Installing on Windows — RabbitMQ 配置RabbitMQ环境变量 进入sbin文件下,打开命令窗口输入1rabbitmq-plugins enable...
.NET Core的聚合,MediatR实现领域事件
聚合在.NET中的实现上下文可以从数据库中查询出数据并且跟踪对象状态的改变,然后把对象状态的改变保存到数据库中,因此上下文就是一个天然的仓储的实现;上下文会跟踪多个对象状态的改变,让后在SaveChanges方法中把所有的改变一次性提交到数据库中,这是个“要么全部成功,要么全部失败”的操作,因此上下文也是一个天然的工作单元的实现。 有一些开发人员会再编写仓储和工作单元的接口以封装上下文的操作,这样可以把EF Core的操作封装起来,不仅可以让代码不依赖于EF Core,而且今后如果我们需要把EF Core替换为其他持久化机制,代码切换起来也会更容易。但是本书将直接用上下文作为仓储,而不是定义一个仓储的抽象层,微软也是这样建议的。因为EF Core是一个很好的仓储和工作单元的实现框架,很难找到另一款可以很好实现DDD的ORM框架,无论抽象层怎么定义,如果需要把EF Core替换为其他ORM框架,代码就不可能不做任何改变。我们直接用上下文做仓储,这样可以最大化地利用EF Core的特性,从而提供更高性能的仓储实现。 在EF...






