大型电商网站建设公司做塑料的网站
2026/4/6 5:44:35 网站建设 项目流程
大型电商网站建设公司,做塑料的网站,昆明网站建设 技术支持,网站设计视频1、它到底做了什么 Source 并行运行#xff1a;有多少个 source 并发子任务#xff0c;就把 Long 的序列切成多少段#xff08;sub-sequence#xff09;你提供一个 GeneratorFunctionLong, OUT#xff1a;把输入的 index#xff08;Long#xff09;映射成任意事…1、它到底做了什么Source 并行运行有多少个 source 并发子任务就把Long的序列切成多少段sub-sequence你提供一个GeneratorFunctionLong, OUT把输入的 indexLong映射成任意事件类型每个 subtask 内部有序但全局顺序取决于并行度parallelism一句话Flink 负责发 index你负责把 index 变成事件。2、最小可跑示例生成 0~999 的字符串importorg.apache.flink.api.common.eventtime.WatermarkStrategy;importorg.apache.flink.api.common.functions.GeneratorFunction;importorg.apache.flink.api.common.typeinfo.Types;importorg.apache.flink.connector.datagen.source.DataGeneratorSource;importorg.apache.flink.streaming.api.datastream.DataStreamSource;importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;publicclassDataGenDemo{publicstaticvoidmain(String[]args)throwsException{StreamExecutionEnvironmentenvStreamExecutionEnvironment.getExecutionEnvironment();GeneratorFunctionLong,Stringgeneratorindex-Number: index;longnumberOfRecords1000;DataGeneratorSourceStringsourcenewDataGeneratorSource(generator,numberOfRecords,Types.STRING);DataStreamSourceStringstreamenv.fromSource(source,WatermarkStrategy.noWatermarks(),Generator Source);stream.print();env.execute(datagen-demo);}}要点并行度为 1 时输出是严格Number: 0到Number: 999顺序并行度 1 时每个 subtask 内部仍然按序但不同 subtask 的结果交织输出3、限速控制总吞吐全局每秒不超过 N 条importorg.apache.flink.api.common.functions.GeneratorFunction;importorg.apache.flink.api.common.typeinfo.Types;importorg.apache.flink.connector.datagen.source.DataGeneratorSource;importorg.apache.flink.connector.datagen.source.RateLimiterStrategy;GeneratorFunctionLong,Stringgeneratorindex-Number: index;DataGeneratorSourceStringsourcenewDataGeneratorSource(generator,Long.MAX_VALUE,RateLimiterStrategy.perSecond(100),// 全部 source subtasks 加起来 100 条/sTypes.STRING);适用场景你想模拟“上游流量”但又不想把本机打爆做算子性能对比、Backpressure 观察、checkpoint 行为观察4、有界/无界它“永远是 bounded”但可以“看起来无界”语义上永远是 bounded理论上会结束但numberOfRecords Long.MAX_VALUE基本等同“不会结束”实践上像 unbounded建议要跑有限数据考虑 BATCH mode更贴近离线回放要模拟持续输入用Long.MAX_VALUE rate limit5、容错语义at-least-once / end-to-end exactly-once 能不能保证可以但有个硬条件GeneratorFunction必须对输入 index 完全确定性也就是同一个 index 永远生成同样的输出。反例会破坏确定性random()、System.currentTimeMillis()、读外部可变配置、读网络请求结果正确做法用 index 推导数据例如 hash(index) 生成用户、金额、状态或者用固定 seed 的伪随机new Random(index)每个 index 固定6、Watermark也可以在 Source 侧发“确定性水位线”默认例子用noWatermarks()但你完全可以在生成事件里带 eventTime配合自定义WatermarkStrategy生成 deterministic watermarks适合做 event-time 窗口、乱序、迟到数据的测试演示。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询