小编xer*_*raa的帖子

Jenkins:在推荐构建中使用存档工件

我已经将一个工件归档为构建的最后一步,它可以像这样:https://xxx.ci.cloudbees.com/job/xxx/52/artifact/target/xxx-1.2.1-SNAPSHOT -r8304-20130807-1507-app.zip

如何在促销过程中轻松访问工件?请注意,我需要访问特定的版本,而不是最新的成功版本.

升级过程的目标是将工件复制到S3,我们的部署作业将从中进一步处理它.因此,我可以将构建#52推广到开发(将其复制到特定的S3存储桶),稍后将构建#50推广到生产等等.

理想情况下,我可以在shell脚本中访问工件来重命名文件等.是否有环境变量来访问构建的存档工件,我找不到或应该如何完成?$BUILD_URL并且$JOB_URL已经特定于促销流程,并且不会在促销作业的shell脚本中指向构建本身.

使用复制工件插件,我只能复制促销过程中其他构建的工件,我不需要这样做.

java deployment jenkins cloudbees

13
推荐指数
2
解决办法
7403
查看次数

MongoDB Java驱动程序:autoConnectRetry

我们当前的连接配置如下所示:

MongoClientOptions.builder()
    .autoConnectRetry(true).maxAutoConnectRetryTime(1200000)
    .socketTimeout(30000).connectTimeout(15000).build();
     // SocketTimeout: 30s, ConnectionTimeout 15s, ReconnectRetry: 20min
Run Code Online (Sandbox Code Playgroud)

autoConnectRetry并且maxAutoConnectRetryTime在当前版本(源代码)中已弃用并将被删除:"此方法没有替代.使用connectTimeout属性来控制连接超时."

我认为重试和连接超时是两个不同的事情.有谁知道为什么这会改变以及这有什么(内部)影响?

java mongodb mongodb-java

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

将Maven依赖项部署到S3:没有可用的连接器

我正在尝试使用Amazon S3来托管我的Maven工件.我已将以下内容添加到我的pom.xml中:

<distributionManagement>
    <repository>
        <id>maven.xxx.com-release</id>
        <name>AWS S3 Release Repository</name>
        <url>s3://maven.xxx.com/release</url>
    </repository>
    <snapshotRepository>
        <id>maven.xxx.com-snapshot</id>
        <name>AWS S3 Snapshot Repository</name>
        <url>s3://maven.xxx.com/snapshot</url>
    </snapshotRepository>
</distributionManagement>

<build>
    <extensions>
        <extension>
            <groupId>org.springframework.build</groupId>
            <artifactId>aws-maven</artifactId>
            <version>5.0.0.RELEASE</version>
        </extension>
    </extensions>
</build>
Run Code Online (Sandbox Code Playgroud)

这工作正常,我的快照存储在S3上.现在我试图在另一个项目中引用工件:

<repositories>
    <repository>
        <id>maven.xxx.com-release</id>
        <name>AWS S3 Release Repository</name>
        <url>s3://maven.xxx.com/release</url>
    </repository>
    <repository>
        <id>maven.xxx.com-snapshot</id>
        <name>AWS S3 Snapshot Repository</name>
        <url>s3://maven.xxx.com/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<build>
    <extensions>
        <extension>
            <groupId>org.springframework.build</groupId>
            <artifactId>aws-maven</artifactId>
            <version>5.0.0.RELEASE</version>
        </extension>
    </extensions>
</build>
Run Code Online (Sandbox Code Playgroud)

当我运行时$ mvn deploy -X,我收到以下错误:

Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T15:51:42+02:00)
Maven home: /usr/local/Cellar/maven/3.2.2/libexec
Java version: 1.8.0_11, vendor: Oracle Corporation …
Run Code Online (Sandbox Code Playgroud)

java amazon-s3 amazon-web-services maven

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

用Hazelcast替换JMS?

我们目前正在运行由一组JMS队列(无主题)连接的分布式Java应用程序.Java应用程序大量使用Apache Camel框架,该框架也用于通过JMS进行通信.作为JMS提供商,我们正在使用ActiveMQ.我们对排队解决方案的要求在功能方面非常基础 - 在某种程度上可与本地Java队列和Camel SEDA队列相媲美:

  1. 队列需要高度可用
  2. 平均而言,消息非常小(几KB),但不得对大小进行限制(即,传输的消息的一小部分有几个MB)
  3. 交付必须"恰好一次"(例如,亚马逊SQS,仅保证"至少一次",这对我们来说是不可接受的)

我们不需要持久队列,因为消息在进入排队系统之前存储在数据库中.到目前为止,ActiveMQ在设置上花了一些时间后对我们来说效果很好.但是,有两个问题因为我们正在寻找不同的解决方案:

  • 我们目前通过在JDBC Master-Slave-Mode中运行AMQ来实现高可用性.故障转移工作正常,但不如所希望的那样透明.
  • JDBC存储对性能有负面影响,特别是如果我们在几个(> 6)队列上传输更大的消息(> = 2-3 MB).此外,我们有不必要地打扰我们的数据库的感觉.

我们知道AMQ从版本5.9开始支持使用Zookeeper的HA.不过,不久前,我们开始考虑/评估Hazelcast作为AMQ的替代品.很长一段时间,Hazelcast看起来非常迷人,因为它似乎满足了我们所有的要求,并且似乎比使用Zookeeper的AMQ更简单.此外,Camel通过其Hazelcast SEDA功能为使用Hazelcast作为排队解决方案提供了很好的支持.鉴于Hazelcast似乎是我们完美替代AMQ的事实,我们不知道网上没有太多可用的信息讨论Hazelcast作为JMS的(严重)替代品.因此,我们想知道:

  • 用Hazelcast替换JMS有什么缺点(性能,可靠性......)?
  • 是否有人在Hazelcast中遇到过多MB消息的问题?
  • 有没有人遇到过Hazelcast的任何可靠性问题?我们目前仍在使用2.6(因为Camel组件当前正在使用该版本)并且已经在Ubuntu上进行了守护.到目前为止它似乎运行得很完美,但是一些额外的经验会很好听.

