小编slm*_*slm的帖子

Ruby中的REST客户端示例

任何人都可以用一个例子来解释我,使用REST Client在Rest Web服务中进行GET/POST/PUT操作吗?

在POST/PUT中,使用REST Client,需要传递整个xml主体来进行POST/PUT操作.

例如,使用 REST Client

我需要使用,获取服务的内容,

      RESTClient.get(url)
Run Code Online (Sandbox Code Playgroud)

将xml发布到url:

      RESTClient.post(url,entirexml)
Run Code Online (Sandbox Code Playgroud)

将xml输入URL:

      RESTClient.put(url,entirexml)
Run Code Online (Sandbox Code Playgroud)

使用REST CLIENT进行删除.

任何人都可以通过示例帮助我提供所有REST客户端HTTP方法的示例吗?

我需要使用REST Client的PUT/POST操作将整个XML和命名空间一起发送到休息服务.

如果有人有这方面的例子,那么请发帖.

ruby rest rest-client

12
推荐指数
2
解决办法
5万
查看次数

如何描述Hbase列系列?

我正在寻找一个命令来描述HBase Shell中表中的columnfamily.我无法得到任何命令来试试这个.

hbase

12
推荐指数
1
解决办法
2万
查看次数

AWS Fargate 的性能问题

我们有一个旧的 Java 应用程序在 Jboss As 7.1.1 中运行。目前,该应用程序在 AWS EC2 实例类型 t3.medium 上运行,该实例类型为 2 个 CPU 核心和 4GB 内存。

我们正在尝试使用 CI/CD 和 AWS Fargate 对我们的应用程序进行现代化改造。我们成功地实现了现代化,但不是通过绩效实现的。

Fargate 的任务定义与 EC2 实例具有相同的 CPU 和内存(2048 CPU 和 4096 内存)。Fargate 与 EC2 实例位于同一子网中并链接到同一安全组。我们无法理解性能缓慢的原因。

该应用程序通常搜索音乐作品详细信息(创作者、出版商、艺术家等)。如果我们拍摄一部有大量感兴趣方的音乐作品,在 EC2 实例中需要不到 20 秒,但在 Fargate 中需要大约 30 分钟。

我从 EC2 实例上运行的同一 Jboss 和相同的 Java 版本创建了 docker 映像。

还有一条信息,数据库位于不同的(非 AWS)数据中心。

您能否指导我如何使用 AWS Fargate 实现与旧设置相同的性能?我在 Fargate 中缺少什么?

任务定义

