mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-07 09:14:42 +08:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba5e30ae2e | ||
|
|
0b1a1d2283 | ||
|
|
7780947a96 | ||
|
|
4c169cf0bb |
@@ -43,7 +43,7 @@ func main() {
|
||||
一个origin进程需要创建一个node对象,Start开始运行。您也可以直接下载origin引擎示例:
|
||||
|
||||
```
|
||||
go get -v -u github.com/duanhf2012/originserver
|
||||
go get -v -u github.com/duanhf2012/originserver_v2
|
||||
```
|
||||
|
||||
本文所有的说明都是基于该示例为主。
|
||||
@@ -55,8 +55,6 @@ origin引擎三大对象关系
|
||||
* Service:一个独立的服务可以认为是一个大的功能模块,他是Node的子集,创建完成并安装Node对象中。服务可以支持对外部RPC等功能。
|
||||
* Module: 这是origin最小对象单元,强烈建议所有的业务模块都划分成各个小的Module组合,origin引擎将监控所有服务与Module运行状态,例如可以监控它们的慢处理和死循环函数。Module可以建立树状关系。Service本身也是Module的类型。
|
||||
|
||||
origin集群核心配置文件在config的cluster目录下,如github.com/duanhf2012/originserver的config/cluster目录下有cluster.json与service.json配置:
|
||||
|
||||
## origin配置说明
|
||||
|
||||
origin的配置文件以json格式,主要包含Discovery、RpcMode、NodeList、Service部分,具体格式如下:
|
||||
@@ -352,7 +350,7 @@ areaId, ok := mapGlobal["AreaId"]
|
||||
第一章:origin基础:
|
||||
-------------------
|
||||
|
||||
查看github.com/duanhf2012/originserver中的simple_service中新建两个服务,分别是TestService1.go与CTestService2.go。
|
||||
查看github.com/duanhf2012/originserver_v2中的simple_service中新建两个服务,分别是TestService1.go与CTestService2.go。
|
||||
|
||||
simple_service/TestService1.go如下:
|
||||
|
||||
@@ -585,7 +583,7 @@ func (ts *TestService) OnNodeDisconnect(nodeId int){
|
||||
Module创建与销毁:
|
||||
-----------------
|
||||
|
||||
可以认为Service就是一种Module,它有Module所有的功能。在示例代码中可以参考originserver/simple_module/TestService3.go。
|
||||
可以认为Service就是一种Module,它有Module所有的功能。在示例代码中可以参考originserver_v2/simple_module/TestService3.go。
|
||||
|
||||
```
|
||||
package simple_module
|
||||
|
||||
@@ -357,7 +357,7 @@ func (mp *MongoPersist) removeRankData(rankId uint64,keys []uint64) bool {
|
||||
|
||||
func (mp *MongoPersist) upsertToDB(collectName string,rankData *RankData) error{
|
||||
condition := bson.D{{"_id", rankData.Key}}
|
||||
upsert := bson.M{"_id":rankData.Key,"RefreshTime": rankData.refreshTimestamp, "SortData": rankData.SortData, "Data": rankData.Data,"ExData":rankData.ExData}
|
||||
upsert := bson.M{"_id":rankData.Key,"RefreshTime": rankData.RefreshTimestamp, "SortData": rankData.SortData, "Data": rankData.Data,"ExData":rankData.ExData}
|
||||
update := bson.M{"$set": upsert}
|
||||
|
||||
s := mp.mongo.TakeSession()
|
||||
|
||||
@@ -19,7 +19,7 @@ type RankData struct {
|
||||
Data []byte
|
||||
ExData []int64
|
||||
|
||||
refreshTimestamp int64 //刷新时间
|
||||
RefreshTimestamp int64 //刷新时间
|
||||
//bRelease bool
|
||||
ref bool
|
||||
compareFunc func(other skip.Comparator) int
|
||||
@@ -39,7 +39,7 @@ func NewRankData(isDec bool, data *rpc.RankData,refreshTimestamp int64) *RankDat
|
||||
ret.ExData = append(ret.ExData,d.InitValue+d.IncreaseValue)
|
||||
}
|
||||
|
||||
ret.refreshTimestamp = refreshTimestamp
|
||||
ret.RefreshTimestamp = refreshTimestamp
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
@@ -250,7 +250,7 @@ func (rs *RankSkip) UpsetRank(upsetData *rpc.RankData, refreshTimestamp int64, f
|
||||
//找到的情况对比排名数据是否有变化,无变化进行data更新,有变化则进行删除更新
|
||||
if compareIsEqual(rankNode.SortData, upsetData.SortData) {
|
||||
rankNode.Data = upsetData.GetData()
|
||||
rankNode.refreshTimestamp = refreshTimestamp
|
||||
rankNode.RefreshTimestamp = refreshTimestamp
|
||||
|
||||
if fromLoad == false {
|
||||
rs.rankModule.OnChangeRankData(rs, rankNode)
|
||||
|
||||
Reference in New Issue
Block a user