- 浏览: 87029 次
- 性别:
- 来自: 郑州
最新评论
-
想个可以用的名字:
楼主,能不能给发一份源代码,1300246542@qqq.co ...
spring+websocket的使用 -
wahahachuang5:
web实时推送技术使用越来越广泛,但是自己开发又太麻烦了,我觉 ...
websocket -
dalan_123:
前提是你用的是spring mvc 才需要加的1、在web.x ...
spring+websocket的使用 -
string2020:
CharacterEncodingFilter这个filter ...
spring+websocket的使用
文章列表
一、内存构成
内存管理组件构成
二、扩容
一般来说当内存空间span不足时,需要进行扩容。而在扩容前需要将当前没有剩余空间的内存块相关状态解除,以便后续的垃圾回收期能够进行扫描和回收,接着在从中间部件(central)提取新的内存块放回数组中。
// 根据空间规格 获取对应的索引 再获取alloc数组中对应的span
func (c *mcache) refill(spc spanClass){
s := c.alloc[spc]
if s != &emptymspan{ s.incache = false} // 解除当前span的状态 ...
写在前面beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、st ...
一、缓存
cache模块是一个go缓存管理器,目前能够支持多种缓存方式: Memory、File、Redis、Memcached等多种缓存适配模式,整体的设计想法参考'database/sql',
二、如何使用
go get -u github.com/astaxie/beego/cache
三、代码使用
1、首先要导入cache
import (
"github.com/astaxie/beego/cache"
)
2、初始化Cache
// 初始化一个内存缓存器并提供 60s进行缓存key有效检查
bm, err := cache.NewCache(&a ...
首先从github上获取对应的源码Nacos源码git clone https://github.com/alibaba/nacos.git
使用idea打开,由于项目是使用maven进行管理的mvn clean install -Dmaven.test.skip=true
进入到module:nacos-console【由于项目是使用SpringBoot】需要进行Run/Debug Configurations注意事宜:一定要增加VM options:-Dnacos.standalone=true, 否则启动的是集群模式
关于配置application.properties 和 ...
HyperLedger Fabric基础内容-gossip
HyperLedger Fabric基础内容(续)
关于HyperLedger Fabric基础内容
关于实时消息推送系统的架构之浅见
- 博客分类:
- 架构
最近,有一个朋友问了一个问题:如何实现实时消息推送架构,当时只是说了比较笼统的概念,并没有进行深入的探讨。再加上时间比较也就没有进行一个归总。刚好今天进行一个梳理。具体内容如下
那么整体的设计如上。 ...
一、作用
主要是通过结合zookeeper,在zookeeper指定的目录下创建不同的自己 代表不同的transaction state,并赋予不同的内容;通过zookeeper完成对partitions的transaction的管理
二、源码分析
package storm.trident.topology.state;
import backtype.storm.Config;
import backtype.storm.utils.Utils;
import backtype.storm.utils.ZookeeperAuthInfo;
import org.apache.cur ...
一、作用
构建一个Rotationg transaction的state类 用于完成partition的state管理及操作
二、源码分析
package storm.trident.topology.state;
import backtype.storm.utils.Utils;
import org.apache.zookeeper.KeeperException;
import java.util.HashSet;
import java.util.List;
import java.util.SortedMap;
import java.util.TreeMap;
publ ...
一、作用
Partition Spout对应的executor
二、源码分析
package storm.trident.spout;
import backtype.storm.task.TopologyContext;
import backtype.storm.tuple.Fields;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import storm.trident.operation.TridentCollector;
...
一、作用
基于LinkedList + HashMap<K,V>实现一个循环Map
二、源码
// 通过结合LinkedList 和 HashMap 构成一个循环Map数据结构
public class RotatingMap<K, V> {
// this default ensures things expire at most 50% past the expiration time
// 默认bucket数目为3
private static final int DEFAULT_NUM_BUCKETS = 3;
...
一、作用
RichSpoutBatchExecutor是IRichSpout及其子类Spout的executor执行器;主要包括:
1、RichSpoutEmitter :用户tuple的emit
2、RichSpoutCoordinator:用于spout的调度
3、CaptureCollector: 用于获取spout的collect的field的
二、
package storm.trident.spout;
import backtype.storm.Config;
public class RichSpoutBatchExecuto ...
在jstorm中对应TridentTopology的源码如下,TridentTopology的主要作用是用来创建trident的
一、一般使用的方式如下
// 1、创建一个topology对象
TridentTopology topology = new TridentTopology();
// 2、设置相关参数: each分片、group by分组、聚合aggregate
// 返回TridentState
TridentState wordCounts = topology.newStream("spout1", spout).parallelis ...
启动ZOOPKEEPER
zkServer.sh start
启动NIMBUS
jstorm nimbus &
启动SUPERVISOR
jstorm supervisor &
启动UI
jstorm ui &
部署TOPOLOGY
jstorm jar /opt/hadoop/loganalyst/storm-dependend/data/teststorm-1.0.jar teststorm.TopologyMain /opt/hadoop/loganalyst/storm-dependend/data/words.txt
删除TOPOLOGY
jstorm kill ...