我们正在使用 java(Spring 和 Spring Boot)开发微服务,对 Oracle DB 的访问是通过 JDBC Oracle Driver 完成的。
问题是我们的 DBA 只能在 Oracle 端看到连接了“JDBC 瘦客户端”。连接的应用程序没有更好的逻辑表示。如果没有这样的识别,就很难知道哪个微服务可能表现不佳。其他非 JDBC 客户端使用主机名清楚地标识自己。
有什么方法可以更改标识字符串,使其代表源应用程序/进程的明确标识?
注意:我们的系统在使用容器的 Cloud Foundry 上运行,因此实际上不可能提供机器名称或类似的名称 - 首选逻辑应用程序名称。
谢谢
我有一个特定的场景,在该场景中,稍后只能手动检查违规情况。
我想做的是抛出一个ConstraintViolationException
,并为其提供“真实” ConstraintViolation object
(当我将异常捕获到堆栈中时,我使用#{validatedValue}
和violation.getPropertyPath()
参数)。
如何在ConstraintViolation
没有框架的情况下通过注释为我创建自己(我使用Hibernate Validator)?
代码示例:
List<String> columnsListForSorting = new ArrayList<String>(service.getColumnsList(domain));
Collections.sort(columnsListForSorting);
String firstFieldToSortBy = this.getTranslatedFieldName(domain.getClass().getCanonicalName(), sortingInfo.getSortedColumn());
if (!columnsListForSorting.contains(firstFieldToSortBy)){
throw new ConstraintViolationException(<what here?...>);
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
我有一个跨越4种服务器类型的Spring Cloud微服务应用程序:一个安全网关,两个UI服务器和一个REST API服务器。其中的每一个都将在生产环境中的自己的VM上运行:REST服务器的4个服务器实例,彼此之间的2个实例。
该系统预计将为大约30,000个用户提供服务。
服务发现由Eureka提供。我有两个用于故障转移的Eureka服务器。
共享的HTTP会话由Spring Session和Spring Data Redis使用参与服务器上的@EnableRedisHttpSession注释提供。
我决定为Redis设置3个VM(在此URL:http://redis.io/topics/sentinel上的“示例2:三个框的基本设置” )。
每个虚拟机将运行Redis服务器和Redis标记进程(其中Redis服务器之一将为主服务器,两个实例为从属服务器)
这一切在开发机器和系统测试机器上都非常有效,它们大多数都在同一服务器上运行所有进程。
我现在正在尝试在具有多个VM的类似于生产的环境中运行性能测试。我想从已经在生产中使用类似Spring Cloud设置的开发人员那里获得一些反馈和建议:
这是我的主Redis服务器的配置。从站几乎是相同的,只是端口不同,表明它们是主站的从站:
daemonize no
port 6379
dbfilename "dump6379.rdb"
dir "/Users/odedia/Work/Redis/6379"
pidfile "/Users/odedia/Work/Redis/redis6379.pid"
#logfile "/Users/odedia/Work/Redis/redis6379.log"
tcp-backlog 511
timeout 0
tcp-keepalive 60
loglevel notice
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
slave-serve-stale-data yes
slave-read-only no
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no …
Run Code Online (Sandbox Code Playgroud) production redis spring-data-redis spring-session spring-cloud
我正在开发一个需要支持分页的无状态API.
我使用的是Oracle数据库.我使用Spring和MyBatis进行数据库访问.
从文档中,我了解到我可以使用RowBounds类来限制查询返回的行数.
但是,似乎没有对查询进行特殊优化以支持分页.
例如,如果我将RowBounds设置为使用50条记录偏移100,我希望查询添加以下内容:
(original query with the where clause...)
and ROWNUM < 150
and ROWNUM >= 100
Run Code Online (Sandbox Code Playgroud)
但那里什么也没有,只是我手动定义的查询.
这对性能来说太糟糕了,因为我可能有几千个结果.
我究竟做错了什么?
谢谢.
java ×2
oracle ×2
spring ×2
jdbc ×1
mybatis ×1
production ×1
redis ×1
spring-cloud ×1
spring-jdbc ×1
sql ×1
validation ×1