分布式开发技术
文章平均质量分 72
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
windows下安装elasticsearch
1.下载elasticsearch-2.3.3.zip2.需要jdk环境,这里不做介绍。查看是否有Java环境:java -version3.解压解压elasticsearch2.3.3 到某个目录,例如 D:\softwares_diy\elasticsearch-2.3.3 。4.安装安装、启动方法 (1)进入 D:\softwares_diy\elasticsearch-2.3.3\bin 目转载 2017-03-20 17:08:30 · 1218 阅读 · 1 评论 -
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 · 5638 阅读 · 2 评论 -
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 · 3132 阅读 · 1 评论 -
RabbitMQ-官方指南-rabbitmqctl(1) 指南
名称rabbitmqctl — 用于管理中间件的命令行工具语法rabbitmqctl [-n node] [-t timeout] [-q] {command} [command options…]描述RabbitMQ是AMQP的实现, 后者是高性能企业消息通信的新兴标准. RabbitMQ server是AMQP 中间件健壮的,可扩展的实现.rabbitmqctl 用来管理RabbitMQ中间件的转载 2017-03-20 15:58:08 · 7650 阅读 · 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 · 5165 阅读 · 1 评论 -
Windows安装nginx-1.10.1反向代理访问IIS网站
首先去官网下载软件包,解压,路径最好不要有中文Nginx配置的路径问题由于在Windows下文件路径可以用”\”, 也可以用”\\”, 也可以用”/”作为路径做分隔符。但”\”最容易引发问题,所以要尽量避免使用。不要添加PATH,否则会引发错误,config文件路径找不到比如我解压在E盘cmd命令定位到nginx.exe所在文件夹cd E:\WorkSoftWare\ngi原创 2016-08-07 20:21:21 · 7151 阅读 · 7 评论 -
.NET使用DFS分布式文件存储系统
带来混沌的是无知而不是知识FileInfo.cs实体类 public class FileInfo { public string Name { get; set; } public int ServerID { get; set; } }ServerInfo.cs实体类public class ServerInfo { pub原创 2017-02-23 13:49:31 · 3221 阅读 · 0 评论 -
Elasticsearch与Solr选型
搜索引擎选型调研文档Elasticsearch简介*Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的全功能开源搜索引擎框架。但是Luc转载 2017-03-16 14:08:32 · 1159 阅读 · 1 评论 -
RabbitMQ .NET消息队列使用入门(三)【MVC实现RPC例子】
每一个孤独的灵魂都需要陪伴RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。RPC采用客户机/原创 2017-03-15 15:10:25 · 4720 阅读 · 2 评论 -
RabbitMQ学习 .NET Client之RPC
Remote procedure call (RPC)(using the .NET client)在第二个教程second tutorial 中我们已经了解到了工作队列如何将耗时任务分配给多个workers。但是假如我们需要在远端机器上面运行一个函数并且等待结果返回呢?这通常叫做RPC,即远端过程调用。这里我们将用RabbitMQ构造一个RPC系统,客户端请求调用服务端的计算斐波纳契数列值得一个函转载 2017-03-15 10:45:58 · 1390 阅读 · 0 评论 -
RabbitMQ .NET消息队列使用入门(二)【多个队列间消息传输】
实体类:DocumentType.cs public enum DocumentType { //日志 Journal = 1, //论文 Thesis = 2, //会议文件 Meeting = 3 }MessageModel.cs public class MessageModel原创 2017-03-14 15:28:40 · 4315 阅读 · 1 评论 -
RabbitMQ界面管理和命令管理
RabbitMQ vhost管理RabbitMQ vhost 全称为Virtual Host(虚拟主机),一个broker里可以开设多个vhost,用作不同用户的权限分离。权限控制组,用户只能关联到一个vhost上,一个vhost中可以有若干个Exchange和Queue,默认的vhost是”/” 一、通过RabbitMQ管理后台管理vhosthttp://localhost:15672/#/vho转载 2017-03-20 15:53:46 · 6625 阅读 · 0 评论 -
在Windows上安装Elasticsearch 5.2.2
Elasticsearch可以使用.zip软件包安装在Windows上。 elasticsearch-service.bat命令,它将设置Elasticsearch作为服务运行。Elasticsearch的最新稳定版在Download Elasticsearch下载,其他的版本在Past Releases page下载。Elasticsearch需要java8或者更高的Java版本。 1.下载和安装转载 2017-03-21 13:07:06 · 3258 阅读 · 1 评论 -
Elasticsearch(一)【.Net客户端介绍】
介绍您已到达Elasticsearch.Net和NEST的文档页面,Elasticsearch的两个官方.NET客户端。为什么要两个客户? Elasticsearch.Net是一个非常低级别,依赖自由的客户端,没有对如何构建和表示您的请求和响应的意见。它已经抽象得足够,以便所有的Elasticsearch API端点都被表示为方法,但没有太多,妨碍你如何构建你的json /请求/响应对象。它还内置翻译 2017-03-22 12:58:50 · 4019 阅读 · 2 评论 -
Elasticsearch(三)【.Net客户端API规范--生命周期】
生命周期如果您使用的是IOC容器,那么它总是有助于了解您的对象生命周期中的最佳实践一般来说,我们建议人们将ElasticClient实例注册为单例模式。客户端是线程安全的,所以在线程之间共享一个实例是很好的。然而,放大实际的移动部分,在应用程序的大部分时间内受益最大的是ConnectionSettings;缓存是每个ConnectionSettings。在某些应用程序中,使用不同的连接设置注册多个单翻译 2017-03-22 22:11:40 · 1757 阅读 · 0 评论 -
Solr.NET快速入门(七)【核心管理,Fluent API】
Solr核心管理命令Fluent API 相关翻译 2017-03-18 22:43:00 · 1058 阅读 · 0 评论 -
Solr.NET快速入门(八)【覆盖默认映射器,NHibernate集成】
覆盖默认映射器默认情况下,SolrNet使用属性映射Solr字段。 但是,您可能需要使用另一个映射程序。 替换默认映射器取决于您如何设置库: 内置容器如果使用默认的内置容器,可以在调用Startup.Init()之前替换它:var mapper = new MappingManager();//这里是你的映射var container = new Container(Startup.Conta翻译 2017-03-18 22:56:48 · 912 阅读 · 0 评论 -
Solr.NET快速入门(九)【多核多实例,映射验证】
多核/多实例本页介绍如何配置SolrNet访问(读/写)多个Solr内核或实例。 它假定您知道Solr内核是什么,如何在SolrNet外部配置和使用它们。 此页面不涵盖CoreAdminHandler命令。如何配置SolrNet for multicore取决于它如何集成到您的应用程序,如果您的内核映射到不同类型或相同类型。 内置容器内置容器(启动)当前仅限于访问具有不同映射类型的多个核心/实例。翻译 2017-03-18 23:06:35 · 1512 阅读 · 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 · 1561 阅读 · 0 评论 -
.Net高并发解决思路
首先在windows上安装好Redis,RabbitMQRedis-cli使用示例ModelContext.cs代码: public class ModelContext : DbContext { //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config) //连接字符串。 public Mode转载 2017-03-09 21:13:13 · 13150 阅读 · 4 评论 -
分布式锁的三种实现方式
在进行大型网站技术架构设计以及业务实现的过程中,多少都会遇到需要使用分布式锁的情况。那么问题也就接踵而至。分布式锁zk和memcached以及redis三者都能实现,同样是分布式锁,三者的区别何在?各自适用什么场景?Zookeeper1、实现原理:基于zookeeper瞬时有序节点实现的分布式锁,其主要逻辑如下(该图来自于IBM网站)。大致思想即为:每个客户端对某个功能加锁时,在zookeeper转载 2017-12-13 17:18:32 · 2216 阅读 · 0 评论 -
分布式系统事务一致性解决方案
开篇在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomicity转载 2018-03-01 14:30:43 · 404 阅读 · 0 评论 -
聊聊分布式事务
事务就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。 事务是为了保障业务数据的完整性和准确性的。分布式事务,常见的两个处理办法就是两段式提交和补偿。 两段式提交典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉大家,一起提交,大家都提交了。 补偿比较好理转载 2018-03-01 14:33:03 · 379 阅读 · 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 · 1874 阅读 · 2 评论 -
Solr.NET快速入门(五)【相似查询,拼写检查】
相似查询此功能会返回原始查询结果中返回的每个文档的类似文档列表。参数通过QueryOptions的MoreLikeThis属性定义。示例:搜索“apache”,为结果中的每个文档搜索“cat”(类别)和“manu”(制造商)字段中的相似文档:ISolrBasicOperations<Product> solr = ...var results = solr.Query(new SolrQuery(翻译 2017-03-18 21:57:01 · 1186 阅读 · 0 评论 -
Solr.NET快速入门(四)【高亮显示】
此功能会“高亮显示”匹配查询的字词(通常使用标记),包括匹配字词周围的文字片段。要启用高亮显示,请包括HighlightingParameters QueryOptions对象,其中包括要应用高亮显示的字段。示例代码:var results = solr.Query(new SolrQueryByField("features", "noise"), new QueryOptions { H翻译 2017-03-18 21:49:02 · 1302 阅读 · 0 评论 -
Elasticsearch(二)【Elasticsearch.Net基本使用】
低级客户端ElasticLowLevelClient是一个低级的,无依赖的客户端,对如何构建和表示您的请求和响应没有意见。它可以从Visual Studio中的包管理器控制台安装使用Install-Package Elasticsearch.Net连接要连接到本地运行在http://localhost:9200上的Elasticsearch就像实例化客户端的一个新实例一样简单var lowlevel翻译 2017-03-22 14:09:45 · 9275 阅读 · 2 评论 -
Elasticsearch(四)【Elasticsearch.Net之Post数据】
Post数据低层客户端允许您直接发布string 或byte[] 数组。 除此之外,如果您传递一个字符串或对象的集合,它们将使用Elasticsearch的特殊bulk/multi (批量/多)格式进行序列化。隐式转换即使在低级别客户端上PostData的参数需要PostData ,您可以依靠隐式转换来完全抽象PostData的概念。 您可以从以下类型隐式转换stringbyte[]collect翻译 2017-03-22 22:54:02 · 2589 阅读 · 0 评论 -
Solr快速入门(一)
概述本文档介绍了如何获取和运行Solr,将各种数据源收集到多个集合中,以及了解Solr管理和搜索界面。 首先解压缩Solr版本并将工作目录更改为安装Solr的子目录。请注意,基本目录名称可能随Solr下载的版本而有所不同。例如,在UNIX,Cygwin或MacOS中使用shell:/:$ ls solr *solr-6.2.0.zip/:$ unzip -q solr-6.2.0.zip/:翻译 2017-03-17 15:52:45 · 2324 阅读 · 0 评论 -
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 · 12331 阅读 · 0 评论 -
Kafka入门经典(官网翻译)
Kafka独特设计在什么地方?Kafka如何搭建及创建topic、发送消息、消费消息?如何书写Kafka程序?数据传输的事务定义有哪三种?Kafka判断一个节点是否活着有哪两个条件?producer是否直接将数据发送到broker的leader(主节点)?Kafa consumer是否可以消费指定分区消息?Kafka消息是采用Pull模式,还是Push模式?Procuder API有转载 2016-12-14 21:56:28 · 1061 阅读 · 2 评论 -
Solr.NET快速入门(三)【Faceting】
分面搜索SolrNet支持分面搜索。基本上有三种方面查询: 按字段查询 日期分面 任意分面查询分面查询通过QueryOptions的FacetQueries属性发出。 然后QueryOptions实例被传递到服务器实例。分面限制有可能,您用作分面的字段可能具有太多的值,因此您可能想要限制应显示多少个值。 为此,我们在SolrFacetFieldQuery中具有Limit属性。只需将Limit设翻译 2017-03-18 21:37:19 · 1327 阅读 · 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 · 4475 阅读 · 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 · 2799 阅读 · 0 评论 -
浅谈分布式事务
前言应用场景事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中,某些场地比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证?在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外,还得去商家账户表中找到这个商家并扣除广告费吧,怎么保证?一 本地事务以用户A转账用户B为例,转载 2018-03-01 14:35:05 · 336 阅读 · 0 评论