<!DOCTYPE html>
<html>

    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <title>Apache Storm 0.9.2 released</title>

    <!-- Bootstrap core CSS -->
    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
    <!-- Bootstrap theme -->
    <link href="/assets/css/bootstrap-theme.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link rel="stylesheet" href="http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css">
    <link href="/css/style.css" rel="stylesheet">
    <link href="/assets/css/owl.theme.css" rel="stylesheet">
    <link href="/assets/css/owl.carousel.css" rel="stylesheet">
    <script type="text/javascript" src="/assets/js/jquery.min.js"></script>
    <script type="text/javascript" src="/assets/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="/assets/js/owl.carousel.min.js"></script>
    <script type="text/javascript" src="/assets/js/storm.js"></script>
    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    
    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>



    <body>

    <header>
  <div class="container-fluid">
     <div class="row">
          <div class="col-md-5">
            <a href="/index.html"><img src="/images/logo.png" class="logo" /></a>
          </div>
          <div class="col-md-5">
            
          </div>
          <div class="col-md-2">
            <a href="/downloads.html" class="btn-std btn-block btn-download">Download</a>
          </div>
        </div>
    </div>
</header>
<!--Header End-->
<!--Navigation Begin-->
<div class="navbar" role="banner">
  <div class="container-fluid">
      <div class="navbar-header">
          <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
          <ul class="nav navbar-nav">
              <li><a href="/index.html" id="home">Home</a></li>
                <li><a href="/getting-help.html" id="getting-help">Getting Help</a></li>
                <li><a href="/about/integrates.html" id="project-info">Project Information</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="documentation">Documentation <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                      
                        
                          <li><a href="/releases/2.3.0/index.html">2.3.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.2.0/index.html">2.2.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.1.0/index.html">2.1.0</a></li>
                        
                      
                        
                          <li><a href="/releases/2.0.0/index.html">2.0.0</a></li>
                        
                      
                        
                          <li><a href="/releases/1.2.3/index.html">1.2.3</a></li>
                        
                      
                    </ul>
                </li>
                <li><a href="/talksAndVideos.html">Talks and Slideshows</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" id="contribute">Community <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/contribute/Contributing-to-Storm.html">Contributing</a></li>
                        <li><a href="/contribute/People.html">People</a></li>
                        <li><a href="/contribute/BYLAWS.html">ByLaws</a></li>
                    </ul>
                </li>
                <li><a href="/2021/09/27/storm230-released.html" id="news">News</a></li>
            </ul>
        </nav>
    </div>
