小编Yoa*_*nda的帖子

将Windows证书导入Java

我有一个java服务器试图通过SSL连接到外部Ldap服务器(作为客户端,以执行查询).

我连接时遇到问题,因为他们在连接时发送给我的证书只在我的本地Windows Truststore中受信任,但在java truststore(cacerts)中不存在.

有没有办法告诉Java信任Windows可信任的任​​何证书?

或者,有没有办法将所有可信证书从Windows信任库导入Java的cacerts?

任何想法将不胜感激.

java ssl certificate truststore

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

Feign/Eureka客户端没有通过X-Forwarded-For标头

我使用Spring boot + Eureka + Feign客户端将请求从一个发现的服务器转发到另一个服务器,它工作正常.

在我的服务器中,我需要获取原始用户的IP.

我似乎无法找到如何配置Feign客户端自动编辑'X-Forwarded-For'标头,以便我能够提取原始用户的IP地址.

当我使用getRemoteAddr()时,我得到代理IP地址(正如预期的那样).当试图提取request.getHeader("X-Forwarded-For")时,我总是得到null.

我应该在哪里添加/配置此功能?

http-headers spring-boot netflix-feign netflix-eureka

6
推荐指数
1
解决办法
547
查看次数

在微服务环境中提供静态文件?

为部署在微服务架构(生产中)中的应用程序提供静态文件的首选方式是什么?

为简单起见,假设我有 3 个应用程序服务器和一个将请求转发到这些服务器的负载平衡器。

  • 负载平衡器是否应该存储文件并根据要求立即提供它们?或者..
  • 负载平衡器是否应该将静态文件请求转发到不同的应用程序实例(每个请求到不同的实例)?

是否有最佳实践?

system-design microservices devops

6
推荐指数
1
解决办法
813
查看次数

Feign Client + Eureka POST请求正文

我正在尝试使用Feign和Eureka将服务器A的发布请求转发到服务器B.这两个服务器都被Eureka成功地取消了.

这有效:

