• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java MessageOut类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.cassandra.net.MessageOut的典型用法代码示例。如果您正苦于以下问题:Java MessageOut类的具体用法?Java MessageOut怎么用?Java MessageOut使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



MessageOut类属于org.apache.cassandra.net包,在下文中一共展示了MessageOut类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: finishParentSession

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public synchronized void finishParentSession(UUID parentSession, Set<InetAddress> neighbors, boolean doAntiCompaction) throws InterruptedException, ExecutionException, IOException
{
    try
    {
        if (doAntiCompaction)
        {
            for (InetAddress neighbor : neighbors)
            {
                AnticompactionRequest acr = new AnticompactionRequest(parentSession);
                MessageOut<RepairMessage> req = acr.createMessage();
                MessagingService.instance().sendOneWay(req, neighbor);
            }
            List<Future<?>> futures = doAntiCompaction(parentSession);
            FBUtilities.waitOnFutures(futures);
        }
    }
    finally
    {
        parentRepairSessions.remove(parentSession);
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:22,代码来源:ActiveRepairService.java


示例2: sendReplicationNotification

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
 * Sends a notification to a node indicating we have finished replicating data.
 *
 * @param remote node to send notification to
 */
private void sendReplicationNotification(InetAddress remote)
{
    // notify the remote token
    MessageOut msg = new MessageOut(MessagingService.Verb.REPLICATION_FINISHED);
    IFailureDetector failureDetector = FailureDetector.instance;
    if (logger.isDebugEnabled())
        logger.debug("Notifying {} of replication completion\n", remote);
    while (failureDetector.isAlive(remote))
    {
        AsyncOneResponse iar = MessagingService.instance().sendRR(msg, remote);
        try
        {
            iar.get(DatabaseDescriptor.getRpcTimeout(), TimeUnit.MILLISECONDS);
            return; // done
        }
        catch(TimeoutException e)
        {
            // try again
        }
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:27,代码来源:StorageService.java


示例3: makeRequests

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void makeRequests(ReadCommand readCommand, Iterable<InetAddress> endpoints)
{
    MessageOut<ReadCommand> message = null;
    boolean hasLocalEndpoint = false;

    for (InetAddress endpoint : endpoints)
    {
        if (isLocalRequest(endpoint))
        {
            hasLocalEndpoint = true;
            continue;
        }

        logger.trace("reading {} from {}", readCommand.isDigestQuery() ? "digest" : "data", endpoint);
        if (message == null)
            message = readCommand.createMessage();
        MessagingService.instance().sendRR(message, endpoint, handler);
    }

    // We delay the local (potentially blocking) read till the end to avoid stalling remote requests.
    if (hasLocalEndpoint)
    {
        logger.trace("reading {} locally", readCommand.isDigestQuery() ? "digest" : "data");
        StageManager.getStage(Stage.READ).maybeExecuteImmediately(new LocalReadRunnable(command, handler));
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:27,代码来源:AbstractReadExecutor.java


示例4: sendGossip

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
 * Returns true if the chosen target was also a seed. False otherwise
 *
 * @param message
 * @param epSet   a set of endpoint from which a random endpoint is chosen.
 * @return true if the chosen endpoint is also a seed.
 */
private boolean sendGossip(MessageOut<GossipDigestSyn> message, Set<InetAddress> epSet)
{
    List<InetAddress> liveEndpoints = ImmutableList.copyOf(epSet);
    
    int size = liveEndpoints.size();
    if (size < 1)
        return false;
    /* Generate a random number from 0 -> size */
    int index = (size == 1) ? 0 : random.nextInt(size);
    InetAddress to = liveEndpoints.get(index);
    if (logger.isTraceEnabled())
        logger.trace("Sending a GossipDigestSyn to {} ...", to);
    MessagingService.instance().sendOneWay(message, to);
    return seeds.contains(to);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:23,代码来源:Gossiper.java


示例5: doGossipToSeed

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void doGossipToSeed(MessageOut<GossipDigestSyn> prod)
{
    int size = seeds.size();
    if (size > 0)
    {
        if (size == 1 && seeds.contains(FBUtilities.getBroadcastAddress()))
        {
            return;
        }

        if (liveEndpoints.size() == 0)
        {
            sendGossip(prod, seeds);
        }
        else
        {
            /* Gossip with the seed with some probability. */
            double probability = seeds.size() / (double) (liveEndpoints.size() + unreachableEndpoints.size());
            double randDbl = random.nextDouble();
            if (randDbl <= probability)
                sendGossip(prod, seeds);
        }
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:25,代码来源:Gossiper.java


示例6: doVerb

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public void doVerb(MessageIn<ReadCommand> message, int id)
{
    if (StorageService.instance.isBootstrapMode())
    {
        throw new RuntimeException("Cannot service reads while bootstrapping!");
    }

    ReadCommand command = message.payload;
    Keyspace keyspace = Keyspace.open(command.ksName);
    Row row;
    try
    {
        row = command.getRow(keyspace);
    }
    catch (TombstoneOverwhelmingException e)
    {
        // error already logged.  Drop the request
        return;
    }

    MessageOut<ReadResponse> reply = new MessageOut<ReadResponse>(MessagingService.Verb.REQUEST_RESPONSE,
                                                                  getResponse(command, row),
                                                                  ReadResponse.serializer);
    Tracing.trace("Enqueuing response to {}", message.from);
    MessagingService.instance().sendReply(reply, id, message.from);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:27,代码来源:ReadVerbHandler.java


示例7: sendReplicationNotification

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
 * Sends a notification to a node indicating we have finished replicating data.
 *
 * @param remote node to send notification to
 */
private void sendReplicationNotification(InetAddress remote)
{
    // notify the remote token
    MessageOut msg = new MessageOut(MessagingService.Verb.REPLICATION_FINISHED);
    IFailureDetector failureDetector = FailureDetector.instance;
    if (logger.isDebugEnabled())
        logger.debug("Notifying " + remote.toString() + " of replication completion\n");
    while (failureDetector.isAlive(remote))
    {
        AsyncOneResponse iar = MessagingService.instance().sendRR(msg, remote);
        try
        {
            iar.get(DatabaseDescriptor.getRpcTimeout(), TimeUnit.MILLISECONDS);
            return; // done
        }
        catch(TimeoutException e)
        {
            // try again
        }
    }
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:27,代码来源:StorageService.java


示例8: makeDigestRequests

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
protected void makeDigestRequests(Iterable<InetAddress> endpoints)
{
    ReadCommand digestCommand = command.copy();
    digestCommand.setDigestQuery(true);
    MessageOut<?> message = digestCommand.createMessage();
    for (InetAddress endpoint : endpoints)
    {
        if (isLocalRequest(endpoint))
        {
            logger.trace("reading digest locally");
            StageManager.getStage(Stage.READ).execute(new LocalReadRunnable(digestCommand, handler));
        }
        else
        {
            logger.trace("reading digest from {}", endpoint);
            MessagingService.instance().sendRR(message, endpoint, handler);
        }
    }
}
 
开发者ID:pgaref,项目名称:ACaZoo,代码行数:20,代码来源:AbstractReadExecutor.java


示例9: makeRequests

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void makeRequests(ReadCommand readCommand, Iterable<InetAddress> endpoints)
{
    boolean hasLocalEndpoint = false;

    for (InetAddress endpoint : endpoints)
    {
        if (StorageProxy.canDoLocalRequest(endpoint))
        {
            hasLocalEndpoint = true;
            continue;
        }

        if (traceState != null)
            traceState.trace("reading {} from {}", readCommand.isDigestQuery() ? "digest" : "data", endpoint);
        logger.trace("reading {} from {}", readCommand.isDigestQuery() ? "digest" : "data", endpoint);
        MessageOut<ReadCommand> message = readCommand.createMessage(MessagingService.instance().getVersion(endpoint));
        MessagingService.instance().sendRRWithFailure(message, endpoint, handler);
    }

    // We delay the local (potentially blocking) read till the end to avoid stalling remote requests.
    if (hasLocalEndpoint)
    {
        logger.trace("reading {} locally", readCommand.isDigestQuery() ? "digest" : "data");
        StageManager.getStage(Stage.READ).maybeExecuteImmediately(new LocalReadRunnable(command, handler));
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:27,代码来源:AbstractReadExecutor.java


示例10: maybeGossipToSeed

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void maybeGossipToSeed(MessageOut<GossipDigestSyn> prod)
{
    int size = seeds.size();
    if (size > 0)
    {
        if (size == 1 && seeds.contains(FBUtilities.getBroadcastAddress()))
        {
            return;
        }

        if (liveEndpoints.size() == 0)
        {
            sendGossip(prod, seeds);
        }
        else
        {
            /* Gossip with the seed with some probability. */
            double probability = seeds.size() / (double) (liveEndpoints.size() + unreachableEndpoints.size());
            double randDbl = random.nextDouble();
            if (randDbl <= probability)
                sendGossip(prod, seeds);
        }
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:25,代码来源:Gossiper.java


示例11: stop

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public void stop()
{
    EndpointState mystate = endpointStateMap.get(FBUtilities.getBroadcastAddress());
    if (mystate != null && !isSilentShutdownState(mystate))
    {
        logger.info("Announcing shutdown");
        addLocalApplicationState(ApplicationState.STATUS, StorageService.instance.valueFactory.shutdown(true));
        MessageOut message = new MessageOut(MessagingService.Verb.GOSSIP_SHUTDOWN);
        for (InetAddress ep : liveEndpoints)
            MessagingService.instance().sendOneWay(message, ep);
        Uninterruptibles.sleepUninterruptibly(Integer.getInteger("cassandra.shutdown_announce_in_ms", 2000), TimeUnit.MILLISECONDS);
    }
    else
        logger.warn("No local state or state is in silent shutdown, not announcing shutdown");
    if (scheduledGossipTask != null)
        scheduledGossipTask.cancel(false);
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:18,代码来源:Gossiper.java


示例12: enqueue

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public synchronized void enqueue(MessageOut<?> message, int id) throws IOException {
    long timestamp = System.currentTimeMillis();
    out.writeInt(MessagingService.PROTOCOL_MAGIC);

    if (targetVersion < MessagingService.VERSION_20)
        out.writeUTF(String.valueOf(id));
    else
        out.writeInt(id);
    out.writeInt((int) timestamp);
    message.serialize(out, targetVersion);
    out.flush();
}
 
开发者ID:tolbertam,项目名称:sstable-tools,代码行数:13,代码来源:StorageConnection.java


示例13: doVerb

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public void doVerb(MessageIn<SnapshotCommand> message, int id)
{
    SnapshotCommand command = message.payload;
    if (command.clear_snapshot)
    {
        Keyspace.clearSnapshot(command.snapshot_name, command.keyspace);
    }
    else
        Keyspace.open(command.keyspace).getColumnFamilyStore(command.column_family).snapshot(command.snapshot_name);
    logger.debug("Enqueuing response to snapshot request {} to {}", command.snapshot_name, message.from);
    MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:13,代码来源:SnapshotVerbHandler.java


示例14: pushSchemaMutation

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private static void pushSchemaMutation(InetAddress endpoint, Collection<Mutation> schema)
{
    MessageOut<Collection<Mutation>> msg = new MessageOut<>(MessagingService.Verb.DEFINITIONS_UPDATE,
                                                            schema,
                                                            MigrationsSerializer.instance);
    MessagingService.instance().sendOneWay(msg, endpoint);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:8,代码来源:MigrationManager.java


示例15: processOutboundMessage

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public static MessageOut processOutboundMessage(MessageOut message, int id, InetAddress to)
{
    if (messageSinks.isEmpty())
        return message;

    for (IMessageSink ms : messageSinks)
    {
        message = ms.handleMessage(message, id, to);
        if (message == null)
            return null;
    }
    return message;
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:14,代码来源:SinkManager.java


示例16: doGossipToLiveMember

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private boolean doGossipToLiveMember(MessageOut<GossipDigestSyn> message)
{
    int size = liveEndpoints.size();
    if (size == 0)
        return false;
    return sendGossip(message, liveEndpoints);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:8,代码来源:Gossiper.java


示例17: doGossipToUnreachableMember

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void doGossipToUnreachableMember(MessageOut<GossipDigestSyn> message)
{
    double liveEndpointCount = liveEndpoints.size();
    double unreachableEndpointCount = unreachableEndpoints.size();
    if (unreachableEndpointCount > 0)
    {
        /* based on some probability */
        double prob = unreachableEndpointCount / (liveEndpointCount + 1);
        double randDbl = random.nextDouble();
        if (randDbl < prob)
            sendGossip(message, unreachableEndpoints.keySet());
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:14,代码来源:Gossiper.java


示例18: markAlive

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void markAlive(final InetAddress addr, final EndpointState localState)
{
    if (MessagingService.instance().getVersion(addr) < MessagingService.VERSION_20)
    {
        realMarkAlive(addr, localState);
        return;
    }

    localState.markDead();

    MessageOut<EchoMessage> echoMessage = new MessageOut<EchoMessage>(MessagingService.Verb.ECHO, new EchoMessage(), EchoMessage.serializer);
    logger.trace("Sending a EchoMessage to {}", addr);
    IAsyncCallback echoHandler = new IAsyncCallback()
    {
        public boolean isLatencyForSnitch()
        {
            return false;
        }

        public void response(MessageIn msg)
        {
            realMarkAlive(addr, localState);
        }
    };

    MessagingService.instance().sendRR(echoMessage, addr, echoHandler);
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:28,代码来源:Gossiper.java


示例19: doShadowRound

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
 *  Do a single 'shadow' round of gossip, where we do not modify any state
 *  Only used when replacing a node, to get and assume its states
 */
public void doShadowRound()
{
    buildSeedsList();
    // send a completely empty syn
    List<GossipDigest> gDigests = new ArrayList<GossipDigest>();
    GossipDigestSyn digestSynMessage = new GossipDigestSyn(DatabaseDescriptor.getClusterName(),
            DatabaseDescriptor.getPartitionerName(),
            gDigests);
    MessageOut<GossipDigestSyn> message = new MessageOut<GossipDigestSyn>(MessagingService.Verb.GOSSIP_DIGEST_SYN,
            digestSynMessage,
            GossipDigestSyn.serializer);
    inShadowRound = true;
    for (InetAddress seed : seeds)
        MessagingService.instance().sendOneWay(message, seed);
    int slept = 0;
    try
    {
        while (true)
        {
            Thread.sleep(1000);
            if (!inShadowRound)
                break;
            slept += 1000;
            if (slept > StorageService.RING_DELAY)
                throw new RuntimeException("Unable to gossip with any seeds");
        }
    }
    catch (InterruptedException wtf)
    {
        throw new RuntimeException(wtf);
    }
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:37,代码来源:Gossiper.java


示例20: testRemoveHostId

import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
@Test
public void testRemoveHostId() throws InterruptedException
{
    // start removal in background and send replication confirmations
    final AtomicBoolean success = new AtomicBoolean(false);
    Thread remover = new Thread()
    {
        public void run()
        {
            try
            {
                ss.removeNode(removalId.toString());
            }
            catch (Exception e)
            {
                System.err.println(e);
                e.printStackTrace();
                return;
            }
            success.set(true);
        }
    };
    remover.start();

    Thread.sleep(1000); // make sure removal is waiting for confirmation

    assertTrue(tmd.isLeaving(removalhost));
    assertEquals(1, tmd.getLeavingEndpoints().size());

    for (InetAddress host : hosts)
    {
        MessageOut msg = new MessageOut(host, MessagingService.Verb.REPLICATION_FINISHED, null, null, Collections.<String, byte[]>emptyMap());
        MessagingService.instance().sendRR(msg, FBUtilities.getBroadcastAddress());
    }

    remover.join();

    assertTrue(success.get());
    assertTrue(tmd.getLeavingEndpoints().isEmpty());
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:41,代码来源:RemoveTest.java



注:本文中的org.apache.cassandra.net.MessageOut类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java AnnotatedBytes类代码示例发布时间:2022-05-22
下一篇:
Java SimpleAttribute类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap