溪谷游戏工作室OA系统,贴合游戏公会实际运营情况,为游戏公会/工作室提供正规、合法的游戏工作室管理解决方案。能够从管理层面帮助游戏公会改变其散乱、无序的管理状态,实现数据互连、信息互通。可根据各推广员的能力、业绩情况设置不同的薪资待遇,实现人员管理及薪资体系一套系统统一管理,避免成员流失,为游戏公会/工作室管理者提升团队运作监管能力以及工作效率。

软件特点

1.精细化权限设置

自定义多级角色设置,实现字段级的权限设置、复杂的多层级部门管理和权限控制

2.数据整合

整合多平台数据,支持获取 多平台整合数据

3.成员管理

防范工作室人员流失,大大解决公司管理问题

4.游戏管理

打通多渠道游戏资源,游戏申请高效便捷

5.渠道对接

公会可自主对接渠道或直接激活渠道

6.安全防护

OA系统闭环管理,防范随意盗取公司客户资源问题

文件:590m.com/f/25127180-497690345-47eef0(访问密码:551685)

以下内容无关:

-------------------------------------------分割线---------------------------------------------

问题描述
查阅了Azure的官方文档( 将事件发送到特定分区: https://docs.azure.cn/zh-cn/event-hubs/event-hubs-availability-and-consistency?tabs=java#send-events-to-a-specific-partition),在工程里引用组件“azure-spring-cloud-stream-binder-eventhubs”来连接EventHub发送和消费消息事件。在发送端一个For循环中发送带顺序号的消息,编号从0开始,并且在消息的header中指定了 “Partition Key”,相同PartitionKey的消息会被发送到相同的Partition,来保证这些消息的顺序。

但是在消费端的工程中消费这些消息时,看到打印到日志中的结果并不是从0递增的。所以想知道是发送端在发送时就已经乱序发送了?还是消息到达EventHub后乱序保存了?还是消费端的消费方式的问题,导致打印出的结果是乱序的?

下面是发送端的代码:

复制代码
public void testPushMessages(int mcount, String partitionKey) {
String message = "Message ";
for (int i=0; i <mcount; i++) {
source.output().send(MessageBuilder.withPayload(partitionKey + mcount + i).setHeaderIfAbsent(AzureHeaders.PARTITION_KEY,partitionKey).build());
}
}
复制代码
下面是消费端代码:

复制代码
@StreamListener(Sink.INPUT)
public void onEvent(String message, @Header(AzureHeaders.CHECKPOINTER) Checkpointer checkpointer,
@Header(AzureHeaders.RAW_PARTITION_ID) String rawPartitionId,
@Header(AzureHeaders.PARTITION_KEY) String partitionKey) {
checkpointer.success()
.doOnSuccess(s -> log.info(“Message ‘{}’ successfully check pointed.rawPartitionId={},partitionKey={}”, message, rawPartitionId, partitionKey))
.doOnError(s -> log.error(“Checkpoint message got exception.”))
.subscribe();
复制代码
下面是打印的日志

复制代码
…,“data”:“Message ‘testKey4testMessage1’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage29’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage27’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage26’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage25’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage28’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage14’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage13’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage15’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage5’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage7’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage20’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage19’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage18’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage0’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage9’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
…,“data”:“Message ‘testKey5testMessage12’ successfully check pointed.rawPartitionId=1,partition<>",“xcptn”:""}
…,“data”:"Message ‘testKey5testMessage8’ successfully check pointed.rawPartitionId=1,partition<
>”,“xcptn”:""}
复制代码
从日志中可以看到,消息确实都被发送到了同一个分区(rawPartitionId=1),但是从消息体的序号上看,是乱序的

问题分析
这个是和这个配置相关的fixedDelay,指定默认轮询器的固定延迟,是一个周期性触发器,之前代码会根据这个轮询器进行发送和接受消息的。使用Send发送的方法,现在最新的SDK 不使用这个方法,所以需要使用新的sdk 发送数据测试一下。

新sdk 参考文档您可以参考一下:https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/spring/azure-spring-boot-samples/azure-spring-cloud-sample-eventhubs-binder

SDK版本为

com.azure.spring azure-spring-cloud-stream-binder-eventhubs 2.4.0 在参考官网的示例后,使用Supplier方法发送消息,代替Send。经过多次测试,指定partitionkey 之后,发送消息是顺序发送的,消费的时候也是按照顺序消费的,下面是测试的代码和结果

发送端的代码
复制代码
// Copyright © Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.spring.sample.eventhubs.binder;

import com.azure.spring.integration.core.EventHubHeaders;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder;

import java.util.function.Supplier;

import static com.azure.spring.integration.core.EventHubHeaders.SEQUENCE_NUMBER;

@Configuration
public class EventProducerConfiguration {

private static final Logger LOGGER = LoggerFactory.getLogger(EventProducerConfiguration.class);private int i = 0;@Bean
public Supplier<Message<String>> supply() {return () -> {//LOGGER.info("Sending message, sequence " + i);String partitionKey="info";LOGGER.info("Send message " + MessageBuilder.withPayload("hello world, "+i).setHeaderIfAbsent(EventHubHeaders.PARTITION_KEY, partitionKey).build());return MessageBuilder.withPayload("hello world, "+ i++).setHeaderIfAbsent(EventHubHeaders.PARTITION_KEY, partitionKey).build();};
}

}

溪谷软件游戏工作室管理系统V2.1.0 游戏公会OA系统相关推荐

  1. 魔众Markdown管理系统v2.1.0源码

    简介: 魔众Markdown管理系统采用PHP+Mysql架构,是一款对SEO非常友好.功能全面.安全稳定.支持多终端展示并且使用起来极其简单的在线Markdown管理系统. 魔众Markdown管理 ...

  2. 易语言单窗口单ip软件源码_游戏工作室如何防封?游戏账号和IP被封的解决方法...

    现在的游戏公司,不管大的还是小的,多多少少都掌握了一些防封技术.把我们游戏打金者折腾的死去活来.关于游戏防封这方面的交流又很少,无奈!本方法除了部分不封号游戏外,还有个别疯狂封号必须让你立马死的游戏之 ...

  3. 3Dsurvey中文版(3D制图和航空影像处理软件)官方中文版V2.14.0下载

    3Dsurvey中文版是专为土地测量师以及从事相关工作的用户量身定做的一款专业且完整的一流数字化3D测量级绘图和图像处理工具,也叫3D制图和航空影像处理软件,拥有直观.用户友好的用户界面,搭载强大的3 ...

  4. 魔众文档管理系统 v4.4.0 常规优化升级 系统更稳定

    魔众文档管理支持Markdown.图表.脑图.富文本,功能全面.安全稳定,支持标签.分类,可以更好的在线管理个人文档. 魔众文档管理系统发布v4.4.0版本,新功能和Bug修复累计8项,常规优化升级 ...

  5. 易通酒店信息管理系统 v2.5 绿色

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  6. 游戏工作室的六种赚钱方法

    很多热爱游戏的人都梦想着玩游戏赚钱,随着时代的发展,现在已经可以实现这个梦想了.游戏工作室就是为游戏而生的,那么游戏工作室是怎样通过玩游戏赚钱的呢?今天小编就来讲讲游戏工作室的几种赚钱方法. 1.游戏 ...

  7. 计算机软件工作室起名'',游戏工作室起名大全

    给游戏工作室起名字,以下是猎名网精选分享的游戏工作室名字大全,来供大家作为工作室取名的参考之用,都是非常好听.霸气.有创意的好名字,希望大家能够借鉴参考,来给自己的工作室策划一个好名字. 网亿游戏工作 ...

  8. 有关计算机专业工作室的名字,独特好听的游戏工作室名字

    捷益游戏工作室 唯可游戏工作室 依之颖游戏工作室 萌薇澳游戏工作室 富亿扬游戏工作室 润凯游戏工作室 皓宇游戏工作室 龙宝游戏工作室 信达游戏工作室 塔里克游戏工作室 迪思游戏工作室 由米游戏工作室 ...

  9. 各种游戏辅助,各大游戏工作室的神器

    现在的网络游戏可以说是种类繁多,这也是因为现在小到小学生,大到老年人都有玩游戏的人群,而且这样的人群不在少数.自然而然,各大游戏工作室也油然而生. 这个游戏工作室的数量可以说是绝对不在少数,因为大家都 ...

最新文章

  1. 对口高考计算机原理,对口高考计算机原理5.doc
  2. 【Spark Summit EU 2016】摆脱传统ETL,让我们走向Spark吧!
  3. 怎样打造一个分布式数据库
  4. 前端开发中如何将文件夹中的图片变为背景图_Web中的图像技术全面总结,长文干货!...
  5. 复习Java字节流_字符流使用及案例
  6. c语言 勒让德多项式,2406: C语言习题 求n阶勒让德多项式(示例代码)
  7. C语言和设计模式(中介者模式)
  8. 查看linux文件的日期格式,5个在Linux中管理文件类型和系统时间的有用命令
  9. nand flash 读写测试
  10. 什么是PID控制中的超调
  11. uniapp本地数据库_App/uni-app离线本地存储方案
  12. 基金投资入门1:基金基础知识介绍
  13. python第六、七天作业
  14. Jupyter制作slides
  15. 织梦二级栏目title标题去掉‘/‘斜杠和以及栏目标题的方法
  16. FileWriter学习
  17. [VUE2/VUE3]基于echarts的动态折线图组件
  18. python生成统计图_用python Linux(无GUI)中生成统计图
  19. 嵌入式开发笔记——CPLD与MCU模拟SPI通信
  20. vertical-align:middle的深入理解

热门文章

  1. asp.net校园新闻管理系统毕业设计(附源码、运行环境)
  2. 几种常见的传统汽车总线传输通信技术
  3. 计算机杨梅老师,第十届全国中学生作文大赛:与杨梅老师一起走过的日子
  4. 在校大学生如何申请软著,手把手教会你(内有免费模板)
  5. C++ accumulate()用法
  6. Thebrain12官方正式版来了,Beta拜拜!
  7. input输入框非空验证
  8. 百望股份获评中国企业服务产业独角兽 赋能企业数字化变革!
  9. 基于深度学习的垃圾分类识别系统
  10. 了解Synchronzied原理一篇就够了!