自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 收藏
  • 关注

转载 Nodejs安装

Nodejs支持跨平台运行,基本可以运行于所有的操作系统,对应不同的操作系统,安装方式也不同。Nodejs的官方网站:https://nodejs.org 对应的中文网站:http://nodejs.cn/倾向于英文网站,中文网站毕竟会有很大的延迟。Windows系统的安装:不再赘述。下载对应安装包,下一步下一步就可以。如果windows都不会安装,那也没必要学习nod...

2019-09-25 17:27:00 149

转载 RabbitMQ 高可用之镜像队列

如果RabbitMQ集群只有一个broker节点,那么该节点的失效将导致整个服务临时性的不可用,并且可能会导致message的丢失(尤其是在非持久化message存储于非持久化queue中的时候)。可以将所有message都设置为持久化,并且使用持久化的queue,但是这样仍然无法避免由于缓存导致的问题:因为message在发送之后和被写入磁盘并执行fsync之间存在一个虽然短...

2018-12-28 11:19:00 276

转载 HAProxy 参数配置

RabbitMQ集群部署完成,通过HAProxy反向代理来提供统一的对RabbitMQ的访问入口。1.Haproxy提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。(负载均衡策略有很多:轮询、加权轮询、源地址哈希、最小连接数等等)2.为什么使用集群?面对大量业务访问、高并发请求可以使用高性能的服务器来提升RabbitMQ服务的负载能力。当单机容量达到极限时,采取集...

2018-12-27 19:26:00 402

转载 RabbitMQ 3.6.1 升级至 3.7.9 版本(Windows 升级至Centos)

随着公司业务量的增加,原本部署在Windows服务器的RabbitMQ集群(3.6.1)总是出现莫名其妙的问题,经查询官方Issue,确认是RabbitMQ 3.6.1 版本的bug。查看从3.6.1 版本至 3.7.9 版本的变更日志,可以发现RabbitMQ官方修复了不少bug,本着版本越新 bug相对越少且 新版本修复了当前我们经常遇到的版本bug,因此我们决定将其中一个M...

2018-12-25 17:46:00 522

转载 centos安装RabbitMQ 3.7.9 (使用RPM)

上篇我们提到不使用RPM安装RabbitMQ 3.7.8,其实我个人更倾向不使用RPM安装RabbitMQ,因为可以控制安装位置及设置参数。存在即合理,使用RPM安装RabbitMQ,可以减少配置参数的烦恼,使用RPM之前建议先通过不使用RPM的方式安装,以便了解各种参数及其含义。安装RabbitMQ仍旧分为Erlang安装及RabbitMQ安装两步。说明:使用在线方式进行安...

2018-12-24 15:45:00 212

转载 Java字符串操作及与C#字符串操作的不同

每种语言都会有字符串的操作,因为字符串是我们平常开发使用频率最高的一种类型。今天我们来聊一下Java的字符串操作及在某些具体方法中与C#的不同,对于需要熟悉多种语言的人来说,作为一种参考。进行诫勉首先,什么是字符串?字符串是字符的序列,是作为一种对象而存在。说的直白点,字符串就是一些字符的组合,从而构成字符串,例如“abc”就是字符串,"郭志奇"也是一种赐福穿。我们知道,Ja...

2018-12-03 23:39:00 156

转载 RabbitMQ 惰性队列Lazy Queue

RabbitMQ 队列分为几种类型,按照不同维度来分,可以分为排他性队列、普通队列、延迟队列、惰性队列、发布订阅队列等。今天我们讨论的主角是惰性队列 Lazy Queue。众所周知,队列可以存储消息并实现消息收发,这应该是消息队列中最重要的功能之一。我们使用消息队列有几个优势,解耦、高效、发完不管、高可用。上一篇我们聊了RabbitMQ的镜像队列机制,镜像队列是高可用实现的一个有...

2018-12-02 11:44:00 558

转载 RabbitMQ 发布订阅

