Skip to content

Releases: Netflix/Hystrix

Version 1.4.6

28 Apr 21:49
Compare
Choose a tag to compare
  • Pull 772 Add try-catch to all hook invocations
  • Pull 773 Move threadPool field to end of metrics stream
  • Pull 770 Fix AbstractCommand.isCircuitBreakerOpen() return value when circuit is forced open or closed
  • Pull 769 Add threadPool to command metrics in event stream
  • Pull 767 JMH upgrade and multithreaded benchmark

Artifacts: Maven Central, Bintray

Version 1.4.5

20 Apr 17:29
Compare
Choose a tag to compare
  • Pull 764 Upgrade RxJava from 1.0.7 to 1.0.9
  • Pull 763 Upgrade Jackson for hystrix-metrics-event-stream from 1.9.2 to 2.5.2
  • Pull 760 Set Hystrix-created threads to be daemon
  • Pull 757 Update RxNetty version in hystrix-rx-netty-metrics-stream from 0.3.8 to 0.4.7
  • Pull 755 Improve Javadoc for HystrixThreadPoolProperties.Setter
  • Pull 754 Only fire onFallbackStart/onFallbackError hooks when a user-supplied fallback is invoked
  • Pull 753 Add timeout to dashboard for semaphore commands
  • Pull 750 First pass at jmh performance benchmarking
  • Pull 748 Fix return value of HystrixCircuiBreakerImpl.isOpen when it loses a race to open a circuit
  • Pull 746 Improve Javadoc for HystrixCommandProperties.Setter

Artifacts: Maven Central, Bintray

Version 1.4.4

06 Apr 21:56
Compare
Choose a tag to compare
  • Pull 743 Proper Javadoc deprecation for command timeouts being thread-specific
  • Pull 742 Add flag to disable command timeouts
  • Pull 741 Bugfix to java.lang.Error handling
  • Pull 735 (Javanica) BatchHystrixCommand
  • Pull 739 Mark some java.lang.Errors as unrecoverable and never trigger fallback
  • Pull 738 Filter out thread pools with no thread activity from hystrics-metrics-event-stream
  • Pull 732 Comment out flaky unit test

Artifacts: Maven Central, Bintray

Version 1.4.3

27 Mar 18:03
Compare
Choose a tag to compare
  • Pull 731 Revert to Java 6
  • Pull 728 Add semaphore-rejected count to dashboard
  • Pull 711 Use Archaius for plugin registration
  • Pull 671 Stop passing Transfer-Encoding header when streaming metrics

Artifacts: Maven Central, Bintray

Version 1.4.2

25 Mar 22:13
Compare
Choose a tag to compare
  • Pull 723 Fixed Javanica issue where annotation appeared in superclasses
  • Pull 727 Fixed TravisCI issue by raising timeout in fallback rejection unit test
  • Pull 724 Fixed backwards-incompatibility where using a custom HystrixConcurrencyStrategy forced use of a non-null HystrixRequestContext
  • Pull 717 Added error message to dashboard HTML when connection to metrics source fails

Artifacts: Maven Central, Bintray

Version 1.4.1

20 Mar 05:05
Compare
Choose a tag to compare
  • Pull 716 Fixed backwards-incompatibility where .execute(), .queue(), .observe(), .toObservable() were all made final in 1.4.0

Artifacts: Maven Central, Bintray

Version 1.4.0

03 Mar 21:36
Compare
Choose a tag to compare

This version adds HystrixObservableCommand and implements both it and HystrixCommand in terms of Observables.

A HystrixObservableCommand allows for fully non-blocking commands that can be composed as part of a larger Observable chain. See the wiki for more details on usage. Here's an example (using Java 8):

public class ObservableHttpCommand extends HystrixObsverableCommand<BackendResponse> {

@Override
protected Observable<BackendResponse> construct() {
    return httpClient.submit(HttpClientRequest.createGet("/mock.json?numItems=" + numItems))
        .flatMap((HttpClientResponse<ByteBuf> r) -> r.getContent()
        .map(b -> BackendResponse.fromJson(new ByteBufInputStream(b))));
    }

@Override
protected Observable<BackendResponse> resumeWithFallback() {
    return Observable.just(new BackendResponse(0, numItems, new String[] {}));
}}

Because an Observable represents a stream of data, your HystrixObservableCommand may now return a stream of data, and supply a stream of data as a fallback. The methods to do so are construct() and resumeWithFallback(), respectively. All other aspects of the Hystrix state machine work the same in a HystrixCommand. See this wiki page for a diagram of this state machine.

The public API of HystrixCommand is unchanged, though the internals have significantly changed. Some bugfixes are now possible that affect Hystrix semantics:

  • Timeouts now apply to semaphore-isolated commands as well as thread-isolated commands. Before 1.4.x, semaphore-isolated commands could not timeout. They now have a timeout registered on another (HystrixTimer) thread, which triggers the timeout flow. If you use semaphore-isolated commands, they will now see timeouts. As all HystrixCommands have a default timeout, this potentially affects all semaphore-isolated commands.
  • Timeouts now fire on HystrixCommand.queue(), even if the caller never calls get() on the resulting Future. Before 1.4.x, only calls to get() triggered the timeout mechanism to take effect.

