Skip to content

Winter Eureka: Service Discovery Module

Winter Eureka is a module that provides easy configuration and access to service discovery functionality from Winter Boot applications. It supports both Consul.io and Netflix Eureka, and requires the swoole PHP extension.

  1. Install the swoole extension

    Winter Eureka requires the swoole PHP extension. Make sure it is installed and enabled in your environment before proceeding.

  2. Install the package

    Terminal window
    composer require suvera/winter-eureka
  3. Enable the module

    Append the following block to your application.yml:

    modules:
    - module: dev\winterframework\eureka\EurekaModule
    enabled: true
    configFile: eureka-config.yml

    The configFile value is a file path, either relative to the config directory or an absolute path.

Create eureka-config.yml in your config directory. The file supports configuring connections for both Consul.io and Netflix Eureka.

# Consul.io
consul:
- name: consulBean01
serviceUrl: http://127.0.0.1:8500
authType: Basic
credentials:
credentialFile:
dataCenter:
waitTimeSecs:
consulToken:
consulTokenFile:
ignoreSsl:
caFile:
certFile:
keyFile:
# Netflix Eureka
eureka:
- name: netflixBean01
serviceUrl: http://localhost:8761/eureka
authType: Basic
credentials:
credentialFile:
ignoreSsl:
# End

Service and client beans defined in eureka-config.yml can be autowired into your PHP classes:

#[Autowired('consulBean01')]
protected DiscoveryClient $discoveryClient;
#[Autowired('netflixBean01')]
protected EurekaClient $eurekaClient;

For details on the module system, refer to The Module System.