互联网公司对消息队列是深度使用者,因此需要我们了解消息队列的方方面面,良好的设计及深入的理解,更有利于我们对消息队列的规划。当前我们使用消息队列中发现一些问题:1、实际上是异步无返回远程调用,由发布者定义队列,消费者订阅已定义的队列。2、并没有体现解耦设计,而且开发人员间依然要像单体项目开发那样针对同一个功能不断沟通交互,提高了开发时间以及成本。3、没有消息版本的实...

2018-11-15 14:42:00 127

转载 Centos 7安装RabbitMQ 3.7.8版本(单机版)-不使用RPM

RabbitMQ是目前非常热门的消息中间件,凭借其高可靠、高扩展、高可用及丰富的功能特性:TTL、死信队列、延迟队列、优先级队列、消息持久化、镜像队列。消息中间件是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,能在不同平台之间进行通信,常被用来屏蔽各种平台及协议之间的特性,实现应用程序之间的协同,其优点是在于能够在客户和服务器之间提供同...

2018-11-15 03:08:00 156

转载 Java基础之数据比较Integer、Short、int、short

基础很重要,基础很重要,基础很重要。重要的事情说三遍,。今天聊一聊Java的数据比较,这个范围比较大,基础类型的比较、引用类型的比较。前提:1、Java和c#都提供自动装箱和自动拆箱操作,何为自动装箱,简单点说就是将值类型转换成为引用类型,自动拆箱就是将引用类型转换成为值类型。并且我们还经常被教导,要避免自动的装箱和拆箱操作,因为这个会影响性能。2、比较常用的运算符是==...

2018-11-11 21:25:00 839

转载 Java 控制语句:循环、条件判断

基础很重要,基础很重要,基础很重要。重要的事情说三遍,。 程序设计中的控制语句主要有三种:顺序、分支和循环。我们每天写的代码,除了业务相关,里面会包含大量的控制语句。但是控制语句的基本使用,是否有些坑我们需要避免,以及一些常见的规范我们是否遵守了呢,我们来简单复习一下。 控制语句包含:1、分支语句:if和switch2、循环语句:while、for、do...

2018-11-09 21:51:00 553

转载 RabbitMQ 延时消息设计

问题背景所谓"延时消息"是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费。场景一:客户A在十二点下了一个订单,我想半个小时后来检查一下这个订单的付款状态,根据付款状态来作下一步的处理。 a. 针对场景一,建议采用方案数据库保存+schedule的方式也许更合适。场景二:mdc系统更新了一个A信息,我要通知给A门店信息发生...

2018-11-08 15:01:00 108

转载 RabbitMQ TroubleShooting

RabbitMQ是一款优秀的消息队列中间件,提供了稳定、监控完善的产品,但是软件就会有bug。为了前进路径可以畅通,我们必须了解出现的一些故障的快速处理方式,毕竟在生产环境,时间就是生命,尽快的处理是避免产生事故的最有效方式。了解常见的一些故障,我们可以有针对的处理预案,快速、高效的处理故障,更好的运维是我们一直的追求。查看故障信息,RabbitMQ出现故障,要通过一些有效途径...

2018-10-28 22:03:00 382

转载 RabbitMQ 发布订阅-实现延时重试队列(参考)

RabbitMQ消息处理失败,我们会让失败消息进入重试队列等待执行,因为在重试队列距离真正执行还需要定义的时间间隔,因此,我们可以将重试队列设置成延时处理。今天参考网上其他人的实现,简单梳理下消息延时重试执行的思路。消费失败后,自动延时将消息重新投递,当达到一定的重试次数后,将消息投递到失败消息队列,等待人工介入处理。在这里我们一步一步实现一个带有失败重试功能的发布订阅组件,使用该组...

2018-10-28 15:00:00 341

转载 RabbitMQ 基础概念

1、消息队列种类繁多,例如RabbitMQ、ActiveMQ、ZeroMQ、Kafka等,消息队列的使用场景主要有:异步处理、应用解耦、流量消峰及消息通讯等。RabbitMQ是采用Erlang语言、基于AMQP(Advanced Message Queue Protocol 高级消息队列协议)的开源实现。2、RabbitMQ是一个消息代理,它的工作就是接收和发送消息。消息生产...

2018-08-20 13:21:00 116

转载 RabbitMQ 优先级队列-为队列赋权

