Nchan 实时消息ha 配置
下载nginx or openresty 源码同时下载Nchan 源码进行编译打包即可location 配置
      location = /sub {
          nchan_subscriber;
          nchan_channel_id $arg_id;
          nchan_use_redis on; // 关键
        } 
        location = /pub {
          nchan_publisher;
          nchan_channel_id $arg_id;
          nchan_use_redis on; // 关键
        }
redis server 配置
     nchan_redis_url "redis://127.0.0.1:6379";lb 配置
  server:
   server {
     listen 8089;
     location / {
          proxy_pass http://ws;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
     }
    }
    upstream:
    upstream ws {
       server xxxxxx:80 weight=2 max_fails=2 fail_timeout=30s;
       server xxxxxxxx:8090 weight=1 max_fails=2 fail_timeout=30s;
    }
Nchan 配置:
    参考上面的,必须在一台机器
redis cluster 版本的配置
http {
  upstream redis_cluster {
    nchan_redis_server redis://127.0.0.1:7000;
    nchan_redis_server redis://127.0.0.1:7001;
    nchan_redis_server redis://127.0.0.1:7002;
    # you don't need to specify all the nodes, they will be autodiscovered
    # however, it's recommended that you do specify at least a few master nodes.
  }
  server {
    listen 80;
    location ~ /sub/(\w+)$ {
      nchan_subscriber;
      nchan_channel_id $1;
      nchan_redis_pass redis_cluster;
    }
    location ~ /pub/(\w+)$ {
      nchan_publisher;
      nchan_channel_id $1;
      nchan_redis_pass redis_cluster;
    }
  }
} // http post data 
curl \
  -H "Content-type: application/json" \
  -d '{"name": "dalong","age":333}' \
  'http://xxxxx:8089/pub?id=demo'
// browser recived data
var ws =new WebScoket("ws://xxxxx:8089/sub?id=demo")
ws.onMessage=funciton(data){
   console.log(data)
}127.0.0.1:6379> KEYS *
 1) "{channel:/demo}"
 2) "{channel:/demo}:msg:1511175437:2"
 3) "{channel:/demo}:msg:1511175436:2"
 4) "{channel:/demo}:msg:1511175435:0"
 5) "{channel:/demo}:msg:1511175437:0"
 6) "{channel:/demo}:messages"
 7) "{channel:/demo}:msg:1511175436:0"
 8) "{channel:/demo}:msg:1511175437:3"
 9) "{channel:/demo}:msg:1511175424:1"
10) "{channel:/demo}:msg:1511175437:1"
11) "{channel:/demo}:msg:1511175436:3"
12) "{channel:/demo}:msg:1511175436:1"https://nchan.io/#channel-multiplexing
https://nchan.io/documents/nginxconf2016-slides.pdf(很不错的分享)Nchan 实时消息ha 配置的更多相关文章
- Nchan 实时消息 安全配置
		备注: 即时消息的安全对于我们来说是比较重要的,作者在设计Nchan 的时候已经考虑了 a. nchan_authorize_request (Hooks and Callbacks)可以集成 ... 
- Nchan 实时消息内置变量
		以下参考官方文档: $nchan_channel_idThe channel id extracted from a publisher or subscriber location requ ... 
- 实时消息平台NSQ的特性
		NSQ是GO语言开发的可用于大规模系统中的实时消息服务,但是和RabbitMQ等相比,它具有什么特色,什么场景下选择NSQ呢? NSQ的自身特色很明显,最主要的优势在如下三个方面: 1,性能.在多个著 ... 
- NSQ:分布式的实时消息平台
		NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub,其当前最新版本是0.3.1版.NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其 ... 
- 开源实时消息推送系统 MPush
		系统介绍 mpush,是一款开源的实时消息推送系统,采用java语言开发,服务端采用模块化设计,具有协议简洁,传输安全,接口流畅,实时高效,扩展性强,可配置化,部署方便,监控完善等特点.同时也是少有的 ... 
- Centrifugo  语言无关的实时消息服务
		Centrifugo 语言无关的实时消息服务,基于golang编写,提供了websocket 以及sockjs 的兼容处理,使用上很简单 同时也支持基于redis的扩展,以下是一个简单的运行测试 环境 ... 
- CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置
		相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ... 
- 未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~
		前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢. 之前在 <springboot ... 
- 我有 7种 实现web实时消息推送的方案,7种!
		技术交流,公众号:程序员小富 大家好,我是小富- 我有一个朋友- 做了一个小破站,现在要实现一个站内信web消息推送的功能,对,就是下图这个小红点,一个很常用的功能. 不过他还没想好用什么方式做,这里 ... 
随机推荐
- MongoDB开启安全认证
			MongoDB开启安全认证 注意 对MongoDB部署启用访问控制会强制执行身份验证,要求用户识别自己.当访问启用了访问控制的MongoDB部署时,用户只能执行由其角色确定的操作. 启用访问控制后,请 ... 
- 简述<T> 与 <?>
			引 jdk1.5以后引入了泛型的概念,即:<>,规定了集合中元素类型 比如下面代码: List list1 = new ArrayList(); List<String> li ... 
- Nim游戏与SG函数 ——博弈论小结
			写这篇博客之前,花了许久时间来搞这个SG函数,倒是各路大神的论文看的多,却到底没几个看懂的.还好网上一些大牛博客还是性价比相当高的,多少理解了些,也自己通过做一些题加深了下了解. 既然是博弈,经典的N ... 
- js中页面加载完成后执行的几种方式及执行顺序
			1:使用jQuery的$(function){}; 2:使用jquery的$(document).ready(function(){});前两者本质上没有区别,第1种是第2种的简写方式.两个是docu ... 
- oracle 修改字符集 修改为ZHS16GBK
			oracle数据库的字符集更改 A.oracle server 端 字符集查询 select userenv('language') from dual 其中NLS_CHARACTERSET 为ser ... 
- OLT配置说明
			MA5680T>enable 进入特权模式 MA5680T#config 进入配置模式 MA5680T(config)#display current-configuration sim ... 
- 026——VUE中事件修饰符之使用$event与$prevent修饰符操作表单
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- ASP.NET经典权限解决方案,适用于OA、CRM、ERP、HR等应用系统
			经典权限解决方案 1.权限简介 一般的管理系统都需要对用户的操作进行一定的限制,有的用户可以有许多操作,有的则有少量的操作.这样就需要一个授权机制,基于角色的授权机制描述了某个角色拥有一定数量的操作授 ... 
- Visual Studio编译与调用DLL方法
			参考自博客:http://www.cnblogs.com/houkai/archive/2013/06/05/3119513.html 用visual studio 2013新建win32 appli ... 
- Django中通过定时任务触发页面静态化的方式
			安装 pip install django-crontab 添加应用 INSTALLED_APPS = [ ... 'django_crontab', # 定时任务 ... ] 设置任务的定时时间 在 ... 
