Spring Cloud之容错组件Hystrix 1. Hystrix介绍1.1 初识HystrixHystrix是Netflix开源的容错框架,这是Netflix对其的简短介绍:Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party lib...
消息中间件入门解析 消息队列属于大型网站系统中间件的重要组件,主要解决了应用耦合、异步消息、流量削峰等问题,对于网站实现高性能、可伸缩的架构有很大的帮助。1. 常用的消息队列ActiveMQApache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可运行。RabbitMQRabb...
RabbitMQ集群架构搭建与高可用性实现 当你的RabbitMQ服务器遇到诸如内存崩溃或者断电等极端情况时,单节点是不能应对这些故障的。因此需要多节点集群部署来弹性应对故障。另外可以通过多节点部署,来扩展消息通信的吞吐量。1. 集群搭建首先,我们不用关心RabbitMQ的集群策略、节点类型等问题,可以先手动把RabbitMQ的集群搭建好,再一步步地了解其原理。1.1 准备两个节点搭建的详细过程就不再叙述,具体可参考Rabbi...
RabbitMQ镜像队列原理分析 对于RabbitMQ的节点来说,有单节点模式和集群模式两种,其中集群模式又分为普通集群模式和镜像队列集群模式,在《RabbitMQ集群架构搭建与高可用性实现》文中,介绍了RabbitMQ的集群创建步骤方法。而镜像队列集群模式的搭建步骤和普通集群模式是基本相同的,唯一不同的是,镜像队列集群模式,多了一步配置policy的步骤。本文主要介绍镜像队列的原理及实现。1. 创建镜像队列模式注意,到...
RabbitMQ实体关系介绍 首先认识以下RabbitMQ中的实体:1. 发布者/生产者(producer)发布消息的应用程序。2. 交换机(exchange)连接发布者和队列的中间组件。接收生产者发送的消息,并根据Bingding规则将消息发送到队列中,ExchangeType决定了Exchange路由消息的行为。3. 绑定(Binding)是一种方式,表明Exchange和Queue是如何联系的。生产者在将消...
基于消息中间件RabbitMQ实现简单的RPC服务 RPC(Remote Procedure Call,远程过程调用),是一种计算机通信协议。对于两台机器而言,就是A服务器上的应用程序调用B服务器上的函数或者方法,由于不在同一个内存空间或机器上运行,因此需要借助于网络通信。1. RPC框架我们首先通过一张图理解RPC的工作流程:因此,实现一个最简单的RPC服务,只需要Client、Server和Network,本文就是利用消息中间件R...
Intellij Idea创建基于Maven的SpringMVC+MyBatis项目 前言:SpringMVC是一款轻量级的Web开发框架,非常有利于新手上手,对于持久化层,目前可选择的是Hibernate和Mybatis,而Mybatis的学习曲线较为平整,因此本文介绍了利用Intellij Idea创建基于Maven的SpringMVC/MyBatis的项目,该项目实现了简单的用户插入和导出,其实什么项目无所谓,主要目的还是供大家掌握MyBatis和SpringMVC的实现过程
Resin4和Tomcat8容器下部署基于Maven的SpringMVC项目 Resin和Tomcat都是目前极其出色的Web容器,本文介绍了Linux环境下使用Resin和Tomcat部署SpringMVC+Maven项目。一、Resin4部署Maven项目1. 下载Resin官网下载并解压到你的Linux机器的某个目录:tar -zxvf resin-4.0.52.tar.gz2. 修改配置文件cd XX/resin-4
多客户端通信的Java套接字程序 这次设计了一个支持多客户端的通信小程序,实现服务端和客户端的实时通信,主要思想是利用Java套接字技术和线程池。服务端的程序如下:import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util
Intellij Idea 14使用Maven创建SpringMVC项目 LZ平时在学校和公司用习惯了Intellij写Java,一开始学习Java的时候用的也是Eclipse,后来接触到了这款IDE,顿时爱不释手。强大的代码补全能力,美观的UI设计,对各种项目的快速支持能力,用在其中简直难以自拔啊!安利了这么多,赶紧进入正题吧,这篇博客的科普性更强,目的是帮助Web开发的小白能快速建立自己的第一个项目。 从建项目开始吧! 首
删除链表中的重复节点 这里的删除是只要有重复就要全部删除,如1->2->2->3,删除之后就是1->3.#include#includestruct ListNode { int val; struct ListNode *next;};struct ListNode* deleteDuplicates(struct ListNode* head) { if(NULL==he
判断是否是有效的IP地址 #include#includebool isValidIp(char *s){ int len=strlen(s); int i=0; if(len<7) return false; for(i=0;i<len;i++) { if(('0'<=s[i]&&s[i]<='9')||(s[i]=='.')) continue; else return fal
用链表实现两个数相加 说明:使用链表实现两个数的和,数的高位存储在链表的头部,最后输出结果。注:使用了翻转链表的功能。#include#includestruct Node{ int value; Node *next;};Node *reverseList(Node *head){ Node *pCur=head; Node *pPre=NULL; Node *rHead=NULL; wh
插入排序/希尔排序/快速排序C语言实现 #include#include#includevoid swap(int *a,int *b){ int tmp=*a; *a=*b; *b=tmp;}void insertSort(int *a,int n){ int tmp,i,j; for(i=1;i<n;i++) { tmp=a[i]; for(j=i;j>0&&tmp<a[j-1];j--)//f
leetcode第53题-Maximum Subarray Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [−2,1,−3,4,−1,2,1,−5,4],Maximum Subarray
leetcode第38题-Count and Say The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as
leetcode第137题-Single Number II #include#includeint singleNumber(int* nums, int numsSize) { int count[32]={0}; int i,j,number=0; for(i=0;i<numsSize;i++) { for(j=0;j<32;j++) count[j]+=((nums[i]&(1<<j))!=0); } for(i=0;i
C语言 全排列 #include#include#includevoid swap(int *a,int *b){ int tmp; tmp=*a; *a=*b; *b=tmp;}void permutation(int nums[],int i,int n){ int j=0; if(i==n) { for(j=0;j<n;j++) printf("%d ",nums[
leetcode第136题-Single Number 题目要求:给出一个数组,只有一个数字出现一次,其他的都出现两次,找出那出现一次的数字,要求用线性的时间解出题目!分析:因为题目要求的是用线性时间,所以类似于那种暴力解决的方法会超时,如下面这种:int singleNumber2(int *nums,int n){ int i,j; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(nu