<!doctype html>
<!--
  Minimal Mistakes Jekyll Theme 4.4.1 by Michael Rose
  Copyright 2017 Michael Rose - mademistakes.com | @mmistakes
  Free for personal and commercial use under the MIT license
  https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
-->
<html lang="cn" class="no-js">
  <head>
    <meta charset="utf-8">

<!-- begin SEO -->









<title>Release Notes - Apache ServiceComb</title>




<meta name="description" content="Release Notes">




<meta name="author" content="">

<meta property="og:locale" content="cn">
<meta property="og:site_name" content="Apache ServiceComb">
<meta property="og:title" content="Release Notes">


  <link rel="canonical" href="https://github.com/pages/apache/incubator-servicecomb-website/cn/release/mesher-release-notes/">
  <meta property="og:url" content="https://github.com/pages/apache/incubator-servicecomb-website/cn/release/mesher-release-notes/">



  <meta property="og:description" content="Release Notes">



  <meta name="twitter:site" content="@ServiceComb">
  <meta name="twitter:title" content="Release Notes">
  <meta name="twitter:description" content="Release Notes">
  <meta name="twitter:url" content="">

  
    <meta name="twitter:card" content="summary">
    
  

  



  

  












  <script type="application/ld+json">
    {
      "@context" : "http://schema.org",
      "@type" : "Person",
      "name" : "Apache ServiceComb",
      "url" : "https://github.com/pages/apache/incubator-servicecomb-website",
      "sameAs" : null
    }
  </script>



  <meta name="google-site-verification" content="HvJjNd7vvJ-yjSTHlBiIWEYxp_Hrz-PYEY5Idz9LRcA" />




<!-- end SEO -->


<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache ServiceComb Feed">

<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<script>
  document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js"></script>
<script src="/assets/vendor/prism/prism.js"></script>

<script type="text/javascript" async
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
<!-- For all browsers -->
<link rel="stylesheet" href="/assets/css/main.css?v=1">
<link rel="stylesheet" href="/assets/vendor/prism/prism.css?v=1">

<!--[if lte IE 9]>
  <style>
    /* old IE unsupported flexbox fixes */
    .greedy-nav .site-title {
      padding-right: 3em;
    }
    .greedy-nav button {
      position: absolute;
      top: 0;
      right: 0;
      height: 100%;
    }
  </style>
<![endif]-->

<meta http-equiv="cleartype" content="on">

    <!-- start custom head snippets -->

<!-- insert favicons. use http://realfavicongenerator.net/ -->
<link href="https://fonts.cat.net/css?family=Roboto:400,500,700|Source+Code+Pro" rel="stylesheet">
<script src="/assets/js/custom.js"></script>
<!-- end custom head snippets -->

  </head>

  <body class="layout--single">

    <!--[if lt IE 9]>
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
<![endif]-->
    <div class="masthead" onmouseleave="$('#childrenShow').css('display', 'none')">
  <div class="masthead__inner-wrap">
    <div class="masthead__menu">
      <nav id="site-nav" class="greedy-nav">
	      
          <a class="site-title active" href="/cn"><img src="https://www.apache.org/img/servicecomb.png"></a>
	      
        <ul class="visible-links">
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/cn/">首页</a>
                
              </li>
            
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/cn/developers/">项目</a>
                
              </li>
            
          
            
          
          
            
            <li class="def-nav-li" onmouseenter="$('#childrenShow').css('display', 'block')">
              
              
              

              
                <a href="/cn/docs/users/">文档</a>
              

              <ul id="childrenShow" class="def-children-show-cn" onmouseleave="$('#childrenShow').css('display', 'none')">
                
                <li><a href="/cn/docs/getting-started/" class="">入门指南</a></li>
                
                <li><a href="/cn/docs/users/" class="">用户手册</a></li>
                
                <li><a href="/cn/slides/" class="">大咖视频</a></li>
                
                <li><a href="/cn/faqs/" class="">常见问题</a></li>
                
              </ul>
            </li>
          
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/cn/developers/contributing">社区</a>
                
              </li>
            
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a href="/cn/year-archive/">博文</a>
                
              </li>
            
          
            
          
          
            
              <li class="masthead__menu-item" onmouseenter="$('#childrenShow').css('display', 'none')">
                
                  <a class="active" href="/cn/release/">下载</a>
                
              </li>
            
          
        </ul>
        <button><div class="navicon"></div></button>
        <ul class="hidden-links hidden"></ul>
        <div class="nav-lang">
          
            
            
            <a href=/release/mesher-release-notes/>English</a>
          
        </div>
      </nav>
    </div>
  </div>
</div>


    



<div id="main" role="main">
  
  <div class="sidebar sticky">
      
      <div class="back-to-home"><a href="/cn/">首页</a> > Release Notes</div>
      
  
  
    
      
      
      
    
    
      

