PageSourceSearch

https://jifuwei.github.io/page/2/

html jifuwei.github.io collected 2026-10-03 09:23:27 UTC 38,564 bytes, 932 lines download raw bytes

1<!DOCTYPE html>
2<html lang="zh-CN">
3<head>
4  <meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
6<meta name="theme-color" content="#222">
7<meta name="generator" content="Hexo 6.2.0">
8  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
9  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
10  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
11  <link rel="mask-icon" href="/images/logo.svg" color="#222">
12  <meta name="google-site-verification" content="ZAxoxqp0q8qf8GaVFBLqt3fZ2g3Ch1QtMgFoQhUyzZQ">
13  <meta name="baidu-site-verification" content="code-YeeuLMqwzd">
14
15<link rel="stylesheet" href="/css/main.css">
16
17<link rel="stylesheet" href="https://fonts.lug.ustc.edu.cn/css?family=Noto Serif SC:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext">
18<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
19  <link rel="stylesheet" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css">
20
21<script id="hexo-configurations">
22    var NexT = window.NexT || {};
23    var CONFIG = {"hostname":"jifuwei.github.io","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":true},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":true,"mediumzoom":false,"lazyload":true,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}};
24  </script>
24
25
26  <meta name="description" content="过刚易折,善柔不败">
27<meta property="og:type" content="website">
28<meta property="og:title" content="是咕咕鸡">
29<meta property="og:url" content="https://jifuwei.github.io/page/2/index.html">
30<meta property="og:site_name" content="是咕咕鸡">
31<meta property="og:description" content="过刚易折,善柔不败">
32<meta property="og:locale" content="zh_CN">
33<meta property="article:author" content="是咕咕鸡">
34<meta name="twitter:card" content="summary">
35
36<link rel="canonical" href="https://jifuwei.github.io/page/2/">
37
38
39<script id="page-configurations">
40  // https://hexo.io/docs/variables.html
41  CONFIG.page = {
42    sidebar: "",
43    isHome : true,
44    isPost : false,
45    lang   : 'zh-CN'
46  };
47</script>
47
48
49  <title>是咕咕鸡</title>
50  
51
52
53  
53<script>
54    var _hmt = _hmt || [];
55    (function() {
56      var hm = document.createElement("script");
57      hm.src = "https://hm.baidu.com/hm.js?1575500ddb979a8e4e895121cbd848cb";
58      var s = document.getElementsByTagName("script")[0];
59      s.parentNode.insertBefore(hm, s);
60    })();
61  </script>
61
62
63
64
65
66  <noscript>
67  <style>
68  .use-motion .brand,
69  .use-motion .menu-item,
70  .sidebar-inner,
71  .use-motion .post-block,
72  .use-motion .pagination,
73  .use-motion .comments,
74  .use-motion .post-header,
75  .use-motion .post-body,
76  .use-motion .collection-header { opacity: initial; }
77
78  .use-motion .site-title,
79  .use-motion .site-subtitle {
80    opacity: initial;
81    top: initial;
82  }
83
84  .use-motion .logo-line-before i { left: initial; }
85  .use-motion .logo-line-after i { right: initial; }
86  </style>
87</noscript>
88
89</head>
90
91<body itemscope itemtype="http://schema.org/WebPage">
92  <div class="container use-motion">
93    <div class="headband"></div>
94
95    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
96      <div class="header-inner"><div class="site-brand-container">
97  <div class="site-nav-toggle">
98    <div class="toggle" aria-label="切换导航栏">
99      <span class="toggle-line toggle-line-first"></span>
100      <span class="toggle-line toggle-line-middle"></span>
101      <span class="toggle-line toggle-line-last"></span>
102    </div>
103  </div>
104
105  <div class="site-meta">
106
107    <a href="/" class="brand" rel="start">
108      <span class="logo-line-before"><i></i></span>
109      <h1 class="site-title">是咕咕鸡</h1>
110      <span class="logo-line-after"><i></i></span>
111    </a>
112      <p class="site-subtitle" itemprop="description">希望我分享的文章能够给每一位读者带来帮助!</p>
113  </div>
114
115  <div class="site-nav-right">
116    <div class="toggle popup-trigger">
117    </div>
118  </div>
119</div>
120
121
122
123
124<nav class="site-nav">
125  <ul id="menu" class="main-menu menu">
126        <li class="menu-item menu-item-home">
127
128    <a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>
129
130  </li>
131        <li class="menu-item menu-item-about">
132
133    <a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>
134
135  </li>
136        <li class="menu-item menu-item-archives">
137
138    <a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>
139
140  </li>
141  </ul>
142</nav>
143
144
145
146
147</div>
148    </header>
149
150    
151  <div class="back-to-top">
152    <i class="fa fa-arrow-up"></i>
153    <span>0%</span>
154  </div>
155  <div class="reading-progress-bar"></div>
156
157
158    <main class="main">
159      <div class="main-inner">
160        <div class="content-wrap">
161          
162
163          <div class="content index posts-expand">
164            
165      
166  
167  
168  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
169    <link itemprop="mainEntityOfPage" href="https://jifuwei.github.io/yuque/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E5%BF%85%E5%A4%87%E2%80%94%E2%80%94%E7%81%AB%E7%84%B0%E5%9B%BE.html">
170
171    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
172      <meta itemprop="image" content="/images/avatar.png">
173      <meta itemprop="name" content="是咕咕鸡">
174      <meta itemprop="description" content="过刚易折,善柔不败">
175    </span>
176
177    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
178      <meta itemprop="name" content="是咕咕鸡">
179    </span>
180      <header class="post-header">
181        <h2 class="post-title" itemprop="name headline">
182          
183            <a href="/yuque/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E5%BF%85%E5%A4%87%E2%80%94%E2%80%94%E7%81%AB%E7%84%B0%E5%9B%BE.html" class="post-title-link" itemprop="url">性能优化必备——火焰图</a>
184        </h2>
185
186        <div class="post-meta">
187            <span class="post-meta-item">
188              <span class="post-meta-item-icon">
189                <i class="far fa-calendar"></i>
190              </span>
191              <span class="post-meta-item-text">发表于</span>
192
193              <time title="创建时间:2022-08-28 14:38:15" itemprop="dateCreated datePublished" datetime="2022-08-28T14:38:15+08:00">2022-08-28</time>
194            </span>
195              <span class="post-meta-item">
196                <span class="post-meta-item-icon">
197                  <i class="far fa-calendar-check"></i>
198                </span>
199                <span class="post-meta-item-text">更新于</span>
200                <time title="修改时间:2023-03-07 14:48:24" itemprop="dateModified" datetime="2023-03-07T14:48:24+08:00">2023-03-07</time>
201              </span>
202
203          
204            <span class="post-meta-item" title="本文字数">
205              <span class="post-meta-item-icon">
206                <i class="far fa-file-word"></i>
207              </span>
208                <span class="post-meta-item-text">本文字数:</span>
209              <span>5.8k</span>
210            </span>
211            <span class="post-meta-item" title="阅读时长">
212              <span class="post-meta-item-icon">
213                <i class="far fa-clock"></i>
214              </span>
215                <span class="post-meta-item-text">阅读时长 &asymp;</span>
216              <span>5 分钟</span>
217            </span>
218
219        </div>
220      </header>
221
222    
223    
224    
225    <div class="post-body" itemprop="articleBody">
226
227      
228          <h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>本文主要介绍火焰图及使用技巧,学习如何使用火焰图快速定位软件的性能卡点。<br>结合最佳实践实战案例,帮助读者加深刻的理解火焰图构造及原理,理解 CPU 耗时,定位性能瓶颈。</p>
229<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><h3 id="当前现状"><a href="#当前现状" class="headerlink" title="当前现状"></a>当前现状</h3><p>假设没有火焰图,你是怎么调优程序代码的呢?让我们来捋一下。</p>
230          <!--noindex-->
231            <div class="post-button">
232              <a class="btn" href="/yuque/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96%E5%BF%85%E5%A4%87%E2%80%94%E2%80%94%E7%81%AB%E7%84%B0%E5%9B%BE.html#more" rel="contents">
233                阅读全文 &raquo;
234              </a>
235            </div>
236          <!--/noindex-->
237        
238      
239    </div>
240
241    
242    
243    
244      <footer class="post-footer">
245        <div class="post-eof"></div>
246      </footer>
247  </article>
248  
249  
250  
251
252      
253  
254  
255  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
256    <link itemprop="mainEntityOfPage" href="https://jifuwei.github.io/yuque/Google%20Aviator%E2%80%94%E2%80%94%E8%BD%BB%E9%87%8F%E7%BA%A7%20Java%20%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%BC%95%E6%93%8E%E5%AE%9E%E6%88%98.html">
257
258    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
259      <meta itemprop="image" content="/images/avatar.png">
260      <meta itemprop="name" content="是咕咕鸡">
261      <meta itemprop="description" content="过刚易折,善柔不败">
262    </span>
263
264    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
265      <meta itemprop="name" content="是咕咕鸡">
266    </span>
267      <header class="post-header">
268        <h2 class="post-title" itemprop="name headline">
269          
270            <a href="/yuque/Google%20Aviator%E2%80%94%E2%80%94%E8%BD%BB%E9%87%8F%E7%BA%A7%20Java%20%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%BC%95%E6%93%8E%E5%AE%9E%E6%88%98.html" class="post-title-link" itemprop="url">Google Aviator——轻量级 Java 表达式引擎实战</a>
271        </h2>
272
273        <div class="post-meta">
274            <span class="post-meta-item">
275              <span class="post-meta-item-icon">
276                <i class="far fa-calendar"></i>
277              </span>
278              <span class="post-meta-item-text">发表于</span>
279
280              <time title="创建时间:2022-03-01 13:59:59" itemprop="dateCreated datePublished" datetime="2022-03-01T13:59:59+08:00">2022-03-01</time>
281            </span>
282              <span class="post-meta-item">
283                <span class="post-meta-item-icon">
284                  <i class="far fa-calendar-check"></i>
285                </span>
286                <span class="post-meta-item-text">更新于</span>
287                <time title="修改时间:2023-03-07 14:48:13" itemprop="dateModified" datetime="2023-03-07T14:48:13+08:00">2023-03-07</time>
288              </span>
289
290          
291            <span class="post-meta-item" title="本文字数">
292              <span class="post-meta-item-icon">
293                <i class="far fa-file-word"></i>
294              </span>
295                <span class="post-meta-item-text">本文字数:</span>
296              <span>6.1k</span>
297            </span>
298            <span class="post-meta-item" title="阅读时长">
299              <span class="post-meta-item-icon">
300                <i class="far fa-clock"></i>
301              </span>
302                <span class="post-meta-item-text">阅读时长 &asymp;</span>
303              <span>6 分钟</span>
304            </span>
305
306        </div>
307      </header>
308
309    
310    
311    
312    <div class="post-body" itemprop="articleBody">
313
314      
315          <h3 id="表达式引擎技术及比较"><a href="#表达式引擎技术及比较" class="headerlink" title="表达式引擎技术及比较"></a>表达式引擎技术及比较</h3><h4 id="Drools-简介"><a href="#Drools-简介" class="headerlink" title="Drools 简介"></a>Drools 简介</h4><p>Drools(JBoss Rules )是一个开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。</p>
316<p>除了应用了 Rete 核心算法,开源软件 License 和 100% 的 Java 实现之外,Drools 还提供了很多有用的特性。其中包括实现了 JSR94 API 和创新的规则语义系统,这个语义系统可用来编写描述规则的语言。目前,Drools 提供了三种语义模块</p>
317<ul>
318<li>Python 模块</li>
319<li>Java 模块</li>
320<li>Groovy 模块</li>
321</ul>
322<p>Drools 的规则是写在 drl 文件中。 对于前面的表达式,在 Drools 的 drl 文件描述为:</p>
323<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">rule &quot;Testing Comments&quot;</span><br><span class="line">when</span><br><span class="line">    // this is a single line comment</span><br><span class="line">    eval( true ) // this is a comment in the same line of a pattern</span><br><span class="line">then</span><br><span class="line">    // this is a comment inside a semantic code block</span><br><span class="line">end</span><br></pre></td></tr></table></figure>
324
325<p>When 表示条件,then 是满足条件以后,可以执行的动作,在这里可以调用任何 java 方法等。在 drools 不支持字符串的 contians 方法,只能采用正则表达式来代替。</p>
326          <!--noindex-->
327            <div class="post-button">
328              <a class="btn" href="/yuque/Google%20Aviator%E2%80%94%E2%80%94%E8%BD%BB%E9%87%8F%E7%BA%A7%20Java%20%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%BC%95%E6%93%8E%E5%AE%9E%E6%88%98.html#more" rel="contents">
329                阅读全文 &raquo;
330              </a>
331            </div>
332          <!--/noindex-->
333        
334      
335    </div>
336
337    
338    
339    
340      <footer class="post-footer">
341        <div class="post-eof"></div>
342      </footer>
343  </article>
344  
345  
346  
347
348      
349  
350  
351  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
352    <link itemprop="mainEntityOfPage" href="https://jifuwei.github.io/yuque/Java%20%E7%83%AD%E6%9B%B4%E6%96%B0%20Groovy%20%E5%AE%9E%E8%B7%B5%E5%8F%8A%E8%B8%A9%E5%9D%91%E6%8C%87%E5%8D%97.html">
353
354    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
355      <meta itemprop="image" content="/images/avatar.png">
356      <meta itemprop="name" content="是咕咕鸡">
357      <meta itemprop="description" content="过刚易折,善柔不败">
358    </span>
359
360    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
361      <meta itemprop="name" content="是咕咕鸡">
362    </span>
363      <header class="post-header">
364        <h2 class="post-title" itemprop="name headline">
365          
366            <a href="/yuque/Java%20%E7%83%AD%E6%9B%B4%E6%96%B0%20Groovy%20%E5%AE%9E%E8%B7%B5%E5%8F%8A%E8%B8%A9%E5%9D%91%E6%8C%87%E5%8D%97.html" class="post-title-link" itemprop="url">Java 热更新 Groovy 实践及踩坑指南</a>
367        </h2>
368
369        <div class="post-meta">
370            <span class="post-meta-item">
371              <span class="post-meta-item-icon">
372                <i class="far fa-calendar"></i>
373              </span>
374              <span class="post-meta-item-text">发表于</span>
375
376              <time title="创建时间:2022-02-15 15:14:34" itemprop="dateCreated datePublished" datetime="2022-02-15T15:14:34+08:00">2022-02-15</time>
377            </span>
378              <span class="post-meta-item">
379                <span class="post-meta-item-icon">
380                  <i class="far fa-calendar-check"></i>
381                </span>
382                <span class="post-meta-item-text">更新于</span>
383                <time title="修改时间:2023-03-07 14:48:05" itemprop="dateModified" datetime="2023-03-07T14:48:05+08:00">2023-03-07</time>
384              </span>
385
386          
387            <span class="post-meta-item" title="本文字数">
388              <span class="post-meta-item-icon">
389                <i class="far fa-file-word"></i>
390              </span>
391                <span class="post-meta-item-text">本文字数:</span>
392              <span>4.9k</span>
393            </span>
394            <span class="post-meta-item" title="阅读时长">
395              <span class="post-meta-item-icon">
396                <i class="far fa-clock"></i>
397              </span>
398                <span class="post-meta-item-text">阅读时长 &asymp;</span>
399              <span>4 分钟</span>
400            </span>
401
402        </div>
403      </header>
404
405    
406    
407    
408    <div class="post-body" itemprop="articleBody">
409
410      
411          <h3 id="Groovy-是什么?"><a href="#Groovy-是什么?" class="headerlink" title="Groovy 是什么?"></a>Groovy 是什么?</h3><p>Apache 的 Groovy 是 Java 平台上设计的面向对象编程语言。这门动态语言拥有类似 Python、Ruby 和 Smalltalk 中的一些特性,可以作为 Java 平台的脚本语言使用,Groovy 代码动态地编译成运行于 Java 虚拟机(JVM)上的 Java 字节码,并与其他 Java 代码和库进行互操作。</p>
412<p>由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。Groovy 的语法与 Java 非常相似,大多数 Java 代码也符合 Groovy 的语法规则,尽管可能语义不同。 Groovy 1.0 于 2007 年 1 月 2 日发布,并于 2012 年 7 月发布了 Groovy 2.0。从版本 2 开始,Groovy 也可以静态编译,提供类型推论和 Java 相近的性能。Groovy 2.4 是 Pivotal 软件赞助的最后一个主要版本,截止于 2015 年 3 月。Groovy 已经将其治理结构更改为 Apache 软件基金会的项目管理委员会(PMC)[1]。</p>
413          <!--noindex-->
414            <div class="post-button">
415              <a class="btn" href="/yuque/Java%20%E7%83%AD%E6%9B%B4%E6%96%B0%20Groovy%20%E5%AE%9E%E8%B7%B5%E5%8F%8A%E8%B8%A9%E5%9D%91%E6%8C%87%E5%8D%97.html#more" rel="contents">
416                阅读全文 &raquo;
417              </a>
418            </div>
419          <!--/noindex-->
420        
421      
422    </div>
423
424    
425    
426    
427      <footer class="post-footer">
428        <div class="post-eof"></div>
429      </footer>
430  </article>
431  
432  
433  
434
435      
436  
437  
438  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
439    <link itemprop="mainEntityOfPage" href="https://jifuwei.github.io/yuque/Grafana%20%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90%E6%94%AF%E6%8C%81%20RESTful%20API%20%E6%9F%A5%E8%AF%A2.html">
440
441    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
442      <meta itemprop="image" content="/images/avatar.png">
443      <meta itemprop="name" content="是咕咕鸡">
444      <meta itemprop="description" content="过刚易折,善柔不败">
445    </span>
446
447    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
448      <meta itemprop="name" content="是咕咕鸡">
449    </span>
450      <header class="post-header">
451        <h2 class="post-title" itemprop="name headline">
452          
453            <a href="/yuque/Grafana%20%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90%E6%94%AF%E6%8C%81%20RESTful%20API%20%E6%9F%A5%E8%AF%A2.html" class="post-title-link" itemprop="url">Grafana 自定义数据源支持 RESTful API 查询</a>
454        </h2>
455
456        <div class="post-meta">
457            <span class="post-meta-item">
458              <span class="post-meta-item-icon">
459                <i class="far fa-calendar"></i>
460              </span>
461              <span class="post-meta-item-text">发表于</span>
462
463              <time title="创建时间:2021-12-07 14:35:34" itemprop="dateCreated datePublished" datetime="2021-12-07T14:35:34+08:00">2021-12-07</time>
464            </span>
465              <span class="post-meta-item">
466                <span class="post-meta-item-icon">
467                  <i class="far fa-calendar-check"></i>
468                </span>
469                <span class="post-meta-item-text">更新于</span>
470                <time title="修改时间:2023-03-07 14:48:23" itemprop="dateModified" datetime="2023-03-07T14:48:23+08:00">2023-03-07</time>
471              </span>
472
473          
474            <span class="post-meta-item" title="本文字数">
475              <span class="post-meta-item-icon">
476                <i class="far fa-file-word"></i>
477              </span>
478                <span class="post-meta-item-text">本文字数:</span>
479              <span>5.6k</span>
480            </span>
481            <span class="post-meta-item" title="阅读时长">
482              <span class="post-meta-item-icon">
483                <i class="far fa-clock"></i>
484              </span>
485                <span class="post-meta-item-text">阅读时长 &asymp;</span>
486              <span>5 分钟</span>
487            </span>
488
489        </div>
490      </header>
491
492    
493    
494    
495    <div class="post-body" itemprop="articleBody">
496
497      
498          <h3 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h3><p>数据爆炸的时代,信息化步伐越来越快,接入互联网的服务越来越多。随着业务迭代变更越来越复杂化,需求&#x2F;产品者对系统的要求越来越高,对业务走势及健康状态需要更直观的感知。这意味着我们需要随时能够“看见”系统的状态,对系统&#x2F;业务的实时监控以及可视化是技术演进的必然。</p>
499          <!--noindex-->
500            <div class="post-button">
501              <a class="btn" href="/yuque/Grafana%20%E8%87%AA%E5%AE%9A%E4%B9%89%E6%95%B0%E6%8D%AE%E6%BA%90%E6%94%AF%E6%8C%81%20RESTful%20API%20%E6%9F%A5%E8%AF%A2.html#more" rel="contents">
502                阅读全文 &raquo;
503              </a>
504            </div>
505          <!--/noindex-->
506        
507      
508    </div>
509
510    
511    
512    
513      <footer class="post-footer">
514        <div class="post-eof"></div>
515      </footer>
516  </article>
517  
518  
519  
520
521      
522  
523  
524  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
525    <link itemprop="mainEntityOfPage" href="https://jifuwei.github.io/yuque/Java%20%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E5%9C%A8%E7%94%9F%E4%BA%A7%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF%E5%8F%8A%E5%AE%9E%E6%88%98.html">
526
527    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
528      <meta itemprop="image" content="/images/avatar.png">
529      <meta itemprop="name" content="是咕咕鸡">
530      <meta itemprop="description" content="过刚易折,善柔不败">
531    </span>
532
533    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
534      <meta itemprop="name" content="是咕咕鸡">
535    </span>
536      <header class="post-header">
537        <h2 class="post-title" itemprop="name headline">
538          
539            <a href="/yuque/Java%20%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E5%9C%A8%E7%94%9F%E4%BA%A7%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF%E5%8F%8A%E5%AE%9E%E6%88%98.html" class="post-title-link" itemprop="url">Java 并发编程在生产应用场景及实战</a>
540        </h2>
541
542        <div class="post-meta">
543            <span class="post-meta-item">
544              <span class="post-meta-item-icon">
545                <i class="far fa-calendar"></i>
546              </span>
547              <span class="post-meta-item-text">发表于</span>
548
549              <time title="创建时间:2021-11-16 11:07:14" itemprop="dateCreated datePublished" datetime="2021-11-16T11:07:14+08:00">2021-11-16</time>
550            </span>
551              <span class="post-meta-item">
552                <span class="post-meta-item-icon">
553                  <i class="far fa-calendar-check"></i>
554                </span>
555                <span class="post-meta-item-text">更新于</span>
556                <time title="修改时间:2023-03-07 14:48:22" itemprop="dateModified" datetime="2023-03-07T14:48:22+08:00">2023-03-07</time>
557              </span>
558
559          
560            <span class="post-meta-item" title="本文字数">
561              <span class="post-meta-item-icon">
562                <i class="far fa-file-word"></i>
563              </span>
564                <span class="post-meta-item-text">本文字数:</span>
565              <span>8.8k</span>
566            </span>
567            <span class="post-meta-item" title="阅读时长">
568              <span class="post-meta-item-icon">
569                <i class="far fa-clock"></i>
570              </span>
571                <span class="post-meta-item-text">阅读时长 &asymp;</span>
572              <span>8 分钟</span>
573            </span>
574
575        </div>
576      </header>
577
578    
579    
580    
581    <div class="post-body" itemprop="articleBody">
582
583      
584          <h3 id="背景介绍"><a href="#背景介绍" class="headerlink" title="背景介绍"></a>背景介绍</h3><h4 id="为什么需要学习-Java-并发?"><a href="#为什么需要学习-Java-并发?" class="headerlink" title="为什么需要学习 Java 并发?"></a>为什么需要学习 Java 并发?</h4><h5 id="从提升性能角度来说"><a href="#从提升性能角度来说" class="headerlink" title="从提升性能角度来说"></a>从提升性能角度来说</h5><ul>
585<li><strong>提升了对 CPU 的使用效率</strong>:目前生产的服务器大多数都是多核,标配的机器都是 8C&#x2F;16G。操作系统会将不同的线程分配给不同的核心处理,理论上,有多少核心就有多少个线程并行执行。如果没有并发编程,CPU 的利用率将极大的浪费,假设当前正在处理耗时的 I&#x2F;O 操作,那么整个 CPU 就会处于阻塞空闲状态,后面的指令必须等待前面的执行完才能继续执行。</li>
586<li><strong>降低服务 RT</strong>:大型互联网访问量轻松每秒轻松过万,如果没有并发处理,所有的用户请求都会排队等待,那种体验效果你能想象么,这样的服务能力如何能留住客户?有了并发编程,充分释放 CPU 算力,操作系统让每个客户轮流使用 CPU 计算,每个客户都能得到快速的响应。</li>
587<li><strong>容错率高</strong>:线程与线程之间的执行不会相互干扰,某个线程执行出现异常退出,不会对其它线程造成影响。</li>
588</ul>
589          <!--noindex-->
590            <div class="post-button">
591              <a class="btn" href="/yuque/Java%20%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B%E5%9C%A8%E7%94%9F%E4%BA%A7%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF%E5%8F%8A%E5%AE%9E%E6%88%98.html#more" rel="contents">
592                阅读全文 &raquo;
593              </a>
594            </div>
595          <!--/noindex-->
596        
597      
598    </div>
599
600    
601    
602    
603      <footer class="post-footer">
604        <div class="post-eof"></div>
605      </footer>
606  </article>
607  
608  
609  
610
611      
612  
613  
614  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
615    <link itemprop="mainEntityOfPage" href="https://jifuwei.github.io/yuque/Flink%20%E5%9C%A8%E9%A3%8E%E6%8E%A7%E5%9C%BA%E6%99%AF%E5%AE%9E%E6%97%B6%E7%89%B9%E5%BE%81%E8%90%BD%E5%9C%B0%E5%AE%9E%E6%88%98.html">
616
617    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
618      <meta itemprop="image" content="/images/avatar.png">
619      <meta itemprop="name" content="是咕咕鸡">
620      <meta itemprop="description" content="过刚易折,善柔不败">
621    </span>
622
623    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
624      <meta itemprop="name" content="是咕咕鸡">
625    </span>
626      <header class="post-header">
627        <h2 class="post-title" itemprop="name headline">
628          
629            <a href="/yuque/Flink%20%E5%9C%A8%E9%A3%8E%E6%8E%A7%E5%9C%BA%E6%99%AF%E5%AE%9E%E6%97%B6%E7%89%B9%E5%BE%81%E8%90%BD%E5%9C%B0%E5%AE%9E%E6%88%98.html" class="post-title-link" itemprop="url">Flink 在风控场景实时特征落地实战</a>
630        </h2>
631
632        <div class="post-meta">
633            <span class="post-meta-item">
634              <span class="post-meta-item-icon">
635                <i class="far fa-calendar"></i>
636              </span>
637              <span class="post-meta-item-text">发表于</span>
638
639              <time title="创建时间:2021-11-05 14:58:48" itemprop="dateCreated datePublished" datetime="2021-11-05T14:58:48+08:00">2021-11-05</time>
640            </span>
641              <span class="post-meta-item">
642                <span class="post-meta-item-icon">
643                  <i class="far fa-calendar-check"></i>
644                </span>
645                <span class="post-meta-item-text">更新于</span>
646                <time title="修改时间:2023-03-07 14:48:24" itemprop="dateModified" datetime="2023-03-07T14:48:24+08:00">2023-03-07</time>
647              </span>
648
649          
650            <span class="post-meta-item" title="本文字数">
651              <span class="post-meta-item-icon">
652                <i class="far fa-file-word"></i>
653              </span>
654                <span class="post-meta-item-text">本文字数:</span>
655              <span>9.2k</span>
656            </span>
657            <span class="post-meta-item" title="阅读时长">
658              <span class="post-meta-item-icon">
659                <i class="far fa-clock"></i>
660              </span>
661                <span class="post-meta-item-text">阅读时长 &asymp;</span>
662              <span>8 分钟</span>
663            </span>
664
665        </div>
666      </header>
667
668    
669    
670    
671    <div class="post-body" itemprop="articleBody">
672
673      
674          <h3 id="背景介绍"><a href="#背景介绍" class="headerlink" title="背景介绍"></a>背景介绍</h3><h4 id="风控简介"><a href="#风控简介" class="headerlink" title="风控简介"></a>风控简介</h4><p>二十一世纪,信息化时代到来,互联网行业的发展速度远快于其他行业。一旦商业模式跑通,有利可图,资本立刻蜂拥而至,助推更多企业不断的入场进行快速的复制迭代,企图成为下一个“行业领头羊”。</p>
675<p>带着资本入场的玩家因为不会有资金的压力,只会更多的关注业务发展,却忽略了业务上的风险点。强大如拼多多也被“薅羊毛”大军光顾损失千万。</p>
676<p>风控,即风险管理(risk management),是一个管理过程,包括对风险的定义、测量、评估和应对风险的策略。目的是将可避免的风险、成本及损失极小化[1]。</p>
677<h4 id="特征平台简介"><a href="#特征平台简介" class="headerlink" title="特征平台简介"></a>特征平台简介</h4><p>互联网企业每时每刻都面临着黑灰产的各种攻击。业务安全团队需要事先评估业务流程中有风险的地方,再设置卡点,用来采集相关业务信息,识别当前请求是否有风险。专家经验(防控策略)就是在长期以往的对抗中产生的。</p>
678          <!--noindex-->
679            <div class="post-button">
680              <a class="btn" href="/yuque/Flink%20%E5%9C%A8%E9%A3%8E%E6%8E%A7%E5%9C%BA%E6%99%AF%E5%AE%9E%E6%97%B6%E7%89%B9%E5%BE%81%E8%90%BD%E5%9C%B0%E5%AE%9E%E6%88%98.html#more" rel="contents">
681                阅读全文 &raquo;
682              </a>
683            </div>
684          <!--/noindex-->
685        
686      
687    </div>
688
689    
690    
691    
692      <footer class="post-footer">
693        <div class="post-eof"></div>
694      </footer>
695  </article>
696  
697  
698  
699
700
701  
702  <nav class="pagination">
703    <a class="extend prev" rel="prev" href="/"><i class="fa fa-angle-left" aria-label="上一页"></i></a><a class="page-number" href="/">1</a><span class="page-number current">2</span>
704  </nav>
705
706
707
708          </div>
709          
710
711<script>
712  window.addEventListener('tabs:register', () => {
713    let { activeClass } = CONFIG.comments;
714    if (CONFIG.comments.storage) {
715      activeClass = localStorage.getItem('comments_active') || activeClass;
716    }
717    if (activeClass) {
718      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
719      if (activeTab) {
720        activeTab.click();
721      }
722    }
723  });
724  if (CONFIG.comments.storage) {
725    window.addEventListener('tabs:click', event => {
726      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
727      let commentClass = event.target.classList[1];
728      localStorage.setItem('comments_active', commentClass);
729    });
730  }
731</script>
731
732
733        </div>
734          
735  
736  <div class="toggle sidebar-toggle">
737    <span class="toggle-line toggle-line-first"></span>
738    <span class="toggle-line toggle-line-middle"></span>
739    <span class="toggle-line toggle-line-last"></span>
740  </div>
741
742  <aside class="sidebar">
743    <div class="sidebar-inner">
744
745      <ul class="sidebar-nav motion-element">
746        <li class="sidebar-nav-toc">
747          文章目录
748        </li>
749        <li class="sidebar-nav-overview">
750          站点概览
751        </li>
752      </ul>
753
754      <!--noindex-->
755      <div class="post-toc-wrap sidebar-panel">
756      </div>
757      <!--/noindex-->
758
759      <div class="site-overview-wrap sidebar-panel">
760        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
761    <img class="site-author-image" itemprop="image" alt="是咕咕鸡"
762      src="/images/avatar.png">
763  <p class="site-author-name" itemprop="name">是咕咕鸡</p>
764  <div class="site-description" itemprop="description">过刚易折,善柔不败</div>
765</div>
766<div class="site-state-wrap motion-element">
767  <nav class="site-state">
768      <div class="site-state-item site-state-posts">
769          <a href="/archives/">
770        
771          <span class="site-state-item-count">16</span>
772          <span class="site-state-item-name">日志</span>
773        </a>
774      </div>
775  </nav>
776</div>
777  <div class="links-of-author motion-element">
778      <span class="links-of-author-item">
779        <a href="https://github.com/jifuwei" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;jifuwei" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
780      </span>
781  </div>
782
783
784
785      </div>
786     
787      <div class="wechat_channel">
788        <br>
789        <!-- 公众号二维码引导 -->
790        <img src ="/images/wechat_channel.png">
791        <!-- <span>公众号</span> -->
792      </div>
793
794    </div>
795  </aside>
796  <div id="sidebar-dimmer"></div>
797
798
799      </div>
800    </main>
801
802    <footer class="footer">
803      <div class="footer-inner">
804        
805
806        
807
808<div class="copyright">
809  
810  &copy; 2022 – 
811  <span itemprop="copyrightYear">2023</span>
812  <span class="with-love">
813    <i class="fa fa-heart"></i>
814  </span>
815  <span class="author" itemprop="copyrightHolder">是咕咕鸡</span>
816    <span class="post-meta-divider">|</span>
817    <span class="post-meta-item-icon">
818      <i class="fa fa-chart-area"></i>
819    </span>
820      <span class="post-meta-item-text">站点总字数:</span>
821    <span title="站点总字数">83k</span>
822    <span class="post-meta-divider">|</span>
823    <span class="post-meta-item-icon">
824      <i class="fa fa-coffee"></i>
825    </span>
826      <span class="post-meta-item-text">站点阅读时长 &asymp;</span>
827    <span title="站点阅读时长">1:16</span>
828</div>
829  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
830  </div>
831
832        
833<div class="busuanzi-count">
834  
834<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
834
835    <span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
836      <span class="post-meta-item-icon">
837        <i class="fa fa-user"></i>
838      </span>
839      <span class="site-uv" title="总访客量">
840        <span id="busuanzi_value_site_uv"></span>
841      </span>
842    </span>
843    <span class="post-meta-divider">|</span>
844    <span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
845      <span class="post-meta-item-icon">
846        <i class="fa fa-eye"></i>
847      </span>
848      <span class="site-pv" title="总访问量">
849        <span id="busuanzi_value_site_pv"></span>
850      </span>
851    </span>
852</div>
853
854
855
856
857
858
859
860
861      </div>
862    </footer>
863  </div>
864
865  
866  
866<script src="/lib/anime.min.js"></script>
866
867  
867<script src="//cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>
867
868  
868<script src="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js"></script>
868
869  
869<script src="//cdn.jsdelivr.net/npm/lozad@1/dist/lozad.min.js"></script>
869
870  
870<script src="/lib/velocity/velocity.min.js"></script>
870
871  
871<script src="/lib/velocity/velocity.ui.min.js"></script>
871
872
873<script src="/js/utils.js"></script>
873
874
875<script src="/js/motion.js"></script>
875
876
877
878<script src="/js/schemes/pisces.js"></script>
878
879
880
881<script src="/js/next-boot.js"></script>
881
882
883
884
885
886  
887  
887<script>
888    (function(){
889      var canonicalURL, curProtocol;
890      //Get the <link> tag
891      var x=document.getElementsByTagName("link");
892		//Find the last canonical URL
893		if(x.length > 0){
894			for (i=0;i<x.length;i++){
895				if(x[i].rel.toLowerCase() == 'canonical' && x[i].href){
896					canonicalURL=x[i].href;
897				}
898			}
899		}
900    //Get protocol
901	    if (!canonicalURL){
902	    	curProtocol = window.location.protocol.split(':')[0];
903	    }
904	    else{
905	    	curProtocol = canonicalURL.split(':')[0];
906	    }
907      //Get current URL if the canonical URL does not exist
908	    if (!canonicalURL) canonicalURL = window.location.href;
909	    //Assign script content. Replace current URL with the canonical URL
910      !function(){var e=/([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi,r=canonicalURL,t=document.referrer;if(!e.test(r)){var n=(String(curProtocol).toLowerCase() === 'https')?"https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif":"//api.share.baidu.com/s.gif";t?(n+="?r="+encodeURIComponent(document.referrer),r&&(n+="&l="+r)):r&&(n+="?l="+r);var i=new Image;i.src=n}}(window);})();
911  </script>
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927  
928
929  
930
931</body>
932</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.