本文整理汇总了Java中com.datastax.driver.core.Cluster.Builder.build方法的典型用法代码示例。如果您正苦于以下问题:Java Builder.build方法的具体用法?Java Builder.build怎么用?Java Builder.build使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.datastax.driver.core.Cluster.Builder
的用法示例。
在下文中一共展示了Builder.build方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getClient
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
/**
* Returns a Cassandra session object.
* @return a connection session to Cassandra
*/
public static Session getClient() {
if (session != null) {
return session;
}
try {
Builder builder = Cluster.builder().addContactPoints(DBHOSTS.split(",")).
withPort(DBPORT).withCredentials(DBUSER, DBPASS);
if (SSL) {
builder.withSSL();
}
cluster = builder.build();
session = cluster.connect();
if (!existsTable(Config.getRootAppIdentifier())) {
createTable(session, Config.getRootAppIdentifier());
} else {
session.execute("USE " + DBNAME + ";");
}
logger.debug("Cassandra host: " + DBHOSTS + ":" + DBPORT + ", keyspace: " + DBNAME);
} catch (Exception e) {
logger.error("Failed to connect ot Cassandra: {}.", e.getMessage());
}
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
shutdownClient();
}
});
return session;
}
示例2: SchemaManager
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
@Inject
public SchemaManager(@Named("cassandra.keyspace") String keyspace, @Named("cassandra.host") String host, @Named("cassandra.port") int port,
@Named("cassandra.username") String username, @Named("cassandra.password") String password, @Named("cassandra.ssl") boolean ssl) {
m_keyspace = keyspace;
Builder builder = Cluster.builder()
.withPort(port)
.addContactPoints(host.split(","));
if (username != null && password != null) {
LOG.info("Using username: {} and password: XXXXXXXX", username);
builder.withCredentials(username, password);
}
if (ssl) {
LOG.info("Using SSL.");
builder.withSSL();
}
m_cluster= builder.build();
m_session = m_cluster.connect();
}
示例3: CassandraConfig
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
public CassandraConfig(DataService dataService, String configId, Map<String, String> properties,
boolean odataEnable) throws DataServiceFault {
super(dataService, configId, DataSourceTypes.CASSANDRA, properties, odataEnable);
Builder builder = Cluster.builder();
this.populateSettings(builder, properties);
String keyspace = properties.get(DBConstants.Cassandra.KEYSPACE);
this.cluster = builder.build();
try {
if (keyspace != null && keyspace.trim().length() > 0) {
this.session = this.cluster.connect(keyspace);
} else {
this.session = this.cluster.connect();
}
this.nativeBatchRequestsSupported = this.session.getCluster().
getConfiguration().getProtocolOptions().getProtocolVersion().toInt() > 1;
} catch (NoHostAvailableException e) {
throw new DataServiceFault(e, DBConstants.FaultCodes.CONNECTION_UNAVAILABLE_ERROR, e.getMessage());
}
}
示例4: getCluster
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
protected Cluster getCluster()
{
Builder cb = Cluster.builder();
cb.addContactPoints(contactPoints);
cb.withPort(getPort());
if (getDataCenter() != null)
{
cb.withLoadBalancingPolicy(new DCAwareRoundRobinPolicy(getDataCenter()));
}
enrichCluster(cb);
return cb.build();
}
示例5: LockFactory
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
/**
* Constructor, creates Cassandra session
* @param contactPoints Cassandra cluster contact points
* @param keyspace Keyspace for `lock_leases`
*/
public LockFactory(String contactPoints, String keyspace) {
Builder builder = Cluster.builder();
for (String point : contactPoints.split(",")) {
builder.addContactPoint(point.trim());
}
Cluster cluster = builder.build();
session = cluster.connect();
session.execute("USE " + keyspace);
generalInit();
}
示例6: open
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
public void open() {
if ( cluster == null || session == null ) {
Builder builder = Cluster.builder();
builder.addContactPoints( hosts );
if ( user != null && pass != null && !user.isEmpty() && !pass.isEmpty() ) {
builder = builder.withCredentials( user, pass );
}
cluster = builder.build();
session = cluster.connect( keyspace );
}
}
示例7: connect
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
private void connect(String nodes, String dataCenter, String username, String password) {
Builder builder = Cluster.builder();
if (nodes == null || nodes.isEmpty()) {
throw new RuntimeException(Const.CASS_NODES + " is not defined");
}
if (dataCenter != null && !dataCenter.isEmpty()) {
DCAwareRoundRobinPolicy policy = DCAwareRoundRobinPolicy.builder()
.withLocalDc(dataCenter)
.build();
builder.withLoadBalancingPolicy(policy);
}
String[] nodeParts = nodes.split(",");
for (String node : nodeParts) {
node = node.trim();
if (!node.isEmpty()) {
LOGGER.info("Adding Cassandra node {}", node);
builder.addContactPoint(node);
}
}
if (username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
builder.withCredentials(username, password);
}
cluster = builder.build();
Metadata metadata = cluster.getMetadata();
LOGGER.info("Connected to cluster: {}", metadata.getClusterName());
for (Host host : metadata.getAllHosts()) {
LOGGER.info("Datacenter: {} Host: {} Rack: {}", host.getDatacenter(), host.getAddress(), host.getRack());
}
}
示例8: create
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
@Override
public Cluster create(CassandraServiceInfo serviceInfo,
ServiceConnectorConfig serviceConnectorConfig) {
Builder builder = Cluster.builder()
.addContactPoints(serviceInfo.getContactPoints().toArray(new String[0]))
.withPort(serviceInfo.getPort());
if (StringUtils.hasText(serviceInfo.getUsername())) {
builder.withCredentials(serviceInfo.getUsername(), serviceInfo.getPassword());
}
if (serviceConnectorConfig instanceof CassandraClusterConfig) {
CassandraClusterConfig config = (CassandraClusterConfig) serviceConnectorConfig;
if (config.getCompression() != null) {
builder.withCompression(config.getCompression());
}
builder.withPoolingOptions(config.getPoolingOptions());
builder.withSocketOptions(config.getSocketOptions());
builder.withQueryOptions(config.getQueryOptions());
builder.withNettyOptions(config.getNettyOptions());
builder.withLoadBalancingPolicy(config.getLoadBalancingPolicy());
builder.withReconnectionPolicy(config.getReconnectionPolicy());
builder.withRetryPolicy(config.getRetryPolicy());
builder.withProtocolVersion(config.getProtocolVersion());
if (!config.isMetricsEnabled()) {
builder.withoutMetrics();
}
if (!config.isJmxReportingEnabled()) {
builder.withoutJMXReporting();
}
}
return builder.build();
}
示例9: create
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
@Override
public DataContext create(DataContextProperties properties, ResourceFactoryRegistry resourceFactoryRegistry)
throws UnsupportedDataContextPropertiesException, ConnectionException {
final Map<String, Object> map = properties.toMap();
final Builder clusterBuilder = Cluster.builder();
final String hostname = properties.getHostname();
if (!Strings.isNullOrEmpty(hostname)) {
clusterBuilder.addContactPoints(hostname.split(","));
}
if (properties.getPort() != null) {
clusterBuilder.withPort(properties.getPort());
}
if (map.containsKey("cluster-name")) {
clusterBuilder.withClusterName((String) map.get("cluster-name"));
}
if (properties.getUsername() != null && properties.getPassword() != null) {
clusterBuilder.withCredentials(properties.getUsername(), properties.getPassword());
}
final Cluster cluster = clusterBuilder.build();
final String keySpace = getString(map.get("keyspace"), properties.getDatabaseName());
return new CassandraDataContext(cluster, keySpace, properties.getTableDefs());
}
示例10: init
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
/**
* 描述: 初始化配置
* 时间: 2017年11月15日 上午11:25:07
* @author yi.zhang
* @param servers 服务地址
* @param keyspace 命名空间
* @param username 账号
* @param password 密码
*/
public void init(String servers,String keyspace,String username,String password) {
try {
// socket 链接配置
SocketOptions socket = new SocketOptions();
socket.setKeepAlive(true);
socket.setReceiveBufferSize(1024* 1024);
socket.setSendBufferSize(1024* 1024);
socket.setConnectTimeoutMillis(5 * 1000);
socket.setReadTimeoutMillis(1000);
//设置连接池
PoolingOptions pool = new PoolingOptions();
// pool.setMaxRequestsPerConnection(HostDistance.LOCAL, 32);
// pool.setMaxRequestsPerConnection(HostDistance.REMOTE, 32);
// pool.setCoreConnectionsPerHost(HostDistance.LOCAL, 2);
// pool.setCoreConnectionsPerHost(HostDistance.REMOTE, 2);
// pool.setMaxConnectionsPerHost(HostDistance.LOCAL, 4);
// pool.setMaxConnectionsPerHost(HostDistance.REMOTE, 4);
pool.setHeartbeatIntervalSeconds(60);
pool.setIdleTimeoutSeconds(120);
pool.setPoolTimeoutMillis(5 * 1000);
List<InetSocketAddress> saddress = new ArrayList<InetSocketAddress>();
if (servers != null && !"".equals(servers)) {
for (String server : servers.split(",")) {
String[] address = server.split(":");
String ip = address[0];
int port = 9042;
if (address != null && address.length > 1) {
port = Integer.valueOf(address[1]);
}
saddress.add(new InetSocketAddress(ip, port));
}
}
InetSocketAddress[] addresses = new InetSocketAddress[saddress.size()];
saddress.toArray(addresses);
Builder builder = Cluster.builder();
builder.withSocketOptions(socket);
// 设置压缩方式
builder.withCompression(ProtocolOptions.Compression.LZ4);
// 负载策略
// DCAwareRoundRobinPolicy loadBalance = DCAwareRoundRobinPolicy.builder().withLocalDc("localDc").withUsedHostsPerRemoteDc(2).allowRemoteDCsForLocalConsistencyLevel().build();
// builder.withLoadBalancingPolicy(loadBalance);
// 重试策略
builder.withRetryPolicy(DefaultRetryPolicy.INSTANCE);
builder.withPoolingOptions(pool);
builder.addContactPointsWithPorts(addresses);
builder.withCredentials(username, password);
Cluster cluster = builder.build();
if (keyspace != null && !"".equals(keyspace)) {
session = cluster.connect(keyspace);
} else {
session = cluster.connect();
}
mapping = new MappingManager(session);
} catch (Exception e) {
logger.error("-----Cassandra Config init Error-----", e);
}
}
示例11: CassandraCluster
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
@Inject
public CassandraCluster(final PersisterConfig config) {
this.dbConfig = config.getCassandraDbConfiguration();
QueryOptions qo = new QueryOptions();
qo.setConsistencyLevel(ConsistencyLevel.valueOf(dbConfig.getConsistencyLevel()));
qo.setDefaultIdempotence(true);
String[] contactPoints = dbConfig.getContactPoints();
int retries = dbConfig.getMaxWriteRetries();
Builder builder = Cluster.builder().addContactPoints(contactPoints).withPort(dbConfig.getPort());
builder
.withSocketOptions(new SocketOptions().setConnectTimeoutMillis(dbConfig.getConnectionTimeout())
.setReadTimeoutMillis(dbConfig.getReadTimeout()));
builder.withQueryOptions(qo).withRetryPolicy(new MonascaRetryPolicy(retries, retries, retries));
lbPolicy = new TokenAwarePolicy(
DCAwareRoundRobinPolicy.builder().withLocalDc(dbConfig.getLocalDataCenter()).build());
builder.withLoadBalancingPolicy(lbPolicy);
String user = dbConfig.getUser();
if (user != null && !user.isEmpty()) {
builder.withAuthProvider(new PlainTextAuthProvider(dbConfig.getUser(), dbConfig.getPassword()));
}
cluster = builder.build();
PoolingOptions poolingOptions = cluster.getConfiguration().getPoolingOptions();
poolingOptions.setConnectionsPerHost(HostDistance.LOCAL, dbConfig.getMaxConnections(),
dbConfig.getMaxConnections()).setConnectionsPerHost(HostDistance.REMOTE,
dbConfig.getMaxConnections(), dbConfig.getMaxConnections());
poolingOptions.setMaxRequestsPerConnection(HostDistance.LOCAL, dbConfig.getMaxRequests())
.setMaxRequestsPerConnection(HostDistance.REMOTE, dbConfig.getMaxRequests());
metricsSession = cluster.connect(dbConfig.getKeySpace());
measurementInsertStmt = metricsSession.prepare(MEASUREMENT_INSERT_CQL).setIdempotent(true);
measurementUpdateStmt = metricsSession.prepare(MEASUREMENT_UPDATE_CQL).setIdempotent(true);
metricInsertStmt = metricsSession.prepare(METRICS_INSERT_CQL).setIdempotent(true);
metricUpdateStmt = metricsSession.prepare(METRICS_UPDATE_CQL).setIdempotent(true);
dimensionStmt = metricsSession.prepare(DIMENSION_INSERT_CQL).setIdempotent(true);
dimensionMetricStmt = metricsSession.prepare(DIMENSION_METRIC_INSERT_CQL).setIdempotent(true);
metricDimensionStmt = metricsSession.prepare(METRIC_DIMENSION_INSERT_CQL).setIdempotent(true);
retrieveMetricIdStmt = metricsSession.prepare(RETRIEVE_METRIC_ID_CQL).setIdempotent(true);
retrieveMetricDimensionStmt = metricsSession.prepare(RETRIEVE_METRIC_DIMENSION_CQL)
.setIdempotent(true);
alarmsSession = cluster.connect(dbConfig.getKeySpace());
alarmHistoryInsertStmt = alarmsSession.prepare(INSERT_ALARM_STATE_HISTORY_SQL).setIdempotent(true);
metricIdCache = CacheBuilder.newBuilder()
.maximumSize(config.getCassandraDbConfiguration().getDefinitionMaxCacheSize()).build();
dimensionCache = CacheBuilder.newBuilder()
.maximumSize(config.getCassandraDbConfiguration().getDefinitionMaxCacheSize()).build();
metricDimensionCache = CacheBuilder.newBuilder()
.maximumSize(config.getCassandraDbConfiguration().getDefinitionMaxCacheSize()).build();
logger.info("loading cached definitions from db");
ExecutorService executor = Executors.newFixedThreadPool(250);
//a majority of the ids are for metrics not actively receiving msgs anymore
//loadMetricIdCache(executor);
loadDimensionCache();
loadMetricDimensionCache(executor);
executor.shutdown();
}
示例12: setCluster
import com.datastax.driver.core.Cluster.Builder; //导入方法依赖的package包/类
private void setCluster(Consumer<Builder> clusterBuilderSetter, String user, String password) {
Builder b = Cluster.builder().withCredentials(user, password);
clusterBuilderSetter.accept(b);
cluster = b.build();
}