Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs:update initialization function in golang docs #42

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/zh-cn/golang/basic-api-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
使用 Sentinel 需要在应用启动时对 Sentinel 运行环境进行相关配置并触发初始化。`api` 包下提供如下函数:

- `InitDefault()`:从环境变量指定的配置文件以及环境变量中读取相应配置来初始化 Sentinel,若环境变量不存在则使用默认值。
- `Init(configPath string)`:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。
- `InitWithConfigFile(configPath string)`:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。
- `InitWithConfig(confEntity *config.Entity)`: 用户硬编码配置对象`*config.Entity`来初始化Sentinel。

通用配置项加载策略和配置项请参考 [配置方式使用文档](https://github.com/alibaba/sentinel-golang/wiki/启动配置)
Expand All @@ -25,7 +25,7 @@ import (
)

func initSentinel() {
err := sentinel.Init(confPath)
err := sentinel.InitWithConfigFile(confPath)
if err != nil {
// 初始化 Sentinel 失败
}
Expand Down
4 changes: 2 additions & 2 deletions zh-cn/docs/golang/basic-api-usage.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ <h2>通用配置及初始化</h2>
<p>使用 Sentinel 需要在应用启动时对 Sentinel 运行环境进行相关配置并触发初始化。<code>api</code> 包下提供如下函数:</p>
<ul>
<li><code>InitDefault()</code>:从环境变量指定的配置文件以及环境变量中读取相应配置来初始化 Sentinel,若环境变量不存在则使用默认值。</li>
<li><code>Init(configPath string)</code>:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。</li>
<li><code>InitWithConfigFile(configPath string)</code>:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。</li>
<li><code>InitWithConfig(confEntity *config.Entity)</code>: 用户硬编码配置对象<code>*config.Entity</code>来初始化Sentinel。</li>
</ul>
<p>通用配置项加载策略和配置项请参考 <a href="https://github.com/alibaba/sentinel-golang/wiki/%E5%90%AF%E5%8A%A8%E9%85%8D%E7%BD%AE">配置方式使用文档</a></p>
Expand All @@ -43,7 +43,7 @@ <h2>通用配置及初始化</h2>
)

<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">initSentinel</span><span class="hljs-params">()</span></span> {
err := sentinel.Init(confPath)
err := sentinel.InitWithConfigFile(confPath)
<span class="hljs-keyword">if</span> err != <span class="hljs-literal">nil</span> {
<span class="hljs-comment">// 初始化 Sentinel 失败</span>
}
Expand Down
2 changes: 1 addition & 1 deletion zh-cn/docs/golang/basic-api-usage.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"filename": "basic-api-usage.md",
"__html": "<h1>API 使用指南</h1>\n<p>用户接入使用 Sentinel Go (后文均用 Sentinel 表示 Sentinel Go) 主要需要需要以下几步:</p>\n<ol>\n<li>对 Sentinel 的运行环境进行相关配置并初始化。API 接口使用细节可以参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E5%90%AF%E5%8A%A8%E9%85%8D%E7%BD%AE\">配置方式</a></li>\n<li>埋点(定义资源),该步骤主要是确定系统中有哪些资源需要防护,资源定义可参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97\">新手指南</a></li>\n<li>配置规则,该步骤主要是为每个资源都配置具体的规则,规则的配置可参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97\">新手指南</a> 以及各个模块的使用文档。</li>\n<li>编写资源防护的入口和出口代码。释放方式可参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97\">新手指南</a></li>\n</ol>\n<h2>通用配置及初始化</h2>\n<p>使用 Sentinel 需要在应用启动时对 Sentinel 运行环境进行相关配置并触发初始化。<code>api</code> 包下提供如下函数:</p>\n<ul>\n<li><code>InitDefault()</code>:从环境变量指定的配置文件以及环境变量中读取相应配置来初始化 Sentinel,若环境变量不存在则使用默认值。</li>\n<li><code>Init(configPath string)</code>:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。</li>\n<li><code>InitWithConfig(confEntity *config.Entity)</code>: 用户硬编码配置对象<code>*config.Entity</code>来初始化Sentinel。</li>\n</ul>\n<p>通用配置项加载策略和配置项请参考 <a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E5%90%AF%E5%8A%A8%E9%85%8D%E7%BD%AE\">配置方式使用文档</a></p>\n<p>示例代码:</p>\n<pre><code class=\"language-go\"><span class=\"hljs-keyword\">import</span> (\n\tsentinel <span class=\"hljs-string\">\"github.com/alibaba/sentinel-golang/api\"</span>\n)\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func</span> <span class=\"hljs-title\">initSentinel</span><span class=\"hljs-params\">()</span></span> {\n\terr := sentinel.Init(confPath)\n\t<span class=\"hljs-keyword\">if</span> err != <span class=\"hljs-literal\">nil</span> {\n\t\t<span class=\"hljs-comment\">// 初始化 Sentinel 失败</span>\n\t}\n}\n</code></pre>\n<p><strong>注意</strong>:必须成功调用 Sentinel 的初始化函数以后再调用埋点 API。</p>\n<h2>埋点(定义资源)</h2>\n<p>使用 Sentinel 的 Entry API 将业务逻辑封装起来,这一步称为“埋点”。每个埋点都有一个资源名称(resource),代表触发了这个资源的调用或访问。</p>\n<p>埋点 API 位于 <code>api</code> 包中:</p>\n<ul>\n<li><code>Entry(resource string, opts ...Option) (*base.SentinelEntry, *base.BlockError)</code></li>\n</ul>\n<p>其中 <code>resource</code> 代表埋点资源名,<code>opts</code> 代表埋点配置。这里需要注意的是,返回值参数列表的第一个和第二个参数是互斥的,也就是说,如果Entry执行pass,那么Sentinel会返回(*base.SentinelEntry, nil);如果Entry执行blocked,那么Sentinel会返回(nil, *base.BlockError)。</p>\n<p>目前支持以下埋点配置:</p>\n<ul>\n<li><code>WithTrafficType(entryType base.TrafficType)</code>:标记该埋点资源的流量类型,其中 Inbound 代表入口流量,Outbound 代表出口流量。若不指定,默认为 Outbound。</li>\n<li><code>WithResourceType(resourceType base.ResourceType)</code>:标记该埋点资源的分类。</li>\n<li><code>WithAcquireCount(acquireCount uint32)</code>:标记每次触发该埋点计为几次调用(可以理解为 batch count)。若不指定,默认为 1。</li>\n<li><code>WithArgs(args ...interface{})</code>:埋点携带的参数列表,为热点参数统计预留。</li>\n<li><code>WithSlotChain(chain *base.SlotChain)</code>:埋点执行的检查的slotchain,若不指定,默认使用全局slotchain</li>\n</ul>\n<p>埋点 API 示例:</p>\n<pre><code class=\"language-go\"><span class=\"hljs-keyword\">import</span> (\n\tsentinel <span class=\"hljs-string\">\"github.com/alibaba/sentinel-golang/api\"</span>\n)\n\n<span class=\"hljs-comment\">// Entry 方法用于埋点</span>\ne, b := sentinel.Entry(<span class=\"hljs-string\">\"your-resource-name\"</span>, sentinel.WithTrafficType(base.Inbound))\n<span class=\"hljs-keyword\">if</span> b != <span class=\"hljs-literal\">nil</span> {\n\t<span class=\"hljs-comment\">// 请求被流控,可以从 BlockError 中获取限流详情</span>\n\t<span class=\"hljs-comment\">// block 后不需要进行 Exit()</span>\n} <span class=\"hljs-keyword\">else</span> {\n\t<span class=\"hljs-comment\">// 请求可以通过,在此处编写您的业务逻辑</span>\n\t<span class=\"hljs-comment\">// 务必保证业务逻辑结束后 Exit</span>\n\te.Exit()\n}\n</code></pre>\n<p>若该次调用被拒绝,则 Entry API 会返回 BlockError 代表被 Sentinel 限流。BlockError 提供了限流原因以及触发的规则等信息,可以方便开发者获取相关信息进行记录和处理。</p>\n<h2>规则配置</h2>\n<h3>硬编码方式</h3>\n<p>Sentinel 支持原始的硬编码方式加载规则,可以通过各个模块的 <code>LoadRules(rules)</code> 函数加载规则。以流控规则为例:</p>\n<pre><code class=\"language-go\">_, err = flow.LoadRules([]*flow.Rule{\n\t{\n\t\tResource: <span class=\"hljs-string\">\"some-test\"</span>,\n\t\tThreshold: <span class=\"hljs-number\">10</span>,\n\t\tTokenCalculateStrategy: flow.Direct,\n\t\tControlBehavior: flow.Reject,\n\t},\n})\n<span class=\"hljs-keyword\">if</span> err != <span class=\"hljs-literal\">nil</span> {\n\t<span class=\"hljs-comment\">// 加载规则失败,进行相关处理</span>\n}\n</code></pre>\n<h3>动态数据源</h3>\n<p>Sentinel 提供动态数据源接口进行扩展,用户可以通过动态文件、etcd、consul、nacos 等配置中心来动态地配置规则。</p>\n"
"__html": "<h1>API 使用指南</h1>\n<p>用户接入使用 Sentinel Go (后文均用 Sentinel 表示 Sentinel Go) 主要需要需要以下几步:</p>\n<ol>\n<li>对 Sentinel 的运行环境进行相关配置并初始化。API 接口使用细节可以参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E5%90%AF%E5%8A%A8%E9%85%8D%E7%BD%AE\">配置方式</a></li>\n<li>埋点(定义资源),该步骤主要是确定系统中有哪些资源需要防护,资源定义可参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97\">新手指南</a></li>\n<li>配置规则,该步骤主要是为每个资源都配置具体的规则,规则的配置可参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97\">新手指南</a> 以及各个模块的使用文档。</li>\n<li>编写资源防护的入口和出口代码。释放方式可参考:<a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E6%96%B0%E6%89%8B%E6%8C%87%E5%8D%97\">新手指南</a></li>\n</ol>\n<h2>通用配置及初始化</h2>\n<p>使用 Sentinel 需要在应用启动时对 Sentinel 运行环境进行相关配置并触发初始化。<code>api</code> 包下提供如下函数:</p>\n<ul>\n<li><code>InitDefault()</code>:从环境变量指定的配置文件以及环境变量中读取相应配置来初始化 Sentinel,若环境变量不存在则使用默认值。</li>\n<li><code>InitWithConfigFile(configPath string)</code>:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。</li>\n<li><code>InitWithConfig(confEntity *config.Entity)</code>: 用户硬编码配置对象<code>*config.Entity</code>来初始化Sentinel。</li>\n</ul>\n<p>通用配置项加载策略和配置项请参考 <a href=\"https://github.com/alibaba/sentinel-golang/wiki/%E5%90%AF%E5%8A%A8%E9%85%8D%E7%BD%AE\">配置方式使用文档</a></p>\n<p>示例代码:</p>\n<pre><code class=\"language-go\"><span class=\"hljs-keyword\">import</span> (\n\tsentinel <span class=\"hljs-string\">\"github.com/alibaba/sentinel-golang/api\"</span>\n)\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">func</span> <span class=\"hljs-title\">initSentinel</span><span class=\"hljs-params\">()</span></span> {\n\terr := sentinel.InitWithConfigFile(confPath)\n\t<span class=\"hljs-keyword\">if</span> err != <span class=\"hljs-literal\">nil</span> {\n\t\t<span class=\"hljs-comment\">// 初始化 Sentinel 失败</span>\n\t}\n}\n</code></pre>\n<p><strong>注意</strong>:必须成功调用 Sentinel 的初始化函数以后再调用埋点 API。</p>\n<h2>埋点(定义资源)</h2>\n<p>使用 Sentinel 的 Entry API 将业务逻辑封装起来,这一步称为“埋点”。每个埋点都有一个资源名称(resource),代表触发了这个资源的调用或访问。</p>\n<p>埋点 API 位于 <code>api</code> 包中:</p>\n<ul>\n<li><code>Entry(resource string, opts ...Option) (*base.SentinelEntry, *base.BlockError)</code></li>\n</ul>\n<p>其中 <code>resource</code> 代表埋点资源名,<code>opts</code> 代表埋点配置。这里需要注意的是,返回值参数列表的第一个和第二个参数是互斥的,也就是说,如果Entry执行pass,那么Sentinel会返回(*base.SentinelEntry, nil);如果Entry执行blocked,那么Sentinel会返回(nil, *base.BlockError)。</p>\n<p>目前支持以下埋点配置:</p>\n<ul>\n<li><code>WithTrafficType(entryType base.TrafficType)</code>:标记该埋点资源的流量类型,其中 Inbound 代表入口流量,Outbound 代表出口流量。若不指定,默认为 Outbound。</li>\n<li><code>WithResourceType(resourceType base.ResourceType)</code>:标记该埋点资源的分类。</li>\n<li><code>WithAcquireCount(acquireCount uint32)</code>:标记每次触发该埋点计为几次调用(可以理解为 batch count)。若不指定,默认为 1。</li>\n<li><code>WithArgs(args ...interface{})</code>:埋点携带的参数列表,为热点参数统计预留。</li>\n<li><code>WithSlotChain(chain *base.SlotChain)</code>:埋点执行的检查的slotchain,若不指定,默认使用全局slotchain</li>\n</ul>\n<p>埋点 API 示例:</p>\n<pre><code class=\"language-go\"><span class=\"hljs-keyword\">import</span> (\n\tsentinel <span class=\"hljs-string\">\"github.com/alibaba/sentinel-golang/api\"</span>\n)\n\n<span class=\"hljs-comment\">// Entry 方法用于埋点</span>\ne, b := sentinel.Entry(<span class=\"hljs-string\">\"your-resource-name\"</span>, sentinel.WithTrafficType(base.Inbound))\n<span class=\"hljs-keyword\">if</span> b != <span class=\"hljs-literal\">nil</span> {\n\t<span class=\"hljs-comment\">// 请求被流控,可以从 BlockError 中获取限流详情</span>\n\t<span class=\"hljs-comment\">// block 后不需要进行 Exit()</span>\n} <span class=\"hljs-keyword\">else</span> {\n\t<span class=\"hljs-comment\">// 请求可以通过,在此处编写您的业务逻辑</span>\n\t<span class=\"hljs-comment\">// 务必保证业务逻辑结束后 Exit</span>\n\te.Exit()\n}\n</code></pre>\n<p>若该次调用被拒绝,则 Entry API 会返回 BlockError 代表被 Sentinel 限流。BlockError 提供了限流原因以及触发的规则等信息,可以方便开发者获取相关信息进行记录和处理。</p>\n<h2>规则配置</h2>\n<h3>硬编码方式</h3>\n<p>Sentinel 支持原始的硬编码方式加载规则,可以通过各个模块的 <code>LoadRules(rules)</code> 函数加载规则。以流控规则为例:</p>\n<pre><code class=\"language-go\">_, err = flow.LoadRules([]*flow.Rule{\n\t{\n\t\tResource: <span class=\"hljs-string\">\"some-test\"</span>,\n\t\tThreshold: <span class=\"hljs-number\">10</span>,\n\t\tTokenCalculateStrategy: flow.Direct,\n\t\tControlBehavior: flow.Reject,\n\t},\n})\n<span class=\"hljs-keyword\">if</span> err != <span class=\"hljs-literal\">nil</span> {\n\t<span class=\"hljs-comment\">// 加载规则失败,进行相关处理</span>\n}\n</code></pre>\n<h3>动态数据源</h3>\n<p>Sentinel 提供动态数据源接口进行扩展,用户可以通过动态文件、etcd、consul、nacos 等配置中心来动态地配置规则。</p>\n"
}
2 changes: 1 addition & 1 deletion zh-cn/docs/golang/basic-api.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ <h2>通用配置及初始化</h2>
<p>使用 Sentinel 时需要在应用启动时对 Sentinel 进行相关配置并触发初始化。<code>api</code> 包下提供如下函数:</p>
<ul>
<li><code>InitDefault()</code>:从环境变量中读取相应配置来初始化 Sentinel,若环境变量不存在则使用默认值。</li>
<li><code>Init(configPath string)</code>:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。日志目录配置会从环境变量读取或采用默认路径(<code>~/logs/csp</code>)。</li>
<li><code>InitWithConfigFile(configPath string)</code>:从给定的 YAML 文件中读取相应配置来初始化 Sentinel。日志目录配置会从环境变量读取或采用默认路径(<code>~/logs/csp</code>)。</li>
</ul>
<p>通用配置项加载策略和配置项请参考 <a href="https://github.com/alibaba/sentinel-golang/wiki/%E9%80%9A%E7%94%A8%E9%85%8D%E7%BD%AE%E9%A1%B9">通用配置项文档</a></p>
<p>示例代码:</p>
Expand Down
Loading