小编Naf*_*ema的帖子

断路器和隔板模式有什么区别?

在微服务的开发过程中,我们可以在 Spring Boot 中一起使用吗?

circuit-breaker spring-boot microservices

8
推荐指数
2
解决办法
3286
查看次数

JUnit 中带有 void 方法的 Mockito

我已经实现了一个简单的 Spring Boot CRUD 应用程序来编写测试用例。我在删除操作时遇到了一些麻烦。当我使用Mockito.when方法时,它需要一个返回值,而我的删除方法是非返回类型。

服务等级

@Service
public class EmployeeServiceImpl  implements EmployeeService {

    private EmployeeDAO employeeDAO;

    @Autowired
    public EmployeeServiceImpl(EmployeeDAO employeeDAO)
    {
        this.employeeDAO=employeeDAO;
    }

    @Override
    public void deleteEmployee(Employee emp) throws IllegalArgumentException{
             employeeDAO.delete(emp);
    }

}
Run Code Online (Sandbox Code Playgroud)

服务测试类

@ExtendWith(SpringExtension.class)
@SpringBootTest
public class EmployeeServiceImplTest {

    @MockBean
    private EmployeeDAO employeeDAO;

    @Autowired
    private EmployeeService employeeService;

@Test
public void testDeleteEmployee()
{
    int empId=1054;
    Employee employee=employee_2();
    employee.setEmpId(empId);

   // how to write test case for void method
}

private Employee employee_2()
    {
        Employee employee=new Employee();
        employee.setEmpName("NafazBenzema");
        employee.setSalary(12000.00);

        return …
Run Code Online (Sandbox Code Playgroud)

java junit mockito spring-boot junit5

7
推荐指数
2
解决办法
3万
查看次数

使用 Spring 启动微服务中的 JWT 授权

我必须使用微服务架构构建一个应用程序。我把整个系统分成了多个组件,每个组件代表一个spring boot项目。6左右有几个spring boot项目,我用eureka server注册了所有的服务做负载均衡。已经为 Web 门户开发了一个单独的 Spring boot 项目,该应用程序包含身份验证、spring security 授权和 JWT 协议。现在我有 7 个项目,包括一个 Web 门户,每个项目在控制器包下都有控制器类。

现在我需要知道以下几点,

  1. SignUp 和 SignIn 请求来到门户网站,签名后生成 JWT 令牌并将其发送到客户端,但授权部分仅在门户网站的 SecurityConfig 类中可用。那么,我是否应该每次在经过身份验证后都将来自客户端的所有请求通过 Web 门户发送到组件?

         Client ----------------> Web Portal ------------------>Service/Component
    
    Run Code Online (Sandbox Code Playgroud)

我需要知道我可以像下面这样直接向另一个组件/服务发送请求吗?

                  username + password
   Client --------------------------------------->  Web Portal

                     JWT token
   Client <-------------------------------------- Web Portal
            
                    JWT token
   Client ------------------------------------------> Service/Component
Run Code Online (Sandbox Code Playgroud)

java spring-security jwt spring-boot microservices

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

Ballerina 中的线程和响应式编程

我刚刚通过阅读https://ballerina.io/文档开始关注芭蕾舞女演员。当我尝试运行 Hello World Parallel 时,我不知道它在内部是如何工作的?

 import ballerina/io;
    public function main() {
        @strand {thread: "any"}
        worker w1 {
            io:println("Hello, World! #m");
        }
    
        @strand {thread: "any"}
        worker w2 {
            io:println("Hello, World! #n");
        }
        @strand {thread: "any"}
        worker w3 {
            io:println("Hello, World! #k");
        }
    }
Run Code Online (Sandbox Code Playgroud)
  1. 当我运行此代码时,有多少线程在 4 个或少于 4 个的后面运行?
  2. 线程在java中是非常昂贵的,当我们创建一个线程的同时,JVM会创建OS级线程,会消耗大量内存。芭蕾舞演员是否也遵循相同的方式(Native Thread Model)?
  3. 我们可以在芭蕾舞演员中使用轻质线吗?就像 Project Loom(fibers) 将要介绍的那样
  4. 芭蕾舞演员是否完全支持反应式编程?
  5. 芭蕾舞演员有没有提供包连接MongoDB、Redis、Cassandra 不阻塞?我的意思是反应方式

asynchronous wso2 reactive-programming ballerina

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

异步编程和反应式编程

这个问题在我脑海里盘旋了一年左右。实际上,异步和非阻塞有什么区别。当我们在代码中调用阻塞部分时,它就会变成阻塞,这是同步的,同时它不会是非阻塞的。

如果我们在主线程之外创建另一个线程来进行异步编程并且我们必须返回一些值所以我们必须join()在java中定义方法并且join()阻塞操作那么它实际上是异步的吗?

我需要知道以下问题的答案

  1. 如果阻塞类似于同步,那么异步和非阻塞之间有什么区别。它应该是相似的吗?如果不是那么为什么?

  2. 非阻塞的响应式编程是否完全异步编程?

java asynchronous reactive-programming

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

Apache Kafka 如何与多个 Broker 和单个 Broker 配合使用

我已经开始学习Kafka,在学习过程中,我对Kafka的工作流程遇到了一些困惑,我将这些困惑与大家分享并期待澄清。

(1.) 创建了 3 个具有 3 个复制因子和 3 个分区的代理

在此输入图像描述

当我将消息推送到代理时,代理中的领导者分区之一将接收该消息并将其发送到其副本。

它使用哪种方式传递带有副本的消息?(方法 1 或方法 2 或其他方式)

  1. 方法1

在此输入图像描述

  1. 方法2在此输入图像描述

(2.) 如果我创建一个具有 3 个分区的代理

在此输入图像描述

那么消息会被leader分区接收,并且属于leader,那么其他2个分区有什么用呢?

apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-streams

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

Hystrix Command 注解在应用程序中如何工作

当我使用 @HystrixCommand Annotation 注释一个方法时,它是如何工作的

@HystrixCommand(fallbackMethod="getfallBackdisplayDoctorsAndProducts_lipid",
            commandProperties= {
                @HystrixProperty(name="execution.isolation.thread.timeoutInMilliseconds",value="150"),
                    @HystrixProperty(name="circuitBreaker.requestVolumeThreshold",value="25"),
                    @HystrixProperty(name="circuitBreaker.errorThresholdPercentage",value="50"),
                    @HystrixProperty(name="circuitBreaker.sleepWindowInMilliseconds",value="5000")
            })
    public List<DoctorsAndProducts> displayDoctorsAndProducts(LipidProfile lipidProfile)
    {

    }
Run Code Online (Sandbox Code Playgroud)

spring-boot hystrix microservices netflix-eureka

2
推荐指数
1
解决办法
3252
查看次数