Uploaded image for project: 'mod_cluster'
  1. mod_cluster
  2. MODCLUSTER-142

Use UUID for auto-generated jvmRoute

    Details

    • Type: Feature Request
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 1.1.0.CR1
    • Fix Version/s: 1.1.0.CR2
    • Component/s: None
    • Labels:
      None

      Description

      Currently, auto-generated jvm-routes are of the form: bind-address:port:engine-name
      This exposes internal addresses/ports and is not appropriate for production systems.
      To fix that, we can use UUIDs.
      e.g.

      InetAddress connectorAddress;
      int connectorPort;
      String engineName;

      int addressBytes = connectorAddress.getAddress().length;
      int intBytes = Integer.SIZE / Byte.SIZE;
      int charBytes = Character.SIZE / Byte.SIZE;

      ByteBuffer buffer = ByteBuffer.allocate(addressBytes + intBytes + (engineName.length() * charBytes));
      buffer.put(connectorAddress.getAddress());
      buffer.putInt(connectorPort);
      buffer.asCharBuffer().put(engine);

      String jvmRoute = UUID.nameUUIDFromBytes(buffer.array()).toString();

      I can think of 2 disadvantages:
      1. UUID jvm-routes will be, on average, longer than the current default, i.e. 36 characters as opposed to ~28. Not a significant difference there.
      2. For development, exposing the address and port via the jvm route might be useful. To satisfy this requirement, we can make the use of UUIDs configurable.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  pferraro Paul Ferraro
                  Reporter:
                  pferraro Paul Ferraro
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: