The current state of golang AWS clients

blov · · 1169 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>I took a brief purview of the current state of AWS clients for golang and it is dizzying. There are myriad libraries -- many which seem half-baked, unmaintained, or feature incomplete. Many are just continued forks of forks. I&#39;m specifically looking for a robust SQS client. </p> <p>I thought I&#39;d just query here to see if anyone is using one that they could recommend?</p> <hr/>**评论:**<br/><br/>djhworld: <pre><p>It used to be a confusing mess of forks and libraries with similar sounding names.</p> <p>AWS have backed this one though <a href="https://github.com/awslabs/aws-sdk-go">https://github.com/awslabs/aws-sdk-go</a> (see the announcement from their blog here <a href="https://aws.amazon.com/blogs/aws/coming-soon-aws-sdk-for-go/">https://aws.amazon.com/blogs/aws/coming-soon-aws-sdk-for-go/</a>)</p></pre>codemac: <pre><p>I&#39;ve been using the <code>aws-sdk-go</code> library for work with much success, albeit not for sqs</p></pre>Mteigers: <pre><p>Just be cautious about the one AWS is backing. It&#39;s still under development and they let you know that. We use it in production and three times now have had to address changes they have pushed. </p> <p>It&#39;s a great library and easy to use. But they keep changing it up and sometimes it feels like they&#39;re just changing it because they like to not because it makes more sense. The most recent change took me about an hour and a half to resolve the issues they introduced. So not awful. </p></pre>Asurendra: <pre><p><a href="https://github.com/awslabs/aws-sdk-go">https://github.com/awslabs/aws-sdk-go</a> <a href="https://github.com/awslabs/aws-sdk-go/blob/master/service/sqs/service.go">https://github.com/awslabs/aws-sdk-go/blob/master/service/sqs/service.go</a></p> <p>I&#39;ve also used these for other stuff: <a href="https://github.com/mitchellh/goamz">https://github.com/mitchellh/goamz</a> <a href="https://github.com/rlmcpherson/s3gof3r">https://github.com/rlmcpherson/s3gof3r</a></p></pre>UsernameOfRassilon: <pre><p>Kwame&#39;s up to some different things these days, I see. </p></pre>mwholt: <pre><p>There&#39;s a lib here that simply signs requests to AWS, allowing you to craft your own: <a href="http://github.com/smartystreets/go-aws-auth" rel="nofollow">http://github.com/smartystreets/go-aws-auth</a></p></pre>rogpeppe: <pre><p>Gustavo Niemeyer&#39;s AWS packages (e.g. <a href="http://godoc.org/gopkg.in/amz.v1" rel="nofollow">http://godoc.org/gopkg.in/amz.v1</a> ) are well maintained and stable, although not feature complete.</p> <p>No SQS client there though, I&#39;m afraid.</p></pre>kwame_kilpatrick: <pre><p>Thanks for the feedback -- def helpful.</p></pre>ChugalugHouse: <pre><p>Also something to watch out for, we are heavy users of DynamoDB and very few popular clients implement things like exponential back-off and retry. Even fewer come with the hint to use a sensible http.Transport with good timeouts.</p> <p>Another thing to consider is to be aware of your scale as it relates to number of idle connections. In high throughput scenarios, it makes sense to evaluate and maybe increase your http.Transport.MaxIdleConnsPerHost to reduce the amount of time spent connecting and performing a TLS handshake. This is much more time consuming and CPU intensive than you might imagine, so it&#39;s a good thing to have a generous stable of idle connections that are already established.</p></pre>

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1169 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传