.net平台下分布式开发技术
文章平均质量分 53
强大,开源,稳定,高性能的实战案例
风神.NET
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
软件开发SAGA模式
SAGA模式的基本思想是:每个微服务都有自己的本地事务,当一个操作跨越多个微服务时,SAGA会启动一个由一系列本地事务组成的事务流。在软件开发中,特别是在微服务架构中,分布式事务是一个常见的挑战。SAGA模式是一种解决方案,它将一个大的事务拆分成多个小的、局部的事务,并使用一系列的步骤来完成整个事务。这是一个简单的示例,演示了如何使用.NET Core实现基于协调器的SAGA模式。无论是哪种实现方式,SAGA模式都可以帮助开发人员在分布式系统中实现复杂的事务处理,并保证数据的一致性和可靠性。原创 2024-04-24 21:52:39 · 341 阅读 · 0 评论 -
MediatR:轻松实现命令查询职责分离模式(CQRS)
核心对象IMediatorIRequest 、IRequest<T>IResuestHandler<in TRequest,TResponse>代码展示创建名字为MediatorDemo的控制台应用,通过nuget引入以下三个包:MediatRMediatR.Extensions.Microsoft.DependencyInjectionMicrosoft.Extensions.DependencyInjection创建命令和处理者存放路径在根目录创建以下两转载 2022-05-19 14:03:36 · 530 阅读 · 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 · 341 阅读 · 0 评论 -
Elasticsearch(一)【.Net客户端介绍】
介绍您已到达Elasticsearch.Net和NEST的文档页面,Elasticsearch的两个官方.NET客户端。为什么要两个客户? Elasticsearch.Net是一个非常低级别,依赖自由的客户端,没有对如何构建和表示您的请求和响应的意见。它已经抽象得足够,以便所有的Elasticsearch API端点都被表示为方法,但没有太多,妨碍你如何构建你的json /请求/响应对象。它还内置翻译 2017-03-22 12:58:50 · 3947 阅读 · 2 评论 -
Elasticsearch(二)【Elasticsearch.Net基本使用】
低级客户端ElasticLowLevelClient是一个低级的,无依赖的客户端,对如何构建和表示您的请求和响应没有意见。它可以从Visual Studio中的包管理器控制台安装使用Install-Package Elasticsearch.Net连接要连接到本地运行在http://localhost:9200上的Elasticsearch就像实例化客户端的一个新实例一样简单var lowlevel翻译 2017-03-22 14:09:45 · 9220 阅读 · 2 评论 -
Elasticsearch(三)【.Net客户端API规范--生命周期】
生命周期如果您使用的是IOC容器,那么它总是有助于了解您的对象生命周期中的最佳实践一般来说,我们建议人们将ElasticClient实例注册为单例模式。客户端是线程安全的,所以在线程之间共享一个实例是很好的。然而,放大实际的移动部分,在应用程序的大部分时间内受益最大的是ConnectionSettings;缓存是每个ConnectionSettings。在某些应用程序中,使用不同的连接设置注册多个单翻译 2017-03-22 22:11:40 · 1741 阅读 · 0 评论 -
Elasticsearch(四)【Elasticsearch.Net之Post数据】
Post数据低层客户端允许您直接发布string 或byte[] 数组。 除此之外,如果您传递一个字符串或对象的集合,它们将使用Elasticsearch的特殊bulk/multi (批量/多)格式进行序列化。隐式转换即使在低级别客户端上PostData的参数需要PostData ,您可以依靠隐式转换来完全抽象PostData的概念。 您可以从以下类型隐式转换stringbyte[]collect翻译 2017-03-22 22:54:02 · 2553 阅读 · 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 · 6792 阅读 · 0 评论 -
Elasticsearch(六)【NEST高级客户端--连接】
连接NEST使用合理的默认值来连接和与Elasticsearch集群进行交互,但提供了许多配置选项和组件来改变此行为配置选项连接池修改默认连接使用证书配置选项使用Elasticsearch.Net和NEST连接到Elasticsearch很容易,但是您可能希望更改默认的连接行为。 ConnectionSettings(和ConnectionConfiguration for Elastic翻译 2017-05-07 19:40:00 · 6778 阅读 · 0 评论 -
Elasticsearch(七)【NEST高级客户端--序列化】
序列化NEST的默认JSON序列化了解如何正确序列化所有请求和响应类型,以及正确处理您的POCO。 然而,有时候,您可能希望通过提供自己的序列化程序或修改NEST的序列化器的行为来改变此行为。 改变序列化器 修改默认序列化器改变序列化器NEST使用JSON.Net将JSON的响应序列化和反序列化。尽管JSON.Net做好了序列化,但是由于某种原因,您可能希望使用自己的JSON序列化程序。 Ela翻译 2017-05-07 21:49:23 · 2746 阅读 · 0 评论 -
Elasticsearch(八)【NEST高级客户端--Mapping映射】
要使用NEST与Elasticsearch进行交互,我们需要能够将我们的解决方案中的POCO类型映射到存储在Elasticsearch中的反向索引中的JSON文档和字段。本节介绍NEST中可用的所有不同功能,使POCO和Elasticsearch变得轻而易举。在Elasticsearch中显式映射文档对于为给定的问题域提供定制搜索解决方案至关重要。虽然Elasticsearch能够基于遇到的该类型的翻译 2017-05-07 22:29:47 · 6572 阅读 · 0 评论 -
Elasticsearch(九)【NEST高级客户端--分析器】
分析分析是将文本(如任何电子邮件的正文)转换为添加到反向索引中进行搜索的tokens 或terms 的过程。 分析由analyzer 执行,分析器可以是内置分析器或每个索引定义的定制分析器。 书写分析器 测试分析器书写分析器有时候,您可以通过配置Elasticsearch内置分析器的工作原理,或将分析组件结合在一起来构建定制分析器,以定制方式分析文本。分析链分析器由三个组件构成: 0个或更多字符翻译 2017-05-07 22:53:06 · 3359 阅读 · 0 评论 -
Elasticsearch(十)【NEST高级客户端--搜索查询】
搜索Search API允许您执行搜索查询并获取与查询匹配的搜索匹配。 Elasticsearch的搜索功能可能是您使用它的原因之一,NEST公开了所有可用的不同类型的搜索,以及一些聪明的使用Elasticsearch从强类型语言更容易使用。 编写查询 编写布尔查询 仅返回某些字段 协变检索结果编写查询在Elasticsearch中建立数据索引后,您将能够搜索它。 Elasticsearch翻译 2017-05-07 23:01:40 · 9646 阅读 · 3 评论 -
Elasticsearch(十一)【NEST高级客户端--聚合】
聚合聚合框架有助于提供基于搜索查询的聚合数据。 它基于称为聚合的简单构建块,可以组合以构建复杂的数据摘要。 编写汇总 保留的聚合名称翻译 2017-05-07 23:05:54 · 4201 阅读 · 0 评论 -
Elasticsearch(十二)【NEST高级客户端--规范】
规范NEST有一些规范用于推理文档路径API功能字段IDS索引名称索引路径属性翻译 2017-05-07 23:12:30 · 2156 阅读 · 0 评论 -
Elasticsearch(十三)【NEST高级客户端--常见类型】
常见类型NEST有许多类型用于使用Elasticsearch规范 时间单位 距离单位 日期数学表达式时间单位无论何时需要指定持续时间,例如对于超时参数,持续时间可以指定为表示时间(毫秒)的整数,或者作为2d的时间值指定2天。NEST使用Time类型来强制键入,并且有几种方法来构造一个。构造函数构建Time的最直接的方法是通过其构造函数var unitString = new Time("2d"翻译 2017-05-07 23:17:10 · 2580 阅读 · 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 · 1527 阅读 · 0 评论 -
Solr.NET快速入门(九)【多核多实例,映射验证】
多核/多实例本页介绍如何配置SolrNet访问(读/写)多个Solr内核或实例。 它假定您知道Solr内核是什么,如何在SolrNet外部配置和使用它们。 此页面不涵盖CoreAdminHandler命令。如何配置SolrNet for multicore取决于它如何集成到您的应用程序,如果您的内核映射到不同类型或相同类型。 内置容器内置容器(启动)当前仅限于访问具有不同映射类型的多个核心/实例。翻译 2017-03-18 23:06:35 · 1464 阅读 · 0 评论 -
Solr.NET快速入门(八)【覆盖默认映射器,NHibernate集成】
覆盖默认映射器默认情况下,SolrNet使用属性映射Solr字段。 但是,您可能需要使用另一个映射程序。 替换默认映射器取决于您如何设置库: 内置容器如果使用默认的内置容器,可以在调用Startup.Init()之前替换它:var mapper = new MappingManager();//这里是你的映射var container = new Container(Startup.Conta翻译 2017-03-18 22:56:48 · 893 阅读 · 0 评论 -
Solr.NET快速入门(七)【核心管理,Fluent API】
Solr核心管理命令Fluent API 相关翻译 2017-03-18 22:43:00 · 1039 阅读 · 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 · 1831 阅读 · 2 评论 -
Solr.NET快速入门(五)【相似查询,拼写检查】
相似查询此功能会返回原始查询结果中返回的每个文档的类似文档列表。参数通过QueryOptions的MoreLikeThis属性定义。示例:搜索“apache”,为结果中的每个文档搜索“cat”(类别)和“manu”(制造商)字段中的相似文档:ISolrBasicOperations<Product> solr = ...var results = solr.Query(new SolrQuery(翻译 2017-03-18 21:57:01 · 1168 阅读 · 0 评论 -
Solr.NET快速入门(四)【高亮显示】
此功能会“高亮显示”匹配查询的字词(通常使用标记),包括匹配字词周围的文字片段。要启用高亮显示,请包括HighlightingParameters QueryOptions对象,其中包括要应用高亮显示的字段。示例代码:var results = solr.Query(new SolrQueryByField("features", "noise"), new QueryOptions { H翻译 2017-03-18 21:49:02 · 1280 阅读 · 0 评论 -
Solr.NET快速入门(三)【Faceting】
分面搜索SolrNet支持分面搜索。基本上有三种方面查询: 按字段查询 日期分面 任意分面查询分面查询通过QueryOptions的FacetQueries属性发出。 然后QueryOptions实例被传递到服务器实例。分面限制有可能,您用作分面的字段可能具有太多的值,因此您可能想要限制应显示多少个值。 为此,我们在SolrFacetFieldQuery中具有Limit属性。只需将Limit设翻译 2017-03-18 21:37:19 · 1308 阅读 · 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 · 4452 阅读 · 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 · 2758 阅读 · 0 评论 -
RabbitMQ .NET消息队列使用入门(三)【MVC实现RPC例子】
每一个孤独的灵魂都需要陪伴RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC采用客户机/原创 2017-03-15 15:10:25 · 4678 阅读 · 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 · 4282 阅读 · 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 · 12300 阅读 · 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 · 8402 阅读 · 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 · 5123 阅读 · 1 评论 -
Kafka.net使用编程入门(四)
新建一个cmd窗口,zkServer命令启动zookeeper 打开另一个cmd窗口,输入:cd D:\Worksoftware\Apachekafka2.11\bin\windowskafka-server-start D:\Worksoftware\Apachekafka2.11\config\server.properties删除主题:E:\WorkSoftWare\kafka2.11\b原创 2017-03-17 13:04:10 · 3110 阅读 · 1 评论 -
Kafka.net使用编程入门(三)
这个世界既不是有钱人的世界,也不是有权人的世界,它是有心人的世界。一些有用的命令1.列出主题:kafka-topics.bat –list –zookeeper localhost:21812.描述主题:kafka-topics.bat –describe –zookeeper localhost:2181 –topic [Topic Name]3.从头读取消息:kafka-console-cons原创 2016-12-14 23:32:00 · 4937 阅读 · 3 评论 -
Kafka.net使用编程入门(二)
1.首先创建一个Topic,命令如下:kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic MyTopic2.创建两个控制台程序: 3.KafkaProducer程序: class Program {原创 2016-06-29 22:20:25 · 5600 阅读 · 2 评论 -
Zookeeper.NET Client(三)【Znode节点增删改查】
那些最能干的人,往往是那些即使在最绝望的环境里,仍不断传送成功意念的人。他们不但鼓舞自己,也振奋他人,不达成功,誓不休止。——安东尼·罗宾class Program { static void Main(string[] args) { //创建一个Zookeeper实例,第一个参数为目标服务器地址和端口,第二个参数为Session超时时原创 2016-10-02 02:08:34 · 10766 阅读 · 0 评论 -
Zookeeper.NET Client(二)【官方驱动 开发入门】
首先项目结构很简单,如图:原创 2016-07-27 22:23:08 · 3973 阅读 · 0 评论 -
Zookeeper.NET Client (一)【自己编写客户端 连接实例】
首先zookeeper 压缩包 解压 并配置好!我本机zookeeper环境配置如下:D:\Worksoftware\ApacheZookeeper3\conf\zoo.cfg我已经加了path环境变量,没加的话需要到zookeeper对应bin目录下执行zkServer然后执行cmd命令:启动成功后,我们开始C#编程:首先项原创 2016-07-26 22:19:15 · 7545 阅读 · 0 评论 -
Elasticsearch.Net使用(二)【MVC4 图书管理系统】
首先项目结构图:Model层的相关代码如下:Book.cs代码如下:public class Book { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } [Max原创 2016-08-07 19:19:14 · 6019 阅读 · 2 评论 -
Elasticsearch.Net使用(一)【入门篇】
首先去官网下载Elasticsearch 2.3.4安装包,解压后,在cmd命令行进入安装目录,再进入 bin目录,运行elasticsearch.bat命令elasticsearch插件elasticsearch-head安装:bin目录下执行命令plugin -install mobz/elasticsearch-head然后开始.net编程,构建控制台应用程序Progra原创 2016-08-06 22:25:56 · 12819 阅读 · 1 评论 -
Memcached的.NET客户端(二)【BeITMemcached使用】
class Example { public static void Main(string[] args) { //--------------------- // 设置客户端 //--------------------- Console.Wri原创 2016-08-08 21:13:11 · 1853 阅读 · 1 评论