</div>



    <div class="container-fluid">
        <div class="row">
            <div class="col-md-12">
                <div class="row">
                    <div class="col-md-3">
                        <ul class="news" id="news-list">
                            
                      		<li><a href="/2021/09/27/storm230-released.html">Apache Storm 2.3.0 Released</a></li>
                    		
                      		<li><a href="/2020/06/30/storm220-released.html">Apache Storm 2.2.0 Released</a></li>
                    		
                      		<li><a href="/2019/10/31/storm210-released.html">Apache Storm 2.1.0 Released</a></li>
                    		
                      		<li><a href="/2019/07/18/storm123-released.html">Apache Storm 1.2.3 Released</a></li>
                    		
                      		<li><a href="/2019/05/30/storm200-released.html">Apache Storm 2.0.0 Released</a></li>
                    		
                      		<li><a href="/2018/06/04/storm122-released.html">Apache Storm 1.2.2 Released</a></li>
                    		
                      		<li><a href="/2018/06/04/storm113-released.html">Apache Storm 1.1.3 Released</a></li>
                    		
                      		<li><a href="/2018/02/19/storm121-released.html">Apache Storm 1.2.1 Released</a></li>
                    		
                      		<li><a href="/2018/02/15/storm120-released.html">Apache Storm 1.2.0 Released</a></li>
                    		
                      		<li><a href="/2018/02/15/storm112-released.html">Apache Storm 1.1.2 Released</a></li>
                    		
                      		<li><a href="/2018/02/14/storm106-released.html">Apache Storm 1.0.6 Released</a></li>
                    		
                      		<li><a href="/2017/09/15/storm105-released.html">Apache Storm 1.0.5 Released</a></li>
                    		
                      		<li><a href="/2017/08/01/storm111-released.html">Apache Storm 1.1.1 Released</a></li>
                    		
                      		<li><a href="/2017/07/28/storm104-released.html">Apache Storm 1.0.4 Released</a></li>
                    		
                      		<li><a href="/2017/03/29/storm110-released.html">Apache Storm 1.1.0 released</a></li>
                    		
                      		<li><a href="/2017/02/14/storm103-released.html">Apache Storm 1.0.3 Released</a></li>
                    		
                      		<li><a href="/2016/09/14/storm0102-released.html">Apache Storm 0.10.2 Released</a></li>
                    		
                      		<li><a href="/2016/09/07/storm097-released.html">Apache Storm 0.9.7 Released</a></li>
                    		
                      		<li><a href="/2016/08/10/storm102-released.html">Apache Storm 1.0.2 Released</a></li>
                    		
                      		<li><a href="/2016/05/06/storm101-released.html">Apache Storm 1.0.1 Released</a></li>
                    		
                      		<li><a href="/2016/05/05/storm0101-released.html">Apache Storm 0.10.1 Released</a></li>
                    		
                      		<li><a href="/2016/04/12/storm100-released.html">Apache Storm 1.0.0 released</a></li>
                    		
                      		<li><a href="/2015/11/05/storm096-released.html">Apache Storm 0.9.6 released</a></li>
                    		
                      		<li><a href="/2015/11/05/storm0100-released.html">Apache Storm 0.10.0 released</a></li>
                    		
                      		<li><a href="/2015/06/15/storm0100-beta-released.html">Apache Storm 0.10.0 Beta Released</a></li>
                    		
                      		<li><a href="/2015/06/04/storm095-released.html">Apache Storm 0.9.5 released</a></li>
                    		
                      		<li><a href="/2015/03/25/storm094-released.html">Apache Storm 0.9.4 released</a></li>
                    		
                      		<li><a href="/2014/11/25/storm093-released.html">Apache Storm 0.9.3 released</a></li>
                    		
                      		<li><a href="/2014/10/20/storm093-release-candidate.html">Apache Storm 0.9.3 release candidate 1 available</a></li>
                    		
                      		<li><a href="/2014/06/25/storm092-released.html">Apache Storm 0.9.2 released</a></li>
                    		
                      		<li><a href="/2014/06/17/contest-results.html">Apache Storm Logo Contest Results</a></li>
                    		
                      		<li><a href="/2014/05/27/round1-results.html">Logo Contest - Round 1 Results</a></li>
                    		
                      		<li><a href="/2014/04/29/logo-jlee3.html">Logo Entry No. 11 - Jennifer Lee</a></li>
                    		
                      		<li><a href="/2014/04/29/logo-jlee2.html">Logo Entry No. 10 - Jennifer Lee</a></li>
                    		
                      		<li><a href="/2014/04/29/logo-jlee1.html">Logo Entry No. 9 - Jennifer Lee</a></li>
                    		
                      		<li><a href="/2014/04/27/logo-sasili.html">Logo Entry No. 8 - Stefano Asili</a></li>
                    		
                      		<li><a href="/2014/04/27/logo-cboustead.html">Logo Entry No. 7 - Calum Boustead</a></li>
                    		
                      		<li><a href="/2014/04/23/logo-abartos.html">Logo Entry No. 6 - Alec Bartos</a></li>
                    		
                      		<li><a href="/2014/04/22/logo-zsayari.html">Logo Entry No. 5 - Ziba Sayari</a></li>
                    		
                      		<li><a href="/2014/04/21/logo-rmarshall.html">Logo Entry No. 4 - Richard Brownlie-Marshall</a></li>
                    		
                      		<li><a href="/2014/04/19/logo-ssuleman.html">Logo Entry No. 3- Shaan Shiv Suleman</a></li>
                    		
                      		<li><a href="/2014/04/17/logo-squinones.html">Logo Entry No. 2 - Samuel Quiñones</a></li>
                    		
                      		<li><a href="/2014/04/17/logo-pforrest.html">Logo Entry No. 1 - Patricia Forrest</a></li>
                    		
                      		<li><a href="/2014/04/10/storm-logo-contest.html">Apache Storm Logo Contest</a></li>
                    		
                      		<li><a href="/2013/12/08/storm090-released.html">Apache Storm 0.9.0 Released</a></li>
                    		
                      		<li><a href="/2013/01/11/storm082-released.html">Apache Storm 0.8.2 released</a></li>
                    		
                      		<li><a href="/2012/09/06/storm081-released.html">Apache Storm 0.8.1 released</a></li>
                    		
                      		<li><a href="/2012/08/02/storm080-released.html">Apache Storm 0.8.0 and Trident released</a></li>
                    		
                        </ul>
                    </div>
                    <div class="col-md-9" id="news-content">
                            <h1 class="page-title">
                               Apache Storm 0.9.2 released
                            </h1>
                                
                            <div class="row" style="margin: -15px;">
                                <div class="col-md-12">
                                    <p class="text-muted credit pull-left">Posted on Jun 25, 2014 by P. Taylor Goetz</p>
                                    <div class="pull-right">
                                        <a 
                                                href="https://twitter.com/share" 
                                                class="twitter-share-button"
                                                data-count=none
                                        >Tweet</a>
                                        <script> !function(d,s,id){
                                                var js,
                                                fjs=d.getElementsByTagName(s)[0],
                                                p=/^http:/.test(d.location)?'http':'https';
                                                if(!d.getElementById(id)){
                                                    js=d.createElement(s);
                                                    js.id=id;
                                                    js.src=p+'://platform.twitter.com/widgets.js';
                                                    fjs.parentNode.insertBefore(js,fjs);
                                                }
                                            }(document, 'script', 'twitter-wjs');
                                        </script>
                                    </div>
                                </div>
                            </div>
                        <div>
                	        <p>We are pleased to announce that Apache Storm 0.9.2-incubating has been released and is available from <a href="/downloads.html">the downloads page</a>. This release includes many important fixes and improvements.</p>