java queue activemq-classic apache-camel hazelcast

6
推荐指数
0
解决办法
3753
查看次数

Apache Shiro:使用多个领域进行异常处理

我们使用两个领域(一个用于散列密码,另一个用于生成的纯文本密钥) - 这是按预期工作的.

使用单个域,我们可以DisabledAccountException在我们的域中抛出异常,protected AuthenticationInfo doGetAuthenticationInfo(final AuthenticationToken authToken)并在我们的应用程序中明确捕获这样的异常.

现在我们有两个领域,所有例外都是Shiro-internal抓住的; 所以,如果一个领域失败,第二个领域也可以尝试.但是,这种重定向只会将泛型抛给AuthenticationExceptions我们的应用程序.

是否有多个领域的解决方法,以便我们可以有更多特定的例外(要知道帐户是否被锁定,凭据是完全错误的,......)?

authentication shiro

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

PostgreSQL的安全性与MySQL等相比

面对PostgreSQL不安全的一些大胆的主张(同时欢呼MySQL的安全性)我想得到别人的意见:

  • "由于多重选择,PostgreSQL是不安全的" - 我假设`multiselects`是我所谓的'subselects`,但我可能错了.当前的MySQL版本支持子选择,但根据[1],某些库可能不支持或可能已禁用它们.这可能是索赔的原因还是我在这里忽略了什么?
  • "SQL注入最容易被PostgreSQL利用" - 恕我直言SQL注入是一个应用程序/库问题,只是有效的SQL查询,所以数据库之间没有真正的区别,对吧?!
  • "我喜欢PostgreSQL获得root权限,因为它有很多安全漏洞" - 首先我假设PostgreSQL的安全跟踪记录与MySQL一样好(在这方面真的找不到多少)?其次以root身份运行PostgreSQL只是一个愚蠢的想法.或者这有什么有效的吗?

我已经说过PostgreSQL比MySQL更具安全感(支持角色,更多的身份验证方法......),但数据库本身对应用程序的安全性影响非常小.或者我在这里忽略了任何争论?

[1] MySQL是否比PostgreSQL(在Perl/DBI下)更能抵抗SQL注入攻击?

PS:MySQL和PostgreSQL都是很棒的产品 - 不需要任何非安全相关的讨论;-)

mysql security postgresql sql-injection

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

如何用morphia注释复合键上的索引

我正在使用morphia github 1.2.2版.我知道如何在morphia实体上的一个字段上注释索引,但有没有办法在两个字段的组合上注释索引.例如,如果我想在字段a和b上有一个复合索引,那么下一个类的注释是什么.

@Entity
public class TestClass
{
    @Property("a")
    private int fieldA;
    @Property("b")
    private int fieldB;
    //how to annotate index of compound key fieldA and fieldB using morphia index annotation?
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

mongodb morphia mongodb-java

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

Hazelcast:如果内存不足会发生什么

我们计划使用Hazelcast排队Apache Camel消息以及作为辅助Hibernate缓存.

假设我们将队列配置为使用Integer.MAX_VALUE(可能不适合内存)而没有支持映射:如果正在使用所有内存,会发生什么?我在文档中找不到任何与此场景有关的内容.

<hazelcast>
...
<queue name="tasks">
    <!--
        Maximum size of the queue. When a JVM's local queue size reaches the maximum,
        all put/offer operations will get blocked until the queue size
        of the JVM goes down below the maximum.
        Any integer between 0 and Integer.MAX_VALUE. 0 means Integer.MAX_VALUE. Default is 0.
    -->
    <max-size-per-jvm>0</max-size-per-jvm>

    <!--
        Name of the map configuration that will be used for the backing distributed
        map for this queue.
    -->
    <backing-map-ref></backing-map-ref>
</queue>
Run Code Online (Sandbox Code Playgroud)

与地图相同:如果 …

memory queue hibernate hazelcast

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

Jenkins Artifactory插件:更新到Git上的最新快照

当我们执行发布时,正在按预期创建发布工件和标记.但是,项目未正确更新到下一个(快照)版本.

发布的示例配置:

在此输入图像描述

控制台日志的相关部分:

[RELEASE] Committing release version on branch 'master'
[RELEASE] Creating tag '1.3.14'
[RELEASE] Pushing branch 'master' to 'ssh://git@git.cloudbees.com/xxx/yyy.git'
[RELEASE] Pushing tag '1.3.14' to 'ssh://git@git.cloudbees.com/xxx/yyy.git'
[RELEASE] Changing POMs to next development version
[RELEASE] Committing next development version on branch 'master'
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)

该项目在Git中的地位如预期:

$ git pull origin master
From ssh://git.cloudbees.com/xxx/yyy
 * branch            master     -> FETCH_HEAD
Already up-to-date.
$ git show --summary
commit df10d905c24c1cbf8d0b6992ab366ac5dcba470b
Author: CloudBees DEV@Cloud <nobody@cloudbees.com>
Date:   Mon Jul 29 09:04:38 2013 +0000
$ git remote show origin …
Run Code Online (Sandbox Code Playgroud)

git release jenkins

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