社区首页 >问答首页 >是否有可能让NServiceBus中的一个端点使用与其他端点不同的序列化程序?

是否有可能让NServiceBus中的一个端点使用与其他端点不同的序列化程序?
EN

Stack Overflow用户
提问于 2013-04-08 19:16:45
回答 2查看 329关注 0票数 2

与:NServiceBus端点是否可以使用不同的序列化程序来处理和发布?有关

我们已经在基础设施中部署了广泛的NServiceBus,并且都是使用XmlSerializer进行配置的。然而,出现了一个一次性的情况,即XmlSerializer不能满足我们的需求,所以我考虑JsonSerializerBinarySerializer

将整个基础结构中的每个端点更改为使用不同的序列化程序将极大地干扰和浪费部署时间,但我很难找到如何引入一个使用不同序列化程序的新端点.或者说,很容易将端点本身配置为使用备用序列化程序,但我不知道如何才能让其他端点与其对话。

如果我使用的是NServiceBus 3.x,那么在整个体系结构中使用的序列化程序类型是否会被困住呢?我似乎记得有一次在NServiceBus留言板上读到,序列化可以在端点级别定义,但是没有给出多少细节,写这个答案的人可能忽略了上面明显的互操作问题。

我希望这个建筑看起来像这样:

代码语言:javascript
代码运行次数:0
复制
+---------+      +------------+ (pub/sub) +------------+
| Web App |----->| Endpoint A |<--------->| Endpoint B |<-------> ...
+---------+      +------------+           +------------+
     |               (XML)                     (XML)
     |
     |           +------------+
     +---------->| Endpoint C |
                 +------------+
                     (JSON)

当然,问题是,虽然我显然可以将端点C配置为只使用JsonSerializer (并同意这样做),但"Web“仍然需要有自己的(仅发送)总线,才能与端点A或端点C进行通信,并且必须使用一个序列化程序来配置该总线。由于它已经向多个XmlSerializer-based端点发送了消息,所以我不能仅仅将其切换到JsonSerializer。我无法在配置或文档中找到指示NServiceBus以不同方式序列化某些消息的方法,无论是在消息级别还是在端点级别。我甚至不确定NSB 4/5中的更改在技术上是否支持这一点,因为它们都围绕着消息的接收方式,而不是发送方式。

是否有一种配置方法或设置允许我这样做?如果没有,还有哪些其他明智的选择?也许在Web应用程序中托管两个端点?或者是委托给其他序列化程序的自定义序列化程序?

EN

回答 2

Stack Overflow用户

发布于 2013-04-09 12:54:29

您可以在NSB管道中使用传输级别讯息突变体。这种突变在处理过程中可能发生得太晚,但值得一看。否则,您将需要实现自定义序列化程序,就像您提到的那样,以处理所有不同的格式。

另一个想法是打开所有端点的网关。这将使您深入到所有端点上的HTTP,我希望这将解决这个问题。再一次,我没有证实这一点,只是提出了一些想法。

票数 1
EN

Stack Overflow用户

发布于 2017-08-09 04:52:16

从NServiceBus的第5版开始,我们已经为这个场景添加了一些基本支持,但是最近版本6已经完成了很多。

您可以在这里找到更多有关它的信息:

https://particular.net/blog/build-a-babel-fish-nservicebus

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15892679