<h2 id="netty-transport-improvements">Netty Transport Improvements</h2>

<p>Apache Storm&#39;s Netty-based transport has been overhauled to significantly improve performance through better utilization of thread, CPU, and network resources, particularly in cases where message sizes are small. Apache Storm contributor Sean Zhong (<a href="https://github.com/clockfly">@clockfly</a>) deserves a great deal of credit not only for discovering, analyzing, documenting and fixing the root cause, but also for persevering through an extended review process and promptly addressing all concerns.</p>

<p>Those interested in the technical details and evolution of this patch can find out more in the <a href="https://issues.apache.org/jira/browse/STORM-297">JIRA ticket for STORM-297</a>.</p>

<p>Sean also discovered and fixed an <a href="https://issues.apache.org/jira/browse/STORM-342">elusive bug</a> in Apache Storm&#39;s usage of the Disruptor queue that could lead to out-of-order or lost messages. </p>

<p>Many thanks to Sean for contributing these important fixes.</p>

<h2 id="apache-storm-ui-improvements">Apache Storm UI Improvements</h2>

<p>This release also includes a number of improvements to the Apache Storm UI service. Contributor Sriharsha Chintalapani(<a href="https://github.com/harshach">@harshach</a>) added a REST API to the Apache Storm UI service to expose metrics and operations in JSON format, and updated the UI to use that API.</p>

<p>The new REST API will make it considerably easier for other services to consume availabe cluster and topology metrics for monitoring and visualization applications. Kyle Nusbaum (<a href="https://github.com/knusbaum">@knusbaum</a>) has already leveraged the REST API to create a topology visualization tool now included in Apache Storm UI and illustrated in the screenshot below.</p>

<p>&nbsp;</p>

<p><img src="/images/ui_topology_viz.png" alt="Apache Storm UI Topology Visualization"></p>

<p>&nbsp;</p>

<p>In the visualization, spout components are represented as blue, while bolts are colored between green and red depending on their associated capacity metric. The width of the lines between the components represent the flow of tuples relative to the other visible streams. </p>

<h2 id="kafka-spout">Kafka Spout</h2>

<p>This is the first Apache Storm release to include official support for consuming data from Kafka 0.8.x. In the past, development of Kafka spouts for Apache Storm had become somewhat fragmented and finding an implementation that worked with certain versions of Apache Storm and Kafka proved burdensome for some developers. This is no longer the case, as the <code>storm-kafka</code> module is now part of the Apache Storm project and associated artifacts are released to official channels (Maven Central) along with Apache Storm&#39;s other components.</p>

<p>Thanks are due to GitHub user <a href="">@wurstmeister</a> for picking up Nathan Marz&#39; original Kafka 0.7.x implementation, updating it to work with Kafka 0.8.x, and contributing that work back to the Apache Storm community.</p>

<p>The <code>storm-kafka</code> module can be found in the <code>/external/</code> directory of the source tree and binary distributions. The <code>external</code> area has been set up to contain projects that while not required by Apache Storm, are often used in conjunction with Apache Storm to integrate with some other technology. Such projects also come with a maintenance committment from at least one Apache Storm committer to ensure compatibility with Apache Storm&#39;s main codebase as it evolves.</p>

<p>The <code>storm-kafka</code> dependency is available now from Maven Central at the following coordinates:</p>
<div class="highlight"><pre><code class="language-" data-lang="">groupId: org.apache.storm
artifactId: storm-kafka
version: 0.9.2-incubating
</code></pre></div>
<p>Users, and Scala developers in particular, should note that the Kafka dependency is listed as <code>provided</code>. This allows users to choose a specific Scala version as described in the <a href="https://github.com/apache/incubator-storm/tree/v0.9.2-incubating/external/storm-kafka">project README</a>.</p>

