不积跬步,无以至千里


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

基于WebSocket实现微信小程序的消息推送

发表于 2017-03-18 | 分类于 后端 | | 阅读次数:

小程序端开发

微信小程序支持通过基于WebSocket进行消息推送,提供了相应的API,例如创建连接示例代码:

1
2
3
4
5
6
7
8
9
10
11
wx.connectSocket({
url: 'test.php',
data:{
x: '',
y: ''
},
header:{
'content-type': 'application/json'
},
method:"GET"
})

API详细说明可参见微信API文档,这里主要讲解服务端如何实现基于WebSocket的消息推送。

阅读全文 »

基于nginx-sticky-module-ng实现会话保持

发表于 2016-05-15 | 分类于 后端 | | 阅读次数:

方案

对服务进行集群部署,前端进行负载均衡时,需要实现会话保持,对于同一会话的多个请求,通过集群中的一个节点来提供服务。系统的部署结构如图所示,通过Resin部署Web应用提供服务,通过Nginx进行负载均衡。基于nginx-sticky-module-ng实现会话保持。

方案

阅读全文 »

ActiveMQ基于Zookeeper和LevelDB实现Master/Slave

发表于 2016-03-06 | 分类于 后端 | | 阅读次数:

方案

ActiveMQ的Master/Slave目前支持三种实现方式:

  1. Shared File System Master Slave;
  2. JDBC Master Slave;
  3. Replicated LevelDB Store。

对于第三种方式,ActiveMQ使用LevelDB持久化数据,并使用Zookeeper协调集群中各节点选举Master,如图所示:
replicated-leveldb-store

阅读全文 »

Keepalived+SSDB双主高可用

发表于 2016-03-05 | 分类于 服务器 | | 阅读次数:

方案

SSDB是一个C/C++语言开发的高性能NoSQL数据库,支持KV,list,map(hash),zset(sorted set)等数据结构,用来替代或者与Redis配合存储十亿级别列表的数据。与Redis相比,SSDB的存储基于文件,因此可以存储更多的数据,而不受限于内存的大小。在实际应用中,我们使用SSDB存储网站实时流量数据。本文主要介绍如何搭建SSDB双主,并使用Keepalived做IP漂移,使得双主对客户端透明。只要双主中有一个服务正常,客户端就可以正常读写,并保证数据不会丢失。其结构如图所示:

keepalived+ssdb

阅读全文 »

[转]分布式缓存集群方案特性、应用场景、优缺点对比及选型

发表于 2016-02-26 | 分类于 缓存/NoSQL | | 阅读次数:

原文地址

分布式缓存特性:

  1. 高性能:当传统数据库面临大规模数据访问时,磁盘I/O往往成为性能瓶颈,从而导致过高的响应延迟。分布式缓存将高速内存作为数据对象的存储介质,数据以key/value形式存储,理想情况下可以获得DRAM级的读写性能;
  2. 动态扩展性:支持弹性扩展,通过动态增加或减少节点应对变化的数据访问负载,提供可预测的性能与扩展性;同时,最大限度地提高资源利用率;
  3. 高可用性:可用性包含数据可用性与服务可用性两方面。基于冗余机制实现高可用性,无单点失效(single point of failure),支持故障的自动发现,透明地实施故障切换,不会因服务器故障而导致缓存服务中断或数据丢失。动态扩展时自动均衡数据分区,同时保障缓存服务持续可用;
阅读全文 »

Keepalived+Redis高可用主从虚IP经常漂移的问题

发表于 2016-02-23 | 分类于 服务器 | | 阅读次数:

配置

使用Keepalived+Redis搭建Redis高可用主从,其中Keepalived配置为每隔2秒执行脚本检查Redis服务是否可用:

1
2
3
4
5
vrrp_script chk_redis {
script "/usr/local/keepalived/scripts/redis_check.sh 127.0.0.1 6379"
interval 2
weight -2
}

阅读全文 »

一个简单的Dubbo示例

发表于 2016-02-15 | 分类于 后端 | | 阅读次数:

定义服务接口及其实现

服务接口TestService:

1
2
3
4
5
6
7
package com.magicwt.service;

public interface TestService {

public String greet(String name);

}

服务实现TestServiceImpl:

1
2
3
4
5
6
7
8
9
10
11
12
package com.magicwt.service.impl;

import com.magicwt.service.TestService;

public class TestServiceImpl implements TestService {

@Override
public String greet(String name) {
return "hi, " + name;
}

}

阅读全文 »

Dubbo简介与实践

发表于 2016-02-14 | 分类于 后端 | | 阅读次数:

介绍

Dubbo 是阿里开源的分布式服务框架,架构如图所示:

1

阅读全文 »

Docker简介与实践

发表于 2016-02-05 | 分类于 服务器 | | 阅读次数:

介绍

Docker是一个开源的应用容器引擎。Docker可以将应用程序及其依赖打包成镜像(Image),并在同一个服务器中启动多个容器(Container)共享操作系统内核,分别独立运行镜像(Image)。

1

阅读全文 »

基于ZooKeeper的服务注册和发现实践

发表于 2016-01-24 | 分类于 后端 | | 阅读次数:

整体架构

在分布式架构中,各模块采用多节点部署,对外提供服务,节点数量和服务地址不断会有变化,因此,对于服务调用者,需要动态获取服务地址。ZooKeeper 提供分布式协调服务,服务提供者可以将服务注册至ZooKeeper规定路径中,服务调用者再从ZooKeeper规定路径中动态发现服务,如图所示:

注册发现服务架构

阅读全文 »

12…9
magicwt

magicwt

89 日志
9 分类
49 标签
GitHub E-Mail
© 2018 magicwt
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4