复制
相关文章
应用容器云:接过Java EE的枪
主要大纲: 一、回顾Java EE的发展 二、揭露Java EE的根本性缺陷 三、从Java EE的角度看应用容器云 四、对未来的展望 老实说,今天的观点如果放在一年前,我不大敢讲,会比较有争议。最近
yuanyi928
2018/04/02
8540
应用容器云:接过Java EE的枪
在Java EE7框架中使用MongoDB
中心点创建应用程序的执行在企业环境中,应用程序必须安全、便携和高可用性。它还必须能够与不同的系统交互,但可控的从一个最好的位置。JEE7合并是一个重要的框架的所有特性,它的工作原理很无缝地与MongoDB。本文在创建一个Web应用程序使用MongoDB的手放在存储。 这种安排是…… 这是一个简单的、精益的CRUD应用程序,或者它的一部分,使用一些EJB和JSF JEE7的中坚分子。这个想法是为了使复位候选人在MongoDB,搜索需要的候选人根据技能人,也可以从数据库中删除一个特定候选人。 你需要什么… JE
用户1289394
2018/02/27
1.1K0
在Java EE7框架中使用MongoDB
Lxcfs在容器集群中的使用
背景:我们知道在k8s 的pod 内,使用top/free/df等命令,展示的状态信息是从/proc目录中的相关文件里读取出来的,这些文件默认是读取pod所在节点主机对应文件的数据。
keepyan
2020/03/06
2.8K0
Lxcfs在容器集群中的使用
java ee简介_Java EE 简介
JavaEE 的诞生是为了解决传统 C/S 架构的弊端:客户端臃肿庞大,扩展性差等弊端。 JavaEE 将传统的两层结构细分为了四层。
全栈程序员站长
2022/09/08
1.2K0
将Java EE应用程序部署到Docker Swarm集群
Techeek
2018/01/04
1.9K0
将Java EE应用程序部署到Docker Swarm集群
将Elasticsearch直接连接到Java EE应用程序
时髦的大数据来自3 V:音量,种类和速度。卷是指数据的大小,品种是指不同类型的数据,而速度是指数据处理的速度。为了处理持久性大数据,NoSQL数据库可以更快地写入和读取数据。但由于数量众多,搜索引擎需要查找没有大量计算机能力且耗费太多时间的信息。搜索引擎是一种旨在搜索信息的软件系统; 这种机制使用户获得他们想要的信息变得更加直接和清晰。
February
2018/11/14
1K0
将Java EE应用程序部署到Docker Swarm集群
Docker Swarm 为Docker提供本地集群。Docker Swarm 0.2.0版本的集群 提供了Docker Swarm 的基本介绍,以及如何创建一个简单的具有三节点的集群。作为复习,在这里展示一下Docker Swarm的关键组件:
李志伟
2019/12/17
1.3K0
将Java EE应用程序部署到Docker Swarm集群
将Java EE应用程序部署到Docker Swarm集群
Docker Swarm为Docker提供本地集群。 使用Docker Swarm 0.2.0的集群一文提供了对Docker Swarm的基本介绍,以及如何创建一个简单的三节点集群。作为一个回顾,Docker Swarm的关键组件如下所示:
lemoon1993
2018/01/10
2.5K0
在容器中使用 Java 的资源分配准则
如果说在容器中运行 Java 应用有一条核心定律,那么就是:对于在容器中运行的 Java 进程,不要手工设置 JVM 堆内存。相反的,设置容器的限制。
Java帮帮
2019/11/25
1.5K0
JAVA EE 开发中 常用的API包
API  常见的几个类:lang/util/io/math/net awt --------         用于创建用户界面和绘制图形的所有类。 util ------  包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类                 (字符串标记生成器、随机数生成器和位数组)。 net-------         为实现网络应用程序提供类 lang------         为java编程提供基础类 io  --
用户1220053
2018/02/09
1.1K0
使用JavaMelody监控Java EE应用
JavaMelody的目标是监控QA环境或者生产环境Java或者Java EE应用。JavaMelody不是一个模拟用户请求的工具;它是一个用于对应用上的真实操作进行衡量和和计算统计的工具,这些真实的操作取决于用户在应用上的使用情况。
孟君
2019/10/22
1.1K0
使用JavaMelody监控Java EE应用
Java中的容器
在Java中有常用的三种类型的容器,分别是List 、Map、Set,基于这个三个基本的类型,派生出很多其它的类型,具体关系如下:
付威
2018/12/05
1.8K0
Java中的容器
使用容器进行应用程序路由
本文收录在DZone的容器编制与部署指南中。点击此处阅读更多富有洞察力的文章、行业统计数据等内容!
Techeek
2018/01/15
9160
在Java Project(不是J2EE)中使用freemarker2.3.24
1、从官网下载freemarker的binary release,下载得到的是压缩包,解压后,文件夹里有需要的freemarker.jar文件(只需要这个jar文件,这不像spring或者hibernate等需要很多jar文件),之后将这个freemarker引入到项目中。
克虏伯
2019/04/15
4310
在Java Project(不是J2EE)中使用freemarker2.3.24
浅谈Linux SECCOMP安全机制在容器中的使用
简单的文件复制代码,当seccomp功能打开的时候,代码执行到25行“open(argv[1], O_RDONLY)”时就会 退出,如图:
CNCF
2021/03/15
7.1K0
在java中使用SPI创建可扩展的应用程序
什么是可扩展的应用程序呢?可扩展的意思是不需要修改原始代码,就可以扩展应用程序的功能。我们将应用程序做成插件或者模块。
程序那些事
2020/08/27
1.5K0
在java中使用SPI创建可扩展的应用程序
Java中容器的遍历
当我们用增强for循环遍历非并发容器(HashMap、ArrayList等),如果修改其结构,会抛出异常 ConcurrentModificationException,因此在阿里巴巴的Java规范中有说到:不要在foreach循环里进行元素的remove/add操作,remove元素请使用Iterator方式。,但是不是真的就不可以在增强for循环中修改结构吗?其原理又是什么呢?
健程之道
2019/11/03
8250
在Docker中开发Java 8 Spring Boot应用程序
在Docker中开发Java 8 Spring Boot应用程序
Nikoace
2018/01/03
2.8K0
使用Docker容器化FastAPI应用程序
在构建和部署应用程序时,Docker 容器化已成为一种常见的做法。通过将应用程序和其依赖项打包在一个独立的容器中,可以轻松地在不同环境之间移动和部署应用程序,同时确保其依赖项的一致性和可重复性。
堕落飞鸟
2023/05/08
1K0
从Java EE到Jakarta EE,企业版Java的发展历程
诞生于1995年的Java语言,年近三旬,甚至比很多同学的年龄还大得多。正所谓三十年河东,三十年河西,有人说Java已廉颇老矣,基本结构过于老套不灵活,但显示情况是它“老而不死”依旧常年霸榜,是棵常青树。
YourBatman
2021/07/14
3.8K0
从Java EE到Jakarta EE,企业版Java的发展历程

相似问题

寻找Java EE 6应用程序

13

使用Spring Pitchfork让Java EE兼容的代码在非Java EE容器中运行

24

JSTL在Java EE 6中的状态

10

EE6/Servlet容器中的HTTPS

11

如何使用Java EE 6 SDK?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文