问题标签 [eip]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用 NServiceBus 实现一个发布-订阅通道
我正在尝试使用 NServiceBus 实现发布订阅通道。根据企业集成模式一书,推送订阅频道被描述为:
Publish-Subscribe Channel 的工作原理如下:它有一个输入通道,该通道分为多个输出通道,每个订阅者一个。当事件发布到通道中时,发布-订阅通道将消息的副本传递到每个输出通道。通道的每个输出端只有一个订阅者,允许订阅者只消费一次消息。这样,每个订阅者只收到一次消息,并且消费的副本从他们的频道中消失。
霍普,格雷戈尔;伍尔夫,鲍比 (2012-03-09)。企业集成模式:设计、构建和部署消息解决方案(Addison-Wesley 签名系列 (Fowler))(Kindle 位置 2880-2883)。培生教育。Kindle 版。”</p>
有一个包含发布者和订阅者的示例:http: //docs.particular.net/samples/step-by-step/。我已经为版本 5 构建了示例解决方案。然后我在不同的命令行窗口中运行多个订阅者以查看系统的行为方式。
即使有多个订阅者,也只有一个订阅者会收到发布的事件。发布多个事件最多会导致一个订阅者处理该事件。
我找不到有关如何将 NServiceBus 配置为引用文本中定义的发布-订阅通道的任何信息。有谁知道如何做到这一点?这不支持吗?
[2016 年 2 月 2 日更新]
复制订阅者后,我没有重命名端点。这给了我想要的行为。
apache-camel - 带有 doneFileName 的 Apache 骆驼文件
我刚开始看 apache camel(使用蓝图路由),我已经卡住了。
我需要处理一组不同格式的 csv 文件。我得到 5 个带有 foo_X_20160110.csv 的文件,其中 X 指定了 csv 文件的类型并且这些文件有一个日期戳。这些文件可能非常大,因此一旦写入所有文件,就会写入“完成”文件。完成的文件名为 foo_trigger_20160110.csv。
我已经在文件上看到了 doneFileName 选项,但它只支持静态名称(我在文件名中有一个日期),或者它期望每个输入文件都有一个完成的文件。
这些文件必须以固定顺序进行,但不能保证它们以何种顺序写入输入目录。因此我需要等待完成的文件。
知道如何使用 Camel 完成此操作吗?
有什么好的骆驼书推荐吗?
apache-camel - Talend ESB 在路由中将 xml 转换为 json
有人知道如何在 Talend ESB 路由中将 xml 转换为 json 和 json 到 xml 吗?当我在 Job 中收到 rest 消息时,我可以配置“consume”和“produce”,但是如何在 Route 中执行此操作。我需要对休息消息做一些调解,所以我必须使用路由(基于内容的路由),因为 EIP 在路由中。
例子:
作为回应,我需要:
apache-camel - Apache Camel EIP 路由 - 如何停止 split()
我对以下路线有一些问题:
路线
- 接收 json 字符串并将其转换为 JSONObjects 的列表 (HashSet)。
- 将接收到的列表拆分为 json 对象。
- 根据对象内容设置对应的headers
- 根据标头将消息路由到端点1.1或端点1.2
- 将消息转换为mongodb Criteria并发送到endpoint2
- Endpoint2 根据另一个标头将消息路由到endpoint2.1 或endpoint2.2。
- Endpoint2.2 聚合所有收到的消息,对其进行处理以获取 mongodb Criteria 并将其发送到 endpoint2.1(completionSize 在步骤 2 中计算并保存在属性“endpoint22”中)。
- Enpoint2.1 聚合所有消息(CamelSplitSize)将聚合消息转换为 Query 对象并将其发送到 Repository 以检索数据。
我可以在调试器中看到有效的响应对象,但无论如何我得到一个错误:
没有为类 java.util.HashSet 找到消息正文编写器,ContentType: application/json
问题不在响应对象中,因为它与其他路由一起使用并且不包含 HashSet。
我的猜测是路由将 HashSet 创建的 tat STEP 1 发送到输出...
我的问题是:
- 路由输出有什么问题?
两个收件人列表()都尝试将消息转发到无效端点(我必须使用 .ignoreInvalidEndpoints() 以避免异常):
org.apache.camel.NoSuchEndpointException: No endpoint could be found for: org.springframework.data.mongodb.core.query.Criteria@20f55e70,请检查您的类路径是否包含所需的 Camel 组件 jar。
任何帮助将非常感激! 谢谢。
c - 缓冲区溢出:EIP 和跳转正确设置但段错误
我正在执行缓冲区溢出,方法是通过 memcpy 避免金丝雀指向指针,如此处所述。简而言之,您用堆栈中的 RET 的地址覆盖指针指向的地址。所以 memcpy-ing 到那个指针,有效地覆盖了 RET。
使用 gdb,我注入我的 NOP-sled + shellcode + address_overwrite 就好了。我可以看到 RET 位于 0xbffff52c,包含一个所需的地址 0xbffff4c0,它将落在 NOP 雪橇中。
(gdb) x /32xw $esp
0xbffff470: 0xbffff52c 0x0804a008 0x00000004 0x00000000
0xbffff480: 0x000003f3 0x08048327 0x90909087 0x90909090
0xbffff490: 0x90909090 0x90909090 0x90909090 0x90909090
0xbffff4a0: 0x90909090 0x90909090 0x90909090 0x90909090
0xbffff4b0: 0x90909090 0x90909090 0x90909090 0x90909090
0xbffff4c0: 0x90909090 0x90909090 0x90909090 0x90909090
0xbffff4d0: 0x90909090 0x90909090 0x90909090 0xeb909090
0xbffff4e0: 0x76895e1f 0x88c03108 0x46890746 0x890bb00c
(gdb)
0xbffff4f0: 0x084e8df3 0xcd0c568d 0x89db3180 0x80cd40d8
0xbffff500: 0xffffdce8 0x69622fff 0x68732f6e 0xbffff52c
0xbffff510: 0xbffff5a8 0xb7ff5990 0x0000008f 0xbffff5a8
0xbffff520: 0xb7fd1ff4 0x0804a008 0xbffff5a8 0xbffff4c0
0xbffff530: 0x0804a008 0x0804a008 0x0000008f 0x00000001
0xbffff540: 0x00000801 0x00000000 0xbfff0000 0x002001ac
0xbffff550: 0x000081a4 0x00000001 0x000004ad 0x000004ad
0xbffff560: 0x00000000 0x00000000 0xb7fd0000 0x0000008f
然而,运行这个我得到下面的错误,即使拆解显示我着陆得很好。
下面是shellcode。
... ETC。
我使用了Smashing the stack附录 B 中的 shellcode 用于 linux 系统。你能帮我理解什么是错的吗?
memory - x86 中 EIP 和其他寄存器的位置
我正在使用 x86 指令,现在我对 x86 寄存器(如 EIP、ESP 等)的存储位置感到困惑
例如,当我使用 ollydbg 时,我可以看到实际的 EIP 寄存器值是什么以及它是如何变化的。
如果它们存储在内存中,那么实际位置在哪里?(例如在 .data .text 或 .bss 中)
我可以手动更改另一个进程的 EIP 吗?如何?
java - Apache Camel - 骆驼路线的 CSRF 令牌
我很少有骆驼路线充当反向代理。IE
我想为通过这些路由传递的请求设置一个带有 CSRF 令牌的标头。最好的方法是什么?我想了几个选择。
- 引入一个拦截骆驼servlet的servlet过滤器添加这个头
- 添加骆驼弹簧安全模块并在路由中设置 CSRF 令牌头。
关于第二个选项,我不确定这在多大程度上是可行的。此外,我必须在我拥有的每条路线中添加这个令牌。请对此有所了解。如果有的话,请提供一些链接/参考。
谢谢。
eip - Omron CJ2M 通过以太网/IP 从 PC 程序读取/写入
我正在开发一个程序来将我的 PC 连接到 Omron CJ2M PLC 以发送读/写命令。
据我了解,欧姆龙 PLC 可以通过 3 种方法进行通信:
1)主机链接,
2) FINS,(TCP 或 UDP)和
3) EIP。
我这里的要求是通过 EIP 连接 CJ2M,并通过 EIP(CIP) 协议发送读/写命令。
最初 EIP 通信需要发送 2 个请求:
1) 列出服务和 2) 注册会话
注册会话返回一个句柄,该句柄应该用于通过 EIP 进行的进一步通信。
我能够成功发送列表服务、注册会话和转发打开(RR 数据),并且这些都由 Omron PLC 成功回复。这 3 个请求/响应没有问题。
现在我想知道需要使用哪个命令/服务来读取欧姆龙的内存区域(比如 DR 20 内存地址)。
我正在通过 RR 数据发送服务代码 0x4d,但它显示“供应商特定错误”,然后连接被终止。
我需要 Omron EIP 或 wireshark 日志或一些嗅探数据包的协议规范,其中通过从 PC 到 Omron PLC 的 EIP 通信捕获请求/响应(无鳍,无主机链接)。
amazon-web-services - 将公共 IP 而非 EIP 与 terraform 关联
我正在尝试将公共 IP 地址关联到我的实例而不是 EIP,但 terraform 中没有“aws_public_ip”资源。
我已经达到了 EIP 的限制,我真的不需要 EIP - 我可以利用公共 IP 地址。
这是否意味着还不能在 terraform 中附加 public_ip ?有没有人成功地使用 terraform 将公共 ip 附加到实例/接口?
谢谢
windbg - Windbg 将 EIP 设置为源行的快捷方式
我知道有一个 Windbg 键盘快捷键,它允许将当前指令指针设置为某行源代码。
例如点击Windbg中显示的一行源代码;按(忘记键盘快捷键);Windbg 将 EIP 设置为该行代码。
我忘记了快捷方式,在任何地方都找不到它的记录。