小编Wie*_*ema的帖子

正则表达式与多行模式中的空字符串不匹配(Java)

我刚观察到这种行为;

Pattern p1 = Pattern.compile("^$");
Matcher m1 = p1.matcher("");
System.out.println(m1.matches()); /* true */

Pattern p2 = Pattern.compile("^$", Pattern.MULTILINE);
Matcher m2 = p2.matcher("");
System.out.println(m2.matches()); /* false */
Run Code Online (Sandbox Code Playgroud)

令我感到奇怪的是,最后一句话是错误的.这就是文档所说的;

默认情况下,正则表达式^和$忽略行终止符,并且仅分别匹配整个输入序列的开头和结尾.如果激活MULTILINE模式,则^在输入开始时和任何行终止符之后匹配,但输入结束时除外.当处于MULTILINE模式时,$匹配在行终止符之前或输入序列的结尾.HTTP://docs.oracle.com/javase/1.4.2 ...

从我得到的,它应该匹配?以下使事情变得更加混乱;

Pattern p3 = Pattern.compile("^test$");
Matcher m3 = p3.matcher("test");
System.out.println(m3.matches()); /* true */

Pattern p4 = Pattern.compile("^test$", Pattern.MULTILINE);
Matcher m4 = p4.matcher("test");
System.out.println(m4.matches()); /* true */
Run Code Online (Sandbox Code Playgroud)

这是什么?我怎么理解这个?我希望有人可以对此有所了解,真的很感激.

java regex

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

使用 Google Cloud Run 进行 Stackdriver Trace

我一直在深入研究 Google Cloud Run 上的 Stackdriver Trace 集成。我可以让它与代理一起工作,但有几个问题困扰着我。

鉴于

  • Stackdriver 代理在一个小缓冲区中聚合跟踪并定期发送它们。
  • 当 Cloud Run 服务未处理请求时,CPU 访问会受到限制。
  • Cloud Run 服务没有关闭钩子;您无法在关闭前清除缓冲区:容器只会收到SIGKILL。这是您无法从应用程序中捕捉到的信号。
  • 运行在请求-响应周期之外发送信息的后台进程似乎违反了Knative Container Runtime 合同
  • 日志数据的集合被记录在案,不需要我运行代理,但没有这样的遥测解决方案。
  • 我发现了一份报告,称有人使用基于代理的方法在 Cloud Run 上丢失了踪迹

谷歌是如何做到的

我进入了 Cloud Endpoints ESP 的源代码(Cloud Run 集成处于测试阶段),看看他们是否以不同的方式解决它,但使用了相同的模式:有一个带有跟踪 (1s) 和它会定期清除。

虽然我的跟踪集成似乎在我的测试设置中工作,但我担心在生产环境中运行它时不完整和丢失的跟踪。

  • 这是一个假设的问题还是一个真实的问题?

  • 看起来解决这个问题的正确方法是将遥测数据写入日志,而不是使用代理进程。Stackdriver Trace 支持吗?

google-cloud-platform stackdriver google-cloud-run

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

保护未经身份验证的 Cloud Run 端点

当我创建一个未经身份验证的(公共)Cloud Run 端点来托管 API 时,我有哪些选项可以保护此端点免受发出数十亿 HTTP 请求的恶意用户的攻击?

只需 10 美元,您就可以发起第 7 层HTTP 洪水攻击,每秒可以发送 25 万个请求。让我们假设您的 Cloud Run 端点扩展并处理所有请求。仅就调用而言,您将支付 360 美元/小时(每百万个请求 0.40 美元)。

请注意,如果攻击未分布在多个 Cloud Run 终端节点上,您可能会遇到并发限制最大实例限制。我还有哪些其他控件?

据我了解,Cloud ArmorCloud CDN的常用防御绑定到Global Load Balancer,Cloud Run 不可用,但 Cloud Run on GKE 可用。

google-cloud-platform serverless google-cloud-run

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