RabbitMQ 消息收发是按顺序收发,一般情况下是先收到的消息先处理,即可以实现先进先出的消息处理。但如果消息者宕机或其他原因,导致消息接收以后,未确认,那么消息会重新Requeue到队列中,就打破了消息的顺序处理原则。如果我们有一个优先级特别高的消息需要处理,有没有特权呢?答案是在不搞小动作的情况下是没有,即所有消息的优先级都是一样,按照顺序排队处理。 如果某个消...

2018-08-08 14:10:00 238

转载 HAProxy 日志输出及配置

正所谓,没有软件敢说没有bug,人无完人,software is not perfect software。是软件就可能存在bug,那么如果出现bug,我们就要分析对我们业务的影响及可能如何避免bug的再现。HAProxy也不例外,也可能在特殊场景下出现bug,因此我们就有必要记录下必要的日志信息。今天来聊下HAProxy的日志输出及对应参数配置。HAProxy支持两种主要的代...

2018-06-27 19:48:00 740

转载 RabbitMQ在特来电的深度应用

特来电是一个互联网公司,而且是技术领先的互联网公司。互联网公司的标配是什么?答案就是缓存+MQ。没错,您没看错,就是MQ--消息队列,我们今天要讨论的RabbitMQ就是消息队列中功能非常强大的一种。那么RabbitMQ在特来电是如何应用的呢?这就是今天这篇博文的目的,让您连接RabbitMQ在特来电的深度应用!1.一张图看懂MQ的地位 RabbitMQ具有和关系型...

2018-06-04 02:19:00 105

转载 我们真的会使用单例模式吗?

这篇博客的标题用了一个疑问句,源于我们公司的代码评审,深刻的讨论了单例模式的使用场景及其与静态方法来说有何不同,这次讨论确实让我真正的理解了单例模式的使用,虽然说理解还一定全面,但必须作为一个认知的提升。告诉了我自己,对于编程,不懂的太多,原理性的东西还需要持续的学习。进入正文,我们来讨论一下,什么是单例模式,何时使用单例模式?单例模式是经典设计模式的一种,熟悉设计模式或者说读过...

2018-04-17 00:13:00 90

转载 RabbitMQ 发布订阅持久化及持久化方式

RabbitMQ是一种重要的消息队列中间件,在生产环境中,稳定是第一考虑。RabbitMQ厂家也深知开发者的声音,稳定、可靠是第一考虑,为了消息传输的可靠性传输,RabbitMQ提供了多种途径的消息持久化保证:Exchange持久化、Queue持久化及Message的持久化等。以保证RabbitMQ在重启或Crash等异常情况下,消息不会丢失。RabbitMQ提供了简单的参数配置来实现持...

2018-03-30 22:06:00 388

转载 Angular2 路由问题修复 、求解