<h2 id="apache-storm-starter-and-examples">Apache Storm Starter and Examples</h2>

<p>Similar to the <code>external</code> section of the codebase, we have also added an <code>examples</code> directory and pulled in the <code>storm-starter</code> project to ensure it will be maintained in lock-step with Apache Storm&#39;s main codebase.</p>

<p>Thank you to Apache Storm committer Michael G. Noll for his continued work in maintaining and improving the <code>storm-starter</code> project.</p>

<h2 id="plugable-serialization-for-multilang">Plugable Serialization for Multilang</h2>

<p>In previous versions of Apache Storm, serialization of data to and from multilang components was limited to JSON, imposing somewhat of performance penalty. Thanks to a contribution from John Gilmore (<a href="https://github.com/jsgilmore">@jsgilmore</a>) the serialization mechanism is now plugable and enables the use of more performant serialization frameworks like protocol buffers in addition to JSON.</p>

<h2 id="thanks">Thanks</h2>

<p>Special thanks are due to all those who have contributed to Apache Storm -- whether through direct code contributions, documentation, bug reports, or helping other users on the mailing lists. Your efforts are much appreciated.</p>

<h2 id="changelog">Changelog</h2>

<ul>
<li>STORM-352: [storm-kafka] PartitionManager does not save offsets to ZooKeeper</li>
<li>STORM-66: send taskid on initial handshake</li>
<li>STORM-342: Contention in Disruptor Queue which may cause out of order or lost messages</li>
<li>STORM-338: Move towards idiomatic Clojure style </li>
<li>STORM-335: add drpc test for removing timed out requests from queue</li>
<li>STORM-69: Storm UI Visualizations for Topologies</li>
<li>STORM-297: Performance scaling with CPU</li>
<li>STORM-244: DRPC timeout can return null instead of throwing an exception</li>
<li>STORM-63: remove timeout drpc request from its function&#39;s request queue</li>
<li>STORM-313: Remove log-level-page from logviewer</li>
<li>STORM-205: Add REST API To Storm UI</li>
<li>STORM-326: tasks send duplicate metrics</li>
<li>STORM-331: Update the Kafka dependency of storm-kafka to 0.8.1.1</li>
<li>STORM-308: Add support for config_value to {supervisor,nimbus,ui,drpc,logviewer} childopts</li>
<li>STORM-309: storm-starter Readme: windows documentation update</li>
<li>STORM-318: update storm-kafka to use apache curator-2.4.0</li>
<li>STORM-303: storm-kafka reliability improvements</li>
<li>STORM-233: Removed inline heartbeat to nimbus to avoid workers being killed when under heavy ZK load</li>
<li>STORM-267: fix package name of LoggingMetricsConsumer in storm.yaml.example</li>
<li>STORM-265: upgrade to clojure 1.5.1</li>
<li>STORM-232: ship JNI dependencies with the topology jar</li>
<li>STORM-295: Add storm configuration to define JAVA_HOME</li>
<li>STORM-138: Pluggable serialization for multilang</li>
<li>STORM-264: Removes references to the deprecated topology.optimize</li>
<li>STORM-245: implement Stream.localOrShuffle() for trident</li>
<li>STORM-317: Add SECURITY.md to release binaries</li>
<li>STORM-310: Change Twitter authentication</li>
<li>STORM-305: Create developer documentation</li>
<li>STORM-280: storm unit tests are failing on windows</li>
<li>STORM-298: Logback file does not include full path for metrics appender fileNamePattern</li>
<li>STORM-316: added validation to registermetrics to have timebucketSizeInSecs &gt;= 1</li>
<li>STORM-315: Added progress bar when submitting topology</li>
<li>STORM-214: Windows: storm.cmd does not properly handle multiple -c arguments</li>
<li>STORM-306: Add security documentation</li>
<li>STORM-302: Fix Indentation for pom.xml in storm-dist</li>
<li>STORM-235: Registering a null metric should blow up early</li>
<li>STORM-113: making thrift usage thread safe for local cluster</li>
<li>STORM-223: use safe parsing for reading YAML</li>
<li>STORM-238: LICENSE and NOTICE files are duplicated in storm-core jar</li>
<li>STORM-276: Add support for logviewer in storm.cmd.</li>
<li>STORM-286: Use URLEncoder#encode with the encoding specified.</li>
<li>STORM-296: Storm kafka unit tests are failing on windows</li>
<li>STORM-291: upgrade http-client to 4.3.3</li>
<li>STORM-252: Upgrade curator to latest version</li>
<li>STORM-294: Commas not escaped in command line</li>
<li>STORM-287: Fix the positioning of documentation strings in clojure code</li>
<li>STORM-290: Fix a log binding conflict caused by curator dependencies</li>
<li>STORM-289: Fix Trident DRPC memory leak</li>
<li>STORM-173: Treat command line &quot;-c&quot; option number config values as such</li>
<li>STORM-194: Support list of strings in *.worker.childopts, handle spaces</li>
<li>STORM-288: Fixes version spelling in pom.xml</li>
<li>STORM-208: Add storm-kafka as an external module</li>
<li>STORM-285: Fix storm-core shade plugin config</li>
<li>STORM-12: reduce thread usage of netty transport</li>
<li>STORM-281: fix and issue with config parsing that could lead to leaking file descriptors</li>
<li>STORM-196: When JVM_OPTS are set, storm jar fails to detect storm.jar from environment</li>
<li>STORM-260: Fix a potential race condition with simulated time in Storm&#39;s unit tests</li>
<li>STORM-258: Update commons-io version to 2.4</li>
<li>STORM-270: don&#39;t package .clj files in release jars.</li>
<li>STORM-273: Error while running storm topologies on Windows using &quot;storm jar&quot;</li>
<li>STROM-247: Replace links to github resources in storm script</li>
<li>STORM-263: Update Kryo version to 2.21+</li>
<li>STORM-187: Fix Netty error &quot;java.lang.IllegalArgumentException: timeout value is negative&quot;</li>
<li>STORM-186: fix float secs to millis long convertion</li>
<li>STORM-70: Upgrade to ZK-3.4.5 and curator-1.3.3</li>
<li>STORM-146: Unit test regression when storm is compiled with 3.4.5 zookeeper</li>
</ul>

                	    </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <footer>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Meetups</h5>
                    <ul class="latest-news">
                        
                        <li><a href="http://www.meetup.com/Apache-Storm-Apache-Kafka/">Apache Storm & Apache Kafka</a> <span class="small">(Sunnyvale, CA)</span></li>
                        
                        <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Apache Storm & Kafka Users</a> <span class="small">(Seattle, WA)</span></li>
                        
                        <li><a href="http://www.meetup.com/New-York-City-Storm-User-Group/">NYC Storm User Group</a> <span class="small">(New York, NY)</span></li>
                        
                        <li><a href="http://www.meetup.com/Bay-Area-Stream-Processing">Bay Area Stream Processing</a> <span class="small">(Emeryville, CA)</span></li>
                        
                        <li><a href="http://www.meetup.com/Boston-Storm-Users/">Boston Realtime Data</a> <span class="small">(Boston, MA)</span></li>
                        
                        <li><a href="http://www.meetup.com/storm-london">London Storm User Group</a> <span class="small">(London, UK)</span></li>
                        
                        <!-- <li><a href="http://www.meetup.com/Apache-Storm-Kafka-Users/">Seatle, WA</a> <span class="small">(27 Jun 2015)</span></li> -->
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>About Apache Storm</h5>
                    <p>Apache Storm integrates with any queueing system and any database system. Apache Storm's spout abstraction makes it easy to integrate a new queuing system. Likewise, integrating Apache Storm with database systems is easy.</p>
               </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>First Look</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/Rationale.html">Rationale</a></li>
                        <li><a href="/releases/current/Tutorial.html">Tutorial</a></li>
                        <li><a href="/releases/current/Setting-up-development-environment.html">Setting up development environment</a></li>
                        <li><a href="/releases/current/Creating-a-new-Storm-project.html">Creating a new Apache Storm project</a></li>
                    </ul>
                </div>
            </div>
            <div class="col-md-3">
                <div class="footer-widget">
                    <h5>Documentation</h5>
                    <ul class="footer-list">
                        <li><a href="/releases/current/index.html">Index</a></li>
                        <li><a href="/releases/current/javadocs/index.html">Javadoc</a></li>
                        <li><a href="/releases/current/FAQ.html">FAQ</a></li>
                    </ul>
                </div>
            </div>
        </div>
        <hr/>
        <div class="row">   
            <div class="col-md-12">
                <p align="center">Copyright © 2019 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved. 
                    <br>Apache Storm, Apache, the Apache feather logo, and the Apache Storm project logos are trademarks of The Apache Software Foundation. 
                    <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
            </div>
        </div>
    </div>
</footer>
<!--Footer End-->
<!-- Scroll to top -->
<span class="totop"><a href="#"><i class="fa fa-angle-up"></i></a></span> 

    </body>

</html>

