小编Kri*_*urg的帖子

goproxy 后面的 gPRC 返回证书错误,无需代理即可正常工作

我有一个 gRPC 客户端和服务器,两者都使用 ssl 证书进行保护。如果没有代理,这些工作就很好。作为测试,当我故意创建有缺陷的证书时,它会失败。稍后在本文中证明这不是证书问题。

gRPC 服务器代码:

// Creates a new gRPC server
// Create the TLS credentials
creds, err := credentials.NewServerTLSFromFile("configs/cert/servercert.pem", "configs/cert/serverkey.pem")
if err != nil {
    log.Fatalf("could not load TLS keys: %s", err)
}
// Create an array of gRPC options with the credentials
opts := []grpc.ServerOption{grpc.Creds(creds)}
// create a gRPC server object
s := grpc.NewServer(opts...)
Run Code Online (Sandbox Code Playgroud)

gRPC 客户端代码:

// Create the client TLS credentials
creds, err := credentials.NewClientTLSFromFile("configs/cert/servercert.pem", "")
if err != nil {
    log.Fatalf("could not load tls …
Run Code Online (Sandbox Code Playgroud)

ssl proxy go docker grpc

5
推荐指数
1
解决办法
3276
查看次数

机器学习实体候选评分(非识别)

我试图了解 Google 的Smart Linkify背后的机器学习部分。文章陈述了以下关于他们的generate candidate entities模型。

给定的输入文本首先被拆分为单词(基于空格分隔),然后生成特定最大长度(在我们的例子中为 15 个单词)的所有可能的单词子序列,并且为每个候选者评分神经网络分配一个值(介于 0 和1) 基于它是否代表有效实体:

在此处输入图片说明

接下来,删除重叠的生成实体,优先考虑得分较高的实体而不是得分较低的冲突实体。

如果我理解正确,模型会尝试句子中的每个单词以及最多 15 个单词的组合?

你如何训练这样的模型?我认为这是监督学习,但不明白如何标记这些数据。它是否类似于实体由字符位置指定的 NER?并且数据中只有 2 个实体,entity并且non-entity.

而对于模型的输出,也就是所谓的“候选分数”,一个神经网络怎么能返回一个单一的数值呢?(分数)。或者输出层只是一个节点?

更详细的解释:

  • Possible word subsequences of certain maximum length 意味着它会考虑每个单词之前的 7 个单词和单词之后的 7 个单词?
  • 当它是二元分类时,神经网络如何生成分数entity并且non-entity?或者它们是指实体的概率分数?
  • 如何训练二进制 NER?与任何其他 NER 一样,除了将所有实体替换为“实体”,然后生成负样本non-entity?
  • 当这个模型处理文本中的每个单词以及该单词前后的 7 个单词时,它如何能像他们声称的那样快速?

是我要找的,去了解。

python nlp machine-learning neural-network tensorflow

5
推荐指数
1
解决办法
158
查看次数

通过 RoundTrip 的 Go 速率限制 http.client 超出限制并产生致命恐慌

我的目标:设置每分钟 600 个请求的速率限制,并在下一分钟重置。http.client我的目的是通过设置 aRoundTrip和 a来做到这一点limit.wait()。这样我就可以为不同的情况设置不同的限制http.clients(),并通过处理限制roundtrip,而不是在其他地方增加代码的复杂性。

问题是没有遵守速率限制,我仍然超出了允许的请求数量并且设置超时会产生致命的恐慌net/http: request canceled (Client.Timeout exceeded while awaiting headers)

我创建了一个main.go可以复制该问题的准系统。请注意,64000 循环对我来说是一个现实场景。

更新:设置ratelimiter: rate.NewLimiter(10, 10),仍然超出 600 速率限制,并Context deadline exceeded在设置超时时产生错误。

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "sync"
    "time"

    "golang.org/x/time/rate"
)

var client http.Client

// ThrottledTransport Rate Limited HTTP Client
type ThrottledTransport struct {
    roundTripperWrap http.RoundTripper
    ratelimiter      *rate.Limiter
}

func (c *ThrottledTransport) RoundTrip(r *http.Request) (*http.Response, error) {
    err := …
Run Code Online (Sandbox Code Playgroud)

timeout http go rate-limiting

5
推荐指数
1
解决办法
2255
查看次数

微服务CQRS单独构建(编写)查询模型和读取模型

以下场景

每分钟从队列接收 60,000 条消息。REST API 每分钟提供这些消息 10 次的数据。

我有一个带有事件溯源和 CQRS 的微服务架构。所以我的命令已经与查询部分分开了。问题在于同步查询和查询它,而不是命令部分。

每隔几分钟,就会使用event-sourcing模式发送约 60,000 个命令并将其存储为事件。通过 CQRS,实际数据(而不是事件)被同步到将其存储在数据库中的另一个服务。与此同时,数据每隔几分钟仅被读取十几次。

换句话说。该服务接收 60,000 个写入操作,但仅接收十几个读取操作。

我真的很想遵守微服务的设计模式,又名,one database per service但出于扩展原因,我认为这在我的场景中不可行。写入数据库需要比读取数据库显着扩展。

我看到了类似的问题,但答案建议使用 CQRS,我已经实现了。之前有人告诉我要删除事件源,但这仍然给我留下了 60,000 次写入和 10 次读取。

我应该采用什么架构来独立扩展读取和写入?我正在考虑创建两个单独的服务,但这违反了one database per service模式。

scaling design-patterns cqrs event-sourcing microservices

4
推荐指数
1
解决办法
3347
查看次数

Golang HTTP 请求工作池

我正在尝试构建一个系统、工作池/作业队列,以http requests在每个 API 端点上尽可能多地处理。我查看了这个示例并让它工作得很好,只是我偶然发现了一个问题,我不明白如何将它扩展pool / jobqueue到不同的端点。

出于场景考虑,让我们绘制一个 Golang http 服务器,它在不同的端点和请求类型GETPOSTETC上有 100 万个请求/分钟。

我如何扩展这个概念?我是否应该为每个端点创建不同的工作池和作业。或者我可以创建不同的作业并将它们输入同一个队列并让相同的池处理这些作业吗?

我想保持简单,如果我创建一个新的 API 端点,我不必创建新的工作池,所以我可以只关注 api。但性能也非常重要。

我正在尝试构建的代码取自前面链接的示例,这里是其他人的 github 'gist' 使用此代码。

api multithreading go goroutine

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

计算ul中的所有第一个列表项

我想知道如何计算div中的所有列表项.

<ul class="menu">
    <li><a href="#">Home</a>
    </li>
    <li><a href="#">Contact</a>
    </li>
    <li><a>Information</a>
        <ul>
            <li><a href="#">History</a>
            </li>
            <li><a href="#">Present</a>
            </li>
            <li><a href="#">Future</a>
            </li>
        </ul>
    </li>
    <li><a>Tutorials</a>
        <ul>
            <li><a href="#">HTML/CSS</a>
            </li>
            <li><a href="#">Javascript</a>
            </li>
            <li><a href="#">Jquery</a>
            </li>
            <li><a href="#">PHP</a>
            </li>
        </ul>
    </li>
    <li><a href="#">Structure</a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我如何计算里面的所有列表元素ul class=menu?而不是更深入的UL列表项.

我的意思是如何计算主页,联系人,信息,教程,结构,而不是我刚刚提到的这些内容列表元素.

当然我做了一些研究,但找不到正确的答案.这里有点重复:jQuery:列出元素的数量?

html javascript jquery count html-lists

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

可变的结构域的一部分

我的应用程序具有这样的结构片段

type ItemOrder struct {
    ItemId
    ...
}

var items = []*ItemOrder
Run Code Online (Sandbox Code Playgroud)

可变函数接受 ...int

func ItemIds(lang string, ids ...int){
...
Run Code Online (Sandbox Code Playgroud)

如何从items []*ItemOrder切片中获取所有itemIds 并将其提供给可变参数函数?就像是

itemsPB, err := ItemIds("", items[:].itemId)
Run Code Online (Sandbox Code Playgroud)

Abov无法正常工作,因为我没有给切片提供从中提取itemId的位置。

struct variadic go slice

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