Angular2 提供了比angular1 更为强大的路由功能,但是在具体使用路由过程中,可是出现了很多路由不按照预想的方式执行的问题。为了说明今天的问题,我特地新建了一个测试工程。欢迎交流。首先介绍一下测试代码的组织结构,其中包含两个组件:button、accordion。这个例子采用的是ng2-bootstrap.我展示一下路由配置: 1 /**...

2017-02-28 22:37:00 53

转载 angular2 问题请教

angular2 通过http服务进行对后端api的远程调用?我简单的尝试了一下,发现了几个问题,记录一下,以方便查找问题。angular2 http服务的跨域问题?跨域本身就是一个很复杂的问题,angular2对跨域的处理。angular2 如果在providers中加入http服务会出现什么问题?promise http服务会强迫我们使用Observerable,...

2016-11-29 23:38:00 60

转载 Angular2 小贴士 RouterLink 导航

AngularJS的路由一直是学习的一大难点,我们只能边看边学边掌握,边看边学边推翻。今天我们来看一下在angular2中通过routerLink实现导航的几种方式,以及各自的优缺点。Angular2的路由模块来自@angular/router,这不包含在angular2的核心模块中。所以如果我们想要学习angular2的路由功能,必须导入该模块。我们自己的最佳实践就是不断的推翻...

2016-11-28 00:26:00 174

转载 Angular2 小贴士-多级注入器

angular2 的依赖注入包含了太多的内容,其中的一个重点就是注入器,而注入器又非常难理解,今天我们不深入介绍注入器的内容,可以参考官方文档,我们今天来说注入器的层级。也就是组件获取服务的容器会选择具体哪一个。先简单介绍一个背景:有3个组件AppComponent 根组件、DetailList组件 ( 日志列表组件)、Detail组件( 日志组件)。这三个组件会形成一个...

2016-10-29 17:10:00 91

转载 Angular2 小贴士 NgModule 模块

angular2 具有了模块的概念,响应了后台程序的号召,高内聚 低耦合。模块就是用来进行封装,进行高内聚 低耦合的功能。其实各人认为ng2 的模块和.net的工程类似,如果要使用模块中定义的功能,第一步就是必须要引用它,ng2 中叫import 导入。那么我们看模块是否有层级概念呢,至少目前来看,模块都是平级的,没有主子之分。如何定义模块呢? 1 import {...

2016-10-19 01:48:00 92

转载 Angular2 小贴士 Name

Angular2 正式版已经发布了一个月了,我也是通过各种方式在进行验证是否可以满足我们的需求,今天我就发现了一个问题。现在我们来一起说明一下,这个可能不算是bug,而应该需要我们记住就可以了。我们现在需要对标题赋值,动态改变标题。不废话,直接上代码。App.module.ts 代码 1 import { NgModule, enableProdMode } from '...

2016-10-15 13:36:00 62

转载 应该是Angular2的一个bug?

为了应对未来的趋势,及时赶上下一趟互联网技术,我最近也在通过具体项目研究angular2,首先必须要吐槽的是,学习angular2的成本本身不高,但是一堆的工具、配置实在让人 很是焦灼,就像asp.net core一样,所有的东西都在向同样的方向迈进:尽量使用已经造好的轮子,而不是自己再弄一个。 当然,统一是好的,但是对于对前端不是太敏感的我来说,还是挑战不小,这就...

2016-09-25 22:02:00 73

转载 asp.net core 依赖注入问题

最近.net core可以跨平台了,这是一个伟大的事情,为了可以赶上两年以后的跨平台部署大潮,我也加入到了学习之列。今天研究的是依赖注入,但是我发现一个问题,困扰我很久,现在我贴出来,希望可以有人帮忙解决或回复一下。 背景:我测试.net自带的依赖注入生命周期,一共三个:Transient、Scope、Single三种,通过一个GUID在界面展示,但是我发现scope和...

2016-09-05 23:28:00 115

转载 亲们,委托你们是否已忘记

委托和事件是.Net 框架的重要组成部分,在GUI程序开发中,大量使用了事件处理,但是亲们,对于委托,我们是否还记得曾经在书上看到的详细内容。委托的使用注意事项是什么?我们会使用委托和事件,但是我们不了解事件背后的原理,亲们,我们忘记委托了吗?反正我是忘记了。 委托是方法调用的指针,也称为函数指针,是一种特殊的对象类型,包含的是方法的地址。注意是地址,在.Net 中,委托不...

2014-12-11 23:17:00 58

转载 关于单例模式的心结

今天重构公司的代码,看到有一个单例的对象,在整个系统中到处都存在调用它的身影,因为我们这个项目会在应用服务器(server)第一次启动的时候加载数据库中的代码表(为什么要先加载,因为这个项目采用的是C/S模式,利用remoting进行通信,在客户端启动的时候会多次获取代码表中的不同数据。) 1 public class CodeTableSingleTon 2 { ...

2014-11-18 00:53:00 42

转载 Autofac 的属性注入,IOC的坑

Autofac 是一款优秀的IOC的开源工具,完美的适配.Net特性,但是有时候我们想通过属性注入的方式来获取我们注入的对象,对不起,有时候你还真是获取不到,这因为什么呢?1.你对Autofac 不太了解,在这个浮躁的社会,没有人会认真的了解每个开源项目,只要求能用就行2.没有时间了解,你是一个很忙的人,工作很忙,应酬很忙3.刚开始使用Autofac 还没来得及深入了解就要...

2014-11-08 22:31:00 613

转载 EF 的 霸气配置,秒杀一切

通过EF 作为操作数据库的工具有一段时间了,也做了几个相对不大的项目,慢慢的也对EF的使用摸索出来了一些规则,虽然说不是技术难点,但是,我说的是但是,能够提高我们开发效率的棉花糖有时我们还是必须要吃的,因为他确实很甜很甜。现在Ef已经更新到6.1.1了,从原来的5.0 到现在也不过是短短的一年多,所以说Ef的生命力还是很强的。什么 你要我对比一下EF和NHibernate的优缺点...

2014-10-26 00:53:00 112

转载 Service-stack.redis 使用PooledRedisClientManager 速度慢的原因之一

现在越来越多的开发者使用service-stack.redis 来进行redis的访问,但是获取redisclient的方式有多种方式,其中有一种从缓冲池获取client的方式很是得到大家的认可。 1 List<string> listWrite = new List<string>() { "[email protected]:6380" }; ...

2014-10-14 15:55:00 366

转载 serviceStack.Redis 在PooledRedisClientManager 中设置密码

ServiceStack.Redis 是一个C#访问Redis的客户端,可以说可以通过它实现所有需要Redis-Cli的功能。但是今天我在主Redis 实例设置了访问密码,而在slave 上没有设置,我通过一个缓存工厂来获取连接。在redisClient实例化可以直接设置密码。 1 /// <summary> 2 /// 缓存客户端管理器工厂 3 ...

2014-10-14 15:35:00 472

转载 asp.net MVC 回顾 Html.ActionLink

在asp.net MVc中想生成一个超链接有很多种方式,通过直接输入<a>、Html.ActionLink、Html.RouteLink等等,今天我们要阐述的就是Html.ActionLink 知识点总结。@Html.ActionLink有10个重载,示例代码说明@Html.ActionLink("LinkText","ActionName...

2014-08-11 22:34:00 99

转载 asp.net MVC helper 和自定义函数@functions小结

asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率。但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们的开发效率,减少开发bug的出现。 Razor 采用的是@ 尾巴符号,正是这个符号成就了Mvc开发效率的提升。下面了解一下和@相关的两个可以重用的helper、functions。...

2014-08-11 16:20:00 149

转载 谈谈asp.net MVC中的AppendTrailingSlash以及LowercaseUrls ,你还记得吗?

asp.net MVC是一个具有极大扩展性的框架,可以在从Url请求开始直到最终的html的渲染之间进行扩展,所以要学好还是需要了解框架的运行原理,推荐Artech. 今天我们回忆的不是MVC中的filter,也不是Controller的激活或者是Action的执行,或者是Url路由RouteData的生成,我们来回忆的是RouteTable.Routes ,即全局路...

2014-06-12 13:49:00 110

转载 c#静态构造函数 与 构造函数 你是否还记得?

构造函数这个概念,在我们刚开始学习编程语言的时候,就被老师一遍一遍的教着。亲,现在你还记得静态构造函数的适用场景吗?如果没有,那么我们一起来复习一下吧。静态构造函数是在构造函数方法前面添加了static关键字之后形成的,并且没有修饰符(public,private),没有参数。静态构造函数有哪些特点呢:静态构造函数没有修饰符修饰(public,private),因...

2014-06-07 17:52:00 109

转载 entity framework 删除数据库出现错误的解决方法--最土但是很有效的方法

无法删除数据库,因为该数据库当前正在使用。1 public ChinaerContext()2 : base("name=ContextConn")3 {4 // Database.SetInitializer<ChinaerContext>(null);5 Da...

2013-08-20 01:04:00 128

转载 wcf系列之服务契约ServiceContract 之操作重载

在C#中存在方法重载,我们可以定义相同方法名但是参数类型或者个数不同,从而实现方法的重载功能。在wcf中,如果能够实现方法重载,那么我们就可以传递不同类型的数据,让服务返回不同的结果。这真是一个不错的主意,但是wcf能够实现方法重载吗?我们先简短的思考一下:wcf服务和客户端通过soap消息(也就是xml数据)进行交互,soap消息会包含参数类型以及返回值类型,还有方法名,客户端或服...

2013-04-15 23:22:00 158

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除