@Feignclient
public interface MyFeignClient {
    @RequestMapping(value = "test", = RequestMethod.POST, consumes = "application/json")
    ResponseEntity<String> theActualMethod(
            HttpServletRequest request,
            @RequestHeader("firstHeader") String header1,
            @RequestHeader("secondHeader") byte[] header2);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将第二个参数更改为@RequestBody以便读取POST请求内容时,我得到一个异常:

java.lang.IllegalStateException: Method has too many Body parameters: public abstract org.springframework.http.ResponseEntity MyFeignClient.theActualMethod(javax.servlet.http.HttpServletRequest,java.lang.String,byte[])
Run Code Online (Sandbox Code Playgroud)

rest spring microservices netflix-feign netflix-eureka

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

春天无阻碍休息"发送并忘记"

我正在编写一个无阻塞的Spring Rest控制器.我的客户端应该发送请求,不关心响应,也不需要等待.

这是我的服务器代码:

@RestController
@EnableAsync
public class testController {

@RequestMapping(value = "test", method = RequestMethod.GET)
public ResponseEntity<String> test() throws InterruptedException {
    timeConsumingMethod();
    System.out.println("I'm should be first");
    return new ResponseEntity<String>("the server is processing your request", HttpStatus.OK);
}

@Async
private void timeConsumingMethod() throws InterruptedException {
    Thread.sleep(1000*5);
    System.out.println("I'm should be second!");
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用(POSTMAN,Chrome等)调用http:// localhost:8181/test时,我在服务器日志中得到以下信息:

我应该是第二名!

我应该是第一个

并且等待5秒后我的浏览器显示:

服务器正在处理您的请求

这是"发送和忘记"行为的正确方法吗?

java rest spring asynchronous spring-mvc

4
推荐指数
1
解决办法
3292
查看次数

应用程序中的排序与数据库中的排序

当查询前 N 个结果时,我可以要求数据库对结果进行排序,或者我可以自己对它们进行排序。

我读了很多关于数据库相对于应用内排序的性能和内存优势的文章。但是,假设我编写了最佳排序代码,这两个选项的性能是否相同?两者都使用相同的 CPU,都可以分配线程,并且都可以在内存中分配更多空间来执行排序。

我在该主题中找到的所有答案或多或少都是相同的 - 说“只要让数据库来做,它会比你做得更好”,或者“经验法则是在数据库中做任何事情,除非出现特定需要”比如复杂的排序……”

那么,为什么选择数据库排序而不是应用程序内排序(除了通过不要求数百万个表条目进行排序来节省网络带宽之外)?

sql sorting database-performance

4
推荐指数
1
解决办法
2642
查看次数

在不同操作系统上安装的.NET应用程序中使用了什么版本的TLS

假设我有一个标准的.NET(4.5)Web应用程序需要使用TLS连接到安全服务器.

我想停止在我的服务器中支持未使用或弱的协议和密码套件,并且只支持客户端也支持的协议(最好是TLS 1.2)

使用的TLS(1.0,1.1或1.2)/密码套件的版本是否取决于操作系统或.NET版本?

换句话说,当我的.NET应用程序安装在具有不同操作系统/更新的计算机上时,它是否会使用不同的密码套件或TLS版本?或者.NET 4.5的使用是否确保每个客户端 - 服务器通信上的协议都是相同的?

.net ssl tls1.2

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

使用AWS Lambda仅使用角色访问S3

我有一个用Java I编写的Lambda函数,我想让它访问S3(putObject).

我不想在我的Lambda函数中使用或存储凭据以访问S3.相反,我想使用IAM角色.

如何在我的Java代码(将由Lambda运行)中编写AWS S3客户端,该代码不需要任何凭据并假设Lambda具有适当的角色?

amazon-s3 amazon-web-services aws-sdk aws-lambda serverless-framework

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

无服务器框架'dev'和'prod'分离

我正在使用无服务器框架编写后端服务.

分离"Dev"和"Prod"环境的最佳方法是什么?

假设我希望我的开发配置文件部署在某个区域,而我的prod配置文件则部署在另一个区域?有没有办法在无服务器框架中实现这一目标?

我想做的事情如下:

serverless deploy --profile dev (--> use serverless-dev.yml)
serverless deploy --profile prod (--> use serverless-prod.yml)
Run Code Online (Sandbox Code Playgroud)

amazon-web-services serverless-framework

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

为什么 gradle 运行 gradle.build 中的每个任务

我对 gradle 很陌生,有一个基本问题。

当我将自定义任务添加到 gradle.build 文件并调用“gradlw build”或“gradle clean”或任何其他 gradle 命令时,它会自动运行我的自定义任务。

gradle 中就是这样工作的吗?运行构建文件中的每个任务?有没有办法仅在我需要手动运行任务时才运行它?

gradle build.gradle

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

JMS 和 ActiveMQ

我需要编写一个侦听消息队列(消费者)并将其读取的数据发送到数据库的服务器,以及另一个将信息(生产者)发布到该队列的服务器。

我正在关注Spring+JMS 上的官方 spring 参考

我不明白以下内容:

  1. JMS和ActiveMQ有什么关系?
  2. 其中哪一个真正实现了消息队列?
  3. 在我看到的例子中:

    FileSystemUtils.deleteRecursively(new File("activemq-data"));
    
    Run Code Online (Sandbox Code Playgroud)

    作为删除队列的一种手段。

    队列的数据是否保存在文件中?

  4. 如果队列是由文件系统维护的,我如何将我的JMS服务器扩展到多于一台计算机(服务器)

谢谢!

java spring activemq-classic jms message-queue

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

部分实现抽象类的抽象方法

我有一个名为MyAbstractClass的抽象类.

我有5个不同的类来扩展它:类A,B,... E

我需要在类MyAbstractClass中添加方法foo(),但只有A,B和C 应该实现它,而DE永远不需要执行它.(程序流程不会到达那里)

在Java中实现这种行为的好习惯是什么?

我应该使用界面吗?

我应该添加另一层继承,区分它们并仅在中间层添加foo吗?

谢谢你的建议.

java oop interface abstract

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