我开始从事微服务的工作,所以我做了两个Restful API。
1.组织API(GET、PUT、POST、DELETE)
1.客户API(GET、PUT、POST、DELETE)
这两个API是独立的,并且托管在本地IIS的不同端口上。
现在我想在我的主应用程序中使用它们。
因此,要求仅通过网络连接调用它们。
我发现我需要使用Rpc,gRpc或Kafka。
因此,我决定通过使用RabbitMq和EasyNetQ来使用RPC。
通过这个,我已经在docker中配置了rabbiqMq,并且它运行成功。
我不明白的是,在我的组织和客户API中有多个操作。GET、PUT、POST、DELETE
因此,我需要为这些方法定义队列名称,这样我就可以在主应用程序中使用它,方法是使用某个名称进行调用,它将直接调用该方法.
例如:
var factory = new ConnectionFactory() { HostName = "localhost" };
var connection = factory.CreateConnection();
var channel = connection.CreateModel();
var body = Encoding.UTF8.GetBytes(entity);
channel.BasicPublish(exchange: "organisations", routingKey: "organisations.add", basicProperties: null, body: body);
Where in the organisations api, I will define this organisations.add, organisations.update, organisations.search ?
我可以通过一些中介动态添加它们吗?或者我需要在rabitmq ui ..中手动添加到添加队列?
1条答案
按热度按时间1szpjjfi1#
我通常使用
IBus.Publish
来发布消息,它支持强类型,而且它会自动检测Exchange
和Queue
名称。让我们假设您有一个Message类来添加组织,如下所示:
对于向代理发布消息:
因此,您可以基于API创建多个消息,并在Mediator中使用它们。