github.com/hazelcast/hazelcast-go-client (go): Package hazelcast provides the Hazelcast Go client.  Hazelcast is an open-source distributed in-memory data store and computation platform. It provides a wide variety of distributed data structures and concurrency primitives.  Hazelcast Go client is a way to communicate to Hazelcast IMDG clusters and access the cluster data.  If you are using Hazelcast and Go Client on the same computer, generally the default configuration should be fine. This is great for trying out the client. However, if you run the client on a different computer than any of the cluster members, you may need to do some simple configurations such as specifying the member addresses.  The Hazelcast members and clients have their own configuration options. You may need to reflect some of the member side configurations on the client side to properly connect to the cluster.  In order to configure the client, you only need to create a new `hazelcast.Config{}`, which you can pass to `hazelcast.StartNewClientWithConnfig` function:  Calling hazelcast.StartNewClientWithConfig with the default configuration is equivalent to hazelcast.StartNewClient. The default configuration assumes Hazelcast is running at localhost:5701 with the cluster name set to dev. If you run Hazelcast members in a different server than the client, you need to make certain changes to client settings.  Assuming Hazelcast members are running at hz1.server.com:5701, hz2.server.com:5701 and hz3.server.com:5701 with cluster name production, you would use the configuration below. Note that addresses must include port numbers:  You can also load configuration from JSON:  If you are changing several options in a configuration section, you may have to repeatedly specify the configuration section:  You can simplify the code above by getting a reference to config.Cluster and update it:  Note that you should get a reference to the configuration section you are updating, otherwise you would update a copy of it, which doesn't modify the configuration.  There are a few options that require a duration, such as config.Cluster.HeartbeatInterval, config.Cluster.Network.ConnectionTimeout and others. You must use types.Duration instead of time.Duration with those options, since types.Duration values support human readable durations when deserialized from text:  That corresponds to the following JSON configuration. Refer to https://golang.org/pkg/time/#ParseDuration for the available duration strings:  Here are all configuration items with their default values:  Checkout the nearcache package for the documentation about the Near Cache.  You can listen to creation and destroy events for distributed objects by attaching a listener to the client. A distributed object is created when first referenced unless it already exists. Here is an example:  If you don't want to receive any distributed object events, use client.RemoveDistributedObjectListener:  Running SQL queries require Hazelcast 5.0 and up. Check out the Hazelcast SQL documentation here: https://docs.hazelcast.com/hazelcast/latest/sql/sql-overview  The SQL support should be enabled in Hazelcast server configuration:  The client supports two kinds of queries: The ones returning rows (select statements and a few others) and the rest (insert, update, etc.). The former kinds of queries are executed with QuerySQL method and the latter ones are executed with ExecSQL method.  Use the question mark (?) for placeholders.  To connect to a data source and query it as if it is a table, a mapping should be created. Currently, mappings for Map, Kafka and file data sources are supported.  You can read the details about mappings here: https://docs.hazelcast.com/hazelcast/latest/sql/sql-overview#mappings  The following data types are supported when inserting/updating. The names in parantheses correspond to SQL types:  Using Date/Time  In order to force using a specific date/time type, create a time.Time value and cast it to the target type:  Hazelcast Management Center can monitor your clients if client-side statistics are enabled.  You can enable statistics by setting config.Stats.Enabled to true. Optionally, the period of statistics collection can be set using config.Stats.Period setting. The labels set in configuration appear in the Management Center console:
Keywords: big-data|caching|clustering|datagrid|distributed|go|golang|hazelcast|hazelcast-client|imdg|in-memory|scalability