
.net平台下分布式开发技术
文章平均质量分 71
强大,开源,稳定,高性能的实战案例
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
CSRedisCore基本使用示例
是一个高效且易用的 Redis 客户端库,在 .NET Core 项目中可以方便地使用它进行 Redis 操作。通过依赖注入和配置连接池,它可以轻松扩展到高并发和大规模的应用场景中。原创 2024-11-14 10:18:54 · 1218 阅读 · 0 评论 -
.NET Core微服务之服务间的调用方式(REST and RPC)
Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。原创 2024-07-25 23:31:20 · 1374 阅读 · 0 评论 -
采用Opserver来监控你的ASP.NET项目系列(一、Opserver监控的简介与平台搭建)
关于Opserver的搭建,其实是很简单的,下篇我们来介绍如何监控我们的SQL Server 与ASP.NET应用.转载 2024-06-17 20:15:12 · 109 阅读 · 0 评论 -
ASP.NET Core Web API中实现监控
要在ASP.NET Core Web API中实现监控,可以使用一些流行的开源项目。这些工具可以帮助你监控API的性能、请求、响应时间、错误率等。Serilog。原创 2024-06-05 16:37:33 · 1665 阅读 · 0 评论 -
APM(应用性能管理)之Elastic APM和Datadog APM
APM(应用性能管理)工具可以帮助你监控和优化 ASP.NET Core Web API 的性能。这些工具通常提供详细的性能分析、分布式追踪、错误报告等功能。原创 2024-06-05 16:37:01 · 1693 阅读 · 0 评论 -
ASP.NET Core Web API 项目中集成 Opserver 进行监控
Opserver 是由 Stack Exchange 开发的开源监控仪表盘,用于监控不同的系统和服务。它提供了一个统一的界面来查看和管理系统的健康状况和性能数据。Opserver 支持多种监控数据源,包括 SQL Server、Redis、ElasticSearch 等。原创 2024-06-05 16:26:16 · 550 阅读 · 0 评论 -
SkyAPM 集成到ASP.NET Core Web API 项目
SkyWalking 是一个开源的 APM(应用性能管理)工具,支持分布式系统的服务、容器和云原生架构。SkyAPM 是 SkyWalking 的一个 .NET 客户端库,用于监控和跟踪 .NET 应用程序。原创 2024-06-05 16:02:11 · 520 阅读 · 0 评论 -
基于.NET技术栈的分布式跟踪和日志聚合
通过以上步骤,你可以在 .NET 项目中集成 SkyWalking,用于分布式跟踪和性能监控。SkyWalking 提供了强大的可视化工具,帮助你了解每个单据在微服务中的处理路径和状态。这对于调试和性能优化非常有帮助。通过 SkyWalking,你可以实现单据的端到端追踪,了解每个单据在微服务中的流转路径和状态。SkyWalking 提供了强大的可视化工具,使你能够轻松查看和分析追踪数据,对于微服务架构的调试和性能优化非常有帮助。原创 2024-06-05 15:29:37 · 777 阅读 · 1 评论 -
基于.NET 技术栈在微服务架构中实现统一异常处理和日志记录
通过以上方法,可以在基于 .NET 技术栈的微服务架构中实现统一异常处理和日志记录。使用中间件实现全局异常处理,使用 Serilog 和 ElasticSearch 实现集中化日志管理,通过事件驱动架构处理业务流转日志,并使用分布式追踪工具实现跨服务的请求追踪。这些方法有助于提升系统的可靠性、可维护性和可监控性。原创 2024-06-05 15:28:30 · 425 阅读 · 0 评论 -
软件开发SAGA模式
SAGA模式的基本思想是:每个微服务都有自己的本地事务,当一个操作跨越多个微服务时,SAGA会启动一个由一系列本地事务组成的事务流。在软件开发中,特别是在微服务架构中,分布式事务是一个常见的挑战。SAGA模式是一种解决方案,它将一个大的事务拆分成多个小的、局部的事务,并使用一系列的步骤来完成整个事务。这是一个简单的示例,演示了如何使用.NET Core实现基于协调器的SAGA模式。无论是哪种实现方式,SAGA模式都可以帮助开发人员在分布式系统中实现复杂的事务处理,并保证数据的一致性和可靠性。原创 2024-04-24 21:52:39 · 530 阅读 · 0 评论 -
MediatR:轻松实现命令查询职责分离模式(CQRS)
核心对象IMediatorIRequest 、IRequest<T>IResuestHandler<in TRequest,TResponse>代码展示创建名字为MediatorDemo的控制台应用,通过nuget引入以下三个包:MediatRMediatR.Extensions.Microsoft.DependencyInjectionMicrosoft.Extensions.DependencyInjection创建命令和处理者存放路径在根目录创建以下两转载 2022-05-19 14:03:36 · 635 阅读 · 0 评论 -
.NET Core 下使用 Exceptionless 记录日志
ExceptionLess是一套免费开源分布式系统日志收集框架,也是我无意中发现的,支持自己部署和平台托管的方式接入使用。ExceptionLess官网:https://exceptionless.comExceptionLess开源地址:https://github.com/exceptionless/ExceptionlessExceptionLess.NET客户端开源地址:https://github.com/exceptionless/Exceptionless.Net安装如果是自己小转载 2022-04-27 00:33:40 · 433 阅读 · 0 评论 -
Elasticsearch(一)【.Net客户端介绍】
介绍您已到达Elasticsearch.Net和NEST的文档页面,Elasticsearch的两个官方.NET客户端。为什么要两个客户? Elasticsearch.Net是一个非常低级别,依赖自由的客户端,没有对如何构建和表示您的请求和响应的意见。它已经抽象得足够,以便所有的Elasticsearch API端点都被表示为方法,但没有太多,妨碍你如何构建你的json /请求/响应对象。它还内置翻译 2017-03-22 12:58:50 · 4100 阅读 · 2 评论 -
Elasticsearch(二)【Elasticsearch.Net基本使用】
低级客户端ElasticLowLevelClient是一个低级的,无依赖的客户端,对如何构建和表示您的请求和响应没有意见。它可以从Visual Studio中的包管理器控制台安装使用Install-Package Elasticsearch.Net连接要连接到本地运行在http://localhost:9200上的Elasticsearch就像实例化客户端的一个新实例一样简单var lowlevel翻译 2017-03-22 14:09:45 · 9363 阅读 · 2 评论 -
Elasticsearch(三)【.Net客户端API规范--生命周期】
生命周期如果您使用的是IOC容器,那么它总是有助于了解您的对象生命周期中的最佳实践一般来说,我们建议人们将ElasticClient实例注册为单例模式。客户端是线程安全的,所以在线程之间共享一个实例是很好的。然而,放大实际的移动部分,在应用程序的大部分时间内受益最大的是ConnectionSettings;缓存是每个ConnectionSettings。在某些应用程序中,使用不同的连接设置注册多个单翻译 2017-03-22 22:11:40 · 1789 阅读 · 0 评论 -
Elasticsearch(四)【Elasticsearch.Net之Post数据】
Post数据低层客户端允许您直接发布string 或byte[] 数组。 除此之外,如果您传递一个字符串或对象的集合,它们将使用Elasticsearch的特殊bulk/multi (批量/多)格式进行序列化。隐式转换即使在低级别客户端上PostData的参数需要PostData ,您可以依靠隐式转换来完全抽象PostData的概念。 您可以从以下类型隐式转换stringbyte[]collect翻译 2017-03-22 22:54:02 · 2638 阅读 · 0 评论 -
Elasticsearch(五)【NEST高级客户端--开始】
高级客户端ElasticClient提供了一种强类型查询DSL,它与Elasticsearch查询DSL一对一映射。它可以从Visual Studio中的Package Manager Console安装Install-Package NESTNEST是一个高级别的Elasticsearch .NET客户端,仍然非常贴近原始的Elasticsearch API。 所有的请求和响应通过类型暴露,使其成翻译 2017-05-07 11:38:05 · 6907 阅读 · 0 评论 -
Elasticsearch(六)【NEST高级客户端--连接】
连接NEST使用合理的默认值来连接和与Elasticsearch集群进行交互,但提供了许多配置选项和组件来改变此行为配置选项连接池修改默认连接使用证书配置选项使用Elasticsearch.Net和NEST连接到Elasticsearch很容易,但是您可能希望更改默认的连接行为。 ConnectionSettings(和ConnectionConfiguration for Elastic翻译 2017-05-07 19:40:00 · 6962 阅读 · 0 评论 -
Elasticsearch(七)【NEST高级客户端--序列化】
序列化NEST的默认JSON序列化了解如何正确序列化所有请求和响应类型,以及正确处理您的POCO。 然而,有时候,您可能希望通过提供自己的序列化程序或修改NEST的序列化器的行为来改变此行为。 改变序列化器 修改默认序列化器改变序列化器NEST使用JSON.Net将JSON的响应序列化和反序列化。尽管JSON.Net做好了序列化,但是由于某种原因,您可能希望使用自己的JSON序列化程序。 Ela翻译 2017-05-07 21:49:23 · 2853 阅读 · 0 评论 -
Elasticsearch(八)【NEST高级客户端--Mapping映射】
要使用NEST与Elasticsearch进行交互,我们需要能够将我们的解决方案中的POCO类型映射到存储在Elasticsearch中的反向索引中的JSON文档和字段。本节介绍NEST中可用的所有不同功能,使POCO和Elasticsearch变得轻而易举。在Elasticsearch中显式映射文档对于为给定的问题域提供定制搜索解决方案至关重要。虽然Elasticsearch能够基于遇到的该类型的翻译 2017-05-07 22:29:47 · 6759 阅读 · 0 评论 -
Elasticsearch(九)【NEST高级客户端--分析器】
分析分析是将文本(如任何电子邮件的正文)转换为添加到反向索引中进行搜索的tokens 或terms 的过程。 分析由analyzer 执行,分析器可以是内置分析器或每个索引定义的定制分析器。 书写分析器 测试分析器书写分析器有时候,您可以通过配置Elasticsearch内置分析器的工作原理,或将分析组件结合在一起来构建定制分析器,以定制方式分析文本。分析链分析器由三个组件构成: 0个或更多字符翻译 2017-05-07 22:53:06 · 3487 阅读 · 0 评论 -
Elasticsearch(十)【NEST高级客户端--搜索查询】
搜索Search API允许您执行搜索查询并获取与查询匹配的搜索匹配。 Elasticsearch的搜索功能可能是您使用它的原因之一,NEST公开了所有可用的不同类型的搜索,以及一些聪明的使用Elasticsearch从强类型语言更容易使用。 编写查询 编写布尔查询 仅返回某些字段 协变检索结果编写查询在Elasticsearch中建立数据索引后,您将能够搜索它。 Elasticsearch翻译 2017-05-07 23:01:40 · 10071 阅读 · 3 评论 -
Elasticsearch(十一)【NEST高级客户端--聚合】
聚合聚合框架有助于提供基于搜索查询的聚合数据。 它基于称为聚合的简单构建块,可以组合以构建复杂的数据摘要。 编写汇总 保留的聚合名称翻译 2017-05-07 23:05:54 · 4351 阅读 · 0 评论 -
Elasticsearch(十二)【NEST高级客户端--规范】
规范NEST有一些规范用于推理文档路径API功能字段IDS索引名称索引路径属性翻译 2017-05-07 23:12:30 · 2231 阅读 · 0 评论 -
Elasticsearch(十三)【NEST高级客户端--常见类型】
常见类型NEST有许多类型用于使用Elasticsearch规范 时间单位 距离单位 日期数学表达式时间单位无论何时需要指定持续时间,例如对于超时参数,持续时间可以指定为表示时间(毫秒)的整数,或者作为2d的时间值指定2天。NEST使用Time类型来强制键入,并且有几种方法来构造一个。构造函数构建Time的最直接的方法是通过其构造函数var unitString = new Time("2d"翻译 2017-05-07 23:17:10 · 2655 阅读 · 0 评论 -
Solr.NET快速入门(十)【二进制文档上传】【完】
二进制文档上传SolrNet支持Solr“提取”功能(a.k.a. Solr“Cell”)从二进制文档格式(如Word,PDF等)索引数据。这里有一个简单的示例,显示如何从PDF文件中提取文本,而无需对其进行索引:ISolrOperations<Something> solr = ...using (var file = File.OpenRead(@"test.pdf")) { var翻译 2017-03-18 23:13:36 · 1602 阅读 · 0 评论 -
Solr.NET快速入门(九)【多核多实例,映射验证】
多核/多实例本页介绍如何配置SolrNet访问(读/写)多个Solr内核或实例。 它假定您知道Solr内核是什么,如何在SolrNet外部配置和使用它们。 此页面不涵盖CoreAdminHandler命令。如何配置SolrNet for multicore取决于它如何集成到您的应用程序,如果您的内核映射到不同类型或相同类型。 内置容器内置容器(启动)当前仅限于访问具有不同映射类型的多个核心/实例。翻译 2017-03-18 23:06:35 · 1544 阅读 · 0 评论 -
Solr.NET快速入门(八)【覆盖默认映射器,NHibernate集成】
覆盖默认映射器默认情况下,SolrNet使用属性映射Solr字段。 但是,您可能需要使用另一个映射程序。 替换默认映射器取决于您如何设置库: 内置容器如果使用默认的内置容器,可以在调用Startup.Init()之前替换它:var mapper = new MappingManager();//这里是你的映射var container = new Container(Startup.Conta翻译 2017-03-18 22:56:48 · 944 阅读 · 0 评论 -
Solr.NET快速入门(七)【核心管理,Fluent API】
Solr核心管理命令Fluent API 相关翻译 2017-03-18 22:43:00 · 1093 阅读 · 0 评论 -
Solr.NET快速入门(六)【聚合统计,分组查询】
聚合统计 属性 说明 Min 最小值 Max 最大值 Sum 总和 Count 记录数,也就是多少行记录 Missing 结果集中,有多少条记录是空值 SumOfSquares 平方和(x1^2 + x2^2+xn^2) Mean 平均数(x1+x2+xn)/n StdDev 标准差示例:ISolrOperations<Prod翻译 2017-03-18 22:22:08 · 1909 阅读 · 2 评论 -
Solr.NET快速入门(五)【相似查询,拼写检查】
相似查询此功能会返回原始查询结果中返回的每个文档的类似文档列表。参数通过QueryOptions的MoreLikeThis属性定义。示例:搜索“apache”,为结果中的每个文档搜索“cat”(类别)和“manu”(制造商)字段中的相似文档:ISolrBasicOperations<Product> solr = ...var results = solr.Query(new SolrQuery(翻译 2017-03-18 21:57:01 · 1224 阅读 · 0 评论 -
Solr.NET快速入门(四)【高亮显示】
此功能会“高亮显示”匹配查询的字词(通常使用标记),包括匹配字词周围的文字片段。要启用高亮显示,请包括HighlightingParameters QueryOptions对象,其中包括要应用高亮显示的字段。示例代码:var results = solr.Query(new SolrQueryByField("features", "noise"), new QueryOptions { H翻译 2017-03-18 21:49:02 · 1345 阅读 · 0 评论 -
Solr.NET快速入门(三)【Faceting】
分面搜索SolrNet支持分面搜索。基本上有三种方面查询: 按字段查询 日期分面 任意分面查询分面查询通过QueryOptions的FacetQueries属性发出。 然后QueryOptions实例被传递到服务器实例。分面限制有可能,您用作分面的字段可能具有太多的值,因此您可能想要限制应显示多少个值。 为此,我们在SolrFacetFieldQuery中具有Limit属性。只需将Limit设翻译 2017-03-18 21:37:19 · 1369 阅读 · 0 评论 -
Solr.NET快速入门(二)【查询】
简单查询这是SolrNet中最简单的“查询对象”。 无论你给它什么都直接传递给Solr的q参数ISolrOperations<Product> solr = ...var products1 = solr.Query(new SolrQuery("lucene")); // search for "lucene" in the default fieldvar products2 = solr.翻译 2017-03-18 21:21:17 · 4526 阅读 · 0 评论 -
Solr.NET快速入门(一)【基本使用,映射字段】
字典映射和动态字段Solr dynamicFields可以根据用例不同地映射。 它们可以被“静态地”映射,例如,给定:<dynamicField name="price_*" type="integer" indexed="true" stored="true"/>一个特定的dynamicField实例可以映射为:[SolrField("price_i")]public decimal? P翻译 2017-03-18 17:33:43 · 2847 阅读 · 0 评论 -
RabbitMQ .NET消息队列使用入门(三)【MVC实现RPC例子】
每一个孤独的灵魂都需要陪伴RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC采用客户机/原创 2017-03-15 15:10:25 · 4773 阅读 · 2 评论 -
RabbitMQ .NET消息队列使用入门(二)【多个队列间消息传输】
实体类:DocumentType.cs public enum DocumentType { //日志 Journal = 1, //论文 Thesis = 2, //会议文件 Meeting = 3 }MessageModel.cs public class MessageModel原创 2017-03-14 15:28:40 · 4362 阅读 · 1 评论 -
RabbitMQ .NET消息队列使用入门(一)【简单示例】
首先下载安装包,我都环境是win7 64位:去官网下载 otp_win64_19.0.exe 和rabbitmq-server-3.6.3.exe安装好然后开始编程了:(1)创建生产者类: using System;using System.Text;using RabbitMQ.Client;namespace MQSamples.Publisher{ ...原创 2016-08-02 13:55:34 · 12394 阅读 · 0 评论 -
windows下使用Hibernate连接Mycat例子
项目结构 使用jdk1.6和hibernate3NewsManager.java代码如下:package App;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;imp原创 2016-08-23 12:57:45 · 8456 阅读 · 2 评论 -
Windows环境Mycat数据库分库分表中间件部署
下载地址MYCAT官方网站jdk安装配置首先去oracle官网下载并安装jdk8,添加环境变量,JAVA_HOME设置为D:\Worksoftware\Java\jdk1.8CLASSPATH设置为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jarpath系统变量追加%JAVA_HOME%\bin;Mycat安装配置首先添加Windows环境变量,MYC原创 2016-08-23 00:17:00 · 5212 阅读 · 1 评论