{
    "containerDefinitions": [
      {
        "name": "CONTAINER_NAME",
        "image": "<IMAGE1_NAME>",
        "memory": 4096,
        "essential": true,
        "logConfiguration": {
            "logDriver": "awslogs", …
Run Code Online (Sandbox Code Playgroud)

java jboss7.x aws-fargate

12
推荐指数
1
解决办法
8584
查看次数

在Linux上使用java进程的高iowait

我有一个并发系统,涉及许多机器/节点.每台机器运行几个JVM做不同的东西.它是一个"分层"架构,每个层都包含许多运行在机器上的JVM.基本上,顶层JVM通过文件从外部接收输入,解析输入并在第二层中为"存储"发送尽可能多的小记录.第二层实际上并不保留数据本身,但实际上它仍然存在于第三层(HBase和Solr)中,并且HBase实际上并不持久保存它,因为它将它发送到第四层(HDFS)以实现持久性.

层之间的大多数通信是同步的,因此它当然会在很多线程中等待较低层完成.但我希望那些等待的线程能够"免费"使用CPU.

我看到一个非常高的iowait(顶部%wa) - 像80-90%的iowait和只有10-20%的sys/usr CPU使用率.系统似乎已经筋疲力尽 - 通过ssh登录速度慢,对命令响应速度慢等.

我的问题是,所有那些等待较低层完成的JVM线程是否会导致这种情况?它不应该是"免费"等待响应(套接字).对此有关重要,不同的层是否使用阻塞或非阻塞(NIO)io?究竟在什么情况下Linux算作iowait(%wa在顶部)?当机器上所有JVM中的所有线程都处于等待状态时(因为在此期间没有其他线程可以运行以执行某些有意义的操作)?或者即使有其他进程准备好使用CPU进行实际处理,线程等待也会计入%wa?

我真的想彻底解释它是如何工作的以及如何解释这个高%wa.在开始时我猜想当所有线程都在等待时它会被计为%wa,但实际上还有足够的空间来做更多,所以我试图增加线程数量,期望获得更多吞吐量,但这不会发生.所以这是一个真正的问题,而不仅仅是看顶部的"视觉"问题.

以下输出取自仅运行HBase和HDFS的计算机.它在HBase和/或HDFS的机器上显示的问题(最清楚)

--- jps ---
19498 DataNode
19690 HRegionServer
19327 SecondaryNameNode

---- typical top -------
top - 11:13:21 up 14 days, 18:20,  1 user,  load average: 4.83, 4.50, 4.25
Tasks:  99 total,   1 running,  98 sleeping,   0 stopped,   0 zombie
Cpu(s): 14.1%us,  4.3%sy,  0.0%ni,  5.4%id, 74.8%wa,  0.0%hi,  1.3%si,  0.0%st
Mem:   7133800k total,  7099632k used,    34168k free,    55540k buffers
Swap:   487416k total,      248k used,   487168k free,  2076804k cached
  PID USER      PR  NI …
Run Code Online (Sandbox Code Playgroud)

java concurrency hadoop iowait

11
推荐指数
1
解决办法
6052
查看次数

如何在不知道其版本号的情况下以编程方式安装最新的epel-release rpm?

我在这里的第一篇文章,但我google了,找不到一个简单的方法来做到这一点.

我有一个程序,当它们上线时自动配置新的CentOS Linux服务器.作为该过程的一部分,它安装了最新版本的epel-release rpm.

我使用的命令如下所示:

$ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm && \
     yum clean all
Run Code Online (Sandbox Code Playgroud)

这很有效......直到他们将rpm文件更改为epel-release-6-8.noarch,然后是epel-release-6-9.noarch,依此类推.他们似乎每3-4个月更新一次版本.这是一个问题,因为如果存储库更新了epel-release版本号,我的脚本将会失败,因为它不知道该版本应该是什么.

我找不到可能重定向到最新的epel rpm文件的链接,所以我别无选择,只能将版本硬编码到我的安装脚本中,并在失败时更改它.

任何人都知道一种简单的(非硬编码)方式来下载最新的epel rpm而不知道版本号?我希望有一种方式不会涉及到repo文件列表中的卷曲和grep'ing url,但好奇有人可能会建议什么?

centos rpm yum

11
推荐指数
1
解决办法
1万
查看次数

使用jq一次删除多个键

我需要从一些JSON(使用jq)一次删除多个键,并且我试图了解是否有更好的方法来执行此操作,而不是每次都调用map和del.这是我的输入数据:

test.json

[
  {
    "label": "US : USA : English",
    "Country": "USA",
    "region": "US",
    "Language": "English",
    "locale": "en",
    "currency": "USD",
    "number": "USD"
  },
  {
    "label": "AU : Australia : English",
    "Country": "Australia",
    "region": "AU",
    "Language": "English",
    "locale": "en",
    "currency": "AUD",
    "number": "AUD"
  },
  {
    "label": "CA : Canada : English",
    "Country": "Canada",
    "region": "CA",
    "Language": "English",
    "locale": "en",
    "currency": "CAD",
    "number": "CAD"
  }
]
Run Code Online (Sandbox Code Playgroud)

对于每个项目,我想删除数字,语言和国家/地区键.我可以用这个命令做到这一点:

$ cat test.json | jq 'map(del(.Country)) | map(del(.number)) | map(del(.Language))'
Run Code Online (Sandbox Code Playgroud)

这很好,我得到了所需的输出:

[
  {
    "label": "US …
Run Code Online (Sandbox Code Playgroud)

jq

11
推荐指数
6
解决办法
1万
查看次数

如何在没有hosts文件的情况下运行Ansible

如何在没有hosts文件的情况下运行Ansible

就像:

__CODE__

谢谢

shell ansible

11
推荐指数
2
解决办法
2万
查看次数

如何修复 Kubernetes NodeUnderDiskPressure 错误?

创建一个简单的 hello world 部署后,我的 pod 状态显示为“PENDING”。当我kubectl describe pod在 pod 上运行时,我得到以下信息:

Events:
  Type     Reason            Age                From               Message
  ----     ------            ----               ----               -------
  Warning  FailedScheduling  14s (x6 over 29s)  default-scheduler  0/1 nodes are available: 1 NodeUnderDiskPressure.
Run Code Online (Sandbox Code Playgroud)

如果我检查我的节点健康状况,我会得到:

Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  OutOfDisk        False   Fri, 27 Jul 2018 15:17:27 -0700   Fri, 27 Jul 2018 14:13:33 -0700   KubeletHasSufficientDisk     kubelet has sufficient disk space available
  MemoryPressure   False   Fri, 27 Jul 2018 15:17:27 -0700   Fri, …
Run Code Online (Sandbox Code Playgroud)

kubernetes

11
推荐指数
2
解决办法
4万
查看次数

我可以运行tmpfs大小

我正在尝试使用/ dev/shm tmpfs来编写我的文件.默认值是没有交换的物理RAM的一半.当我写出超出此挂载大小的内容时,会出现错误"磁盘上没有剩余空间".

我的问题是,它不应该使用交换空间而不是错误输出吗?有没有办法可以通过一个选项让我的应用程序耗尽比为tmpfs分配的更多?

如果我的某个进程正在运行并且几乎占用了/ dev/shm中的所有空间并且我有另一个正在运行的进程(在/ dev/shm之外),它还使用了超过50%的RAM空间,会发生什么?换了哪一个?

例如,假设我的总物理内存为40 GB,tmpfs为20 GB.其中一个进程是使用/ dev/shm,大约是20GB.现在还有另一个进程正在运行,大约需要30GB.换出哪一个进程?还是无法确定?

linux shared-memory

10
推荐指数
1
解决办法
2万
查看次数

如何设置Elasticsearch客户端节点?

我有几个关于客户端节点的Elasticsearch问题:

  1. 我可以说:任何节点,只要它们打开HTTP端口,我就可以将它们视为"客户端"节点,因为我们可以通过这个节点进行搜索/索引.

  2. 其实我们对待节点客户端节点时cluster=falsedata=false,如果我设立了10个客户节点,我需要在我的客户端的路线,我的意思是如果我指定clientOne:9200在我的代码为ES门户网站,然后将clientOne着其他HTTP请求到其他客户端节点,否则,clientOne将承受很大的压力.即他们是否在客户端节点之间相互通信?

  3. 当我在ES集群中指定客户端节点时,是否应该关闭其他节点的HTTP端口?因为我们只能查询客户端节点.

  4. 您是否认为有必要在同一台机器中设置数据节点和客户机节点,或者只是设置数据节点也充当客户机节点,无论如何它都在同一台机器上?

  5. 如果ES群集在搜索次数较少/经常被索引的情况下,那么我不必设置客户端节点,因为客户端节点有利于收集数据,对吗?

  6. 对于一般的搜索/索引目的,我应该使用http端口还是tcp端口,请问客户角度有什么区别?

elasticsearch

10
推荐指数
1
解决办法
9176
查看次数