小编ben*_*ugh的帖子

何时不在微服务架构中使用 RabbitMQ 等消息代理?

我对 RabbitMQ 等消息代理的概念很陌生,并且想学习一些最佳实践。

RabbitMQ 似乎是促进微服务之间异步通信的好方法,但是,我有一个初学者问题,在其他地方找不到答案。

什么时候在微服务架构中不使用 RabbitMQ 等消息代理?

举个例子:

假设我有两项服务。服务A和服务B (auth服务)

客户端向服务A发出请求,服务A又必须与服务B (身份验证服务)通信以对用户进行身份验证并授权该请求。(使用基本身份验证)

           Internet                
Client ----------------> Service A +-------> Service B [Authenticate/Authorization]
         HTTP request            HTTP or AMQP??
Run Code Online (Sandbox Code Playgroud)

以我有限的理解,我可以预见在上述场景中使用 AMQP 的问题是服务A能够处理请求并在可接受的时间范围内向客户端发送响应,因为它必须等待服务 B消费并响应消息。

从本质上讲,让服务A通过 AMQP等待服务B的响应是一个坏主意吗?

或者我完全错过了 AMQP 的要点吗?

rabbitmq microservices

5
推荐指数
1
解决办法
3811
查看次数

尝试在同一视图上的文本字段之间移动后,SwiftUI 应用程序冻结,控制台中没有错误

我有一个简单的登录视图,包括两个文本字段、一个指向注册视图的导航链接、一个指向忘记密码视图的导航链接和一个登录按钮。我可以选择任一文本字段并输入文本,但是在将文本输入任一文本字段后尝试按下视图上的任何其他控件(文本字段或导航链接),只会冻结应用程序,控制台窗口中没有记录任何错误消息。

我在与旧版本 Xcode / swift 相关的其他帖子中看到,这种类型的行为可以通过在主线程上执行的连续循环来解释,但是我看不出这如何适用于我的情况?

struct LoginForm : View {

    @Binding var emailAddress :  String
    @Binding var password: String

    var body: some View{

        VStack(alignment: .leading){

            Text("Email address")
                .foregroundColor(Color.black)
                .bold()
                .font(.subheadline)
                .padding(.leading, 12)
            TextField("Email",text:$emailAddress)
                .padding()


            Text("Password")
                .foregroundColor(Color.black)
                .bold()
                .font(.subheadline)
                .padding(.leading, 12)
            SecureField("Password",text:$password)
                .padding()

        }


    }
}





struct LoginRootView : View {

    @State private var emailAddress: String = ""
    @State private var password: String = ""
    @EnvironmentObject var authData: AuthData


    var body: some View {


        Group{

            if self.authData.authenticationDidSucceed {

                OnBoardRootView()

            }else{ …
Run Code Online (Sandbox Code Playgroud)

swiftui

3
推荐指数
1
解决办法
1070
查看次数

标签 统计

microservices ×1

rabbitmq ×1

swiftui ×1