<nav class="nav__list">
  
  <input id="ac-toc" name="accordion-toc" type="checkbox" />
  <label for="ac-toc">切换菜单</label>
  <ul class="nav__items">
    
      <li>
        
          <span class="nav__sub-title">Service-Center</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/service-center-release-notes/" class="">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/service-center-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Kie</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/kie-release-notes/" class="">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/kie-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Java-Chassis</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/java-chassis-release-notes/" class="">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/java-chassis-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Mesher</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/mesher-release-notes/" class="active">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/mesher-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Pack</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/pack-release-notes/" class="">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/pack-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Toolkit</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/toolkit-release-notes/" class="">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/toolkit-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Saga Actuator</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/saga-actuator-release-notes/" class="">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/saga-actuator-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
      <li>
        
          <span class="nav__sub-title">Saga</span>
        

        
        <ul>
          
            
            

            
            

            <li><a href="/cn/release/saga-release-notes/" class="">发布说明</a></li>
          
            
            

            
            

            <li><a href="/cn/release/saga-downloads/" class="">发布包</a></li>
          
        </ul>
        
      </li>
    
  </ul>
</nav>

    
  
  </div>



  <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
    <meta itemprop="headline" content="Release Notes">
    <meta itemprop="description" content="Release Notes">
    
    <meta itemprop="dateModified" content="April 06, 2019">

    <div class="page__inner-wrap">
      
        
          <header>
            <h1 class="page__title" itemprop="headline">Release Notes
</h1>
            
          </header>
        
      

      <section class="page__content" itemprop="text">
        <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    Release Notes - Apache ServiceComb - Version mesher-1.6.3
</code></pre></div></div>

<h2>        Bug
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/SCB-1410">SCB-1410</a>] -         mesher config for tracing didn&#39;t work.
</li>
<li>[<a href="https://issues.apache.org/jira/browse/SCB-1415">SCB-1415</a>] -         mesher relies on go-chassis/go-chassis-plugins.But go-chassis-plugins can not compile because of dependent packages missing 
</li>
</ul>

<h2>        New Feature
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/SCB-1477">SCB-1477</a>] -         add release script to release mesher
</li>
</ul>

<h2>        Improvement
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/SCB-1404">SCB-1404</a>] -         GRPCDefaultDestinationResolver name was miswritten as GPRCDefaultDestinationResolver.
</li>
</ul>


        
      </section>

      <footer class="page__meta">
        
        


        
      </footer>

      

      

    </div>

    
  </article>

  
  
</div>


    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <div align="center" style="margin: 0 0;">
    <ins class="adsbygoogle"
         style="display:block; border-bottom: initial;"
         data-ad-client="ca-pub-7328585512091257"
         data-ad-slot="3049671934"
         data-ad-format="auto"></ins>
    </div>

    <div class="page__footer">
      <footer>
        <!-- start custom footer snippets -->

<!-- end custom footer snippets -->

        <div class="container">
  <div class="row justify-content-md-center">
    
    <div class="col">
      <ul>
        <p class="header">资源</p>
        <li><a href="/cn/docs/getting-started/">入门指南</a></li>
        <li><a href="/cn/docs/users/">用户指南</a></li>
        <li><a href="/cn/slides/">资料</a></li>
        <li><a href="/cn/users/faq/">常见问题</a></li>
      </ul>
    </div>
    <div class="col">
      <ul>
        <p class="header">ASF</p>
        <li><a href="http://www.apache.org">基金会</a></li>
        <li><a href="http://www.apache.org/licenses/">许可证</a></li>
        <li><a href="http://www.apache.org/events/current-event">活动</a></li>
        <li><a href="http://www.apache.org/foundation/sponsorship.html">赞助</a></li>
        <li><a href="http://www.apache.org/foundation/thanks.html">鸣谢</a></li>
      </ul>
    </div>
    <div class="col">
      <ul>
        <p class="header">贡献</p>
        <li><a href="http://issues.apache.org/jira/browse/SCB">报告本网页问题</a></li>
        <li><a href="https://github.com/apache/servicecomb-website/edit/master/_release/cn/mesher_releaseNotes.md">在Github上编辑此页</a></li>
        <li><a href="/cn/developers/submit-codes/">代码提交指南</a></li>
        <li><a href="/cn/security">安全</a></li>
      </ul>
    </div>
    <div class="col">
      <ul class="social-icons">
        <p class="header">社区</p>
        <li>
            <a href="mailto:dev-subscribe@servicecomb.incubator.apache.org" rel="nofollow"><span class="mail">邮件列表</span></a>
        </li>
        <li>
            <a href="https://github.com/apache?q=ServiceComb" target="_blank"><span class="github">Github</span></a>
        </li>
        <li>
            <a href="https://twitter.com/ServiceComb" target="_blank"><span class="twitter">Twitter</span></a>
        </li>
        <li>
            <a href="/feed.xml" target="_blank"><span class="rss">Feed</span></a>
        </li>
      </ul>
    </div>
  </div>
</div>
<div class="page__footer-bottom">
  <div>&copy; 2020 Apache ServiceComb. 技术来自于 <a href="http://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
  <div>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
</div>

      </footer>
    </div>

    <script src="/assets/js/main.min.js"></script>




  <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-101622733-1', 'auto');
  ga('send', 'pageview');
</script>







  </body>
</html>