You can see more in-depth examples of how the new functionality of Hystrix 1.4 is used at Netflix/ReactiveLab.

You can learn more about Observables and RxJava at Netflix/RxJava.

As this was a major refactoring of Hystrix internals, we (Netflix) have run a release candidate of Hystrix 1.4 in canaries and production over the last month to gain confidence.

  • Pull 701 Fix Javadoc warnings
  • Pull 700 Example code for publishing to Graphite

Artifacts: Maven Central / Bintray

Version 1.4.0 Release Candidate 9

24 Feb 14:16
Compare
Choose a tag to compare

NOTE: This code is believed to be production worthy. As of now, there are no known bugs preventing this becoming 1.4.0. Please report any design issues/questions, bugs, or any observations about this release to the Issues page.

  • Pull 697 Add execution event for FALLBACK_REJECTION and unit tests
  • Pull 696 Upgrade to RxJava 1.0.7
  • Pull 694 Make execution timeout in HystrixCommandProperties work in the case when classes extend HystrixCommandProperties
  • Pull 693 Hystrix Dashboard sorting issue

Artifacts: Maven Central / Bintray

Version 1.4.0 Release Candidate 8

21 Feb 00:41
Compare
Choose a tag to compare

NOTE: This code is believed to be production worthy. As of now, there are no known bugs preventing this becoming 1.4.0. Please report any design issues/questions, bugs, or any observations about this release to the Issues page.

  • Pull 691 HystrixCommandTest test with large number of semaphores
  • Pull 690 Add back ExceptionThreadingUtility
  • Pull 688 Add metrics for EMIT and FALLBACK_EMIT
  • Pull 687 Fixed issue where fallback rejection was also incrementing fallback failure metric
  • Pull 686 HystrixCommandTest Unit test refactoring
  • Pull 683 Add and Deprecate pieces of execution hook API to be more consistent
  • Pull 681 Add cache hit execution hook
  • Pull 680 Add command rejection metrics for HystrixThreadPools

Artifacts: Maven Central / Bintray

Version 1.4.0 Release Candidate 7

13 Feb 23:44
Compare
Choose a tag to compare

NOTE: This code is believed to be production worthy. As of now, there are no known bugs preventing this becoming 1.4.0. Please report any design issues/questions, bugs, or any observations about this release to the Issues page.

  • Pull 678 Fix current concurrent execution count
  • Pull 676 Add test to confirm that bad requests do not affect circuit breaker's computed error percentage
  • Pull 675 Deprecate method names for executionTimeout that are thread-specific
  • Pull 672 Limit the thread-interrupt behavior to occur only on timeouts
  • Pull 669 Added unit tests to demonstrate non-blocking semaphore timeout
  • Pull 667 Added rolling max counter for command execution
  • Pull 666 Added missing licenses
  • Pull 665 Added comment to HystrixConcurrencyStrategy about non-idempotency of strategy application
  • Pull 647 Tie command property to thread interrupt
  • Pull 645 Remove incorrect reference to async timeout
  • Pull 644 Add RequestCollapser metrics to Yammer Metrics Publisher
  • Pull 643 Stress-test HystrixObservalbeCollapser
  • Pull 642 Fix flakiness of HystrixObservableCommandTest.testRejectedViaSemaphoreIsolation
  • Pull 641 Fix flakiness of testSemaphorePermitsInUse
  • Pull 608 Make HystrixObservableCommand handle both sync and async exceptions
  • Pull 607 Upgrade RxJava from 1.0.4 to 1.0.5
  • Pull 604 Added EMIT and FALLBACK_EMIT event types that get emitted in HystrixObservableCommand
  • Pull 599 Added metrics to HystrixObservableCollapser
  • Pull 596 Fixed HystrixContextScheduler to conform with RxJava Worker contract
  • Pull 583 Style and consistency fixes
  • Pull 582 Add more unit tests for non-blocking HystrixCommand.queue()
  • Pull 580 Unit test to demonstrate fixed non-blocking timeout for HystrixCommand.queue()
  • Pull 579 Remove synchronous timeout
  • Pull 577 Upgrade language level to Java7
  • Pull 576 Add request collapser metrics
  • Pull 573 Fix link to CHANGELOG.md in README.md
  • Pull 572 Add bad request metrics at the command granularity
  • Pull 567 Comment out flaky unit-tests
  • Pull 566 Fix hardcoded groupname in CodaHale metrics publisher
  • Commit 6c08d9 Bumped nebula.netflixoss from 2.2.3 to 2.2.5
  • Pull 562 Build changes to nebula.netflixoss (initially submitted as Pull 469)

Artifacts: Maven Central / Bintray