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