Solved

HTTP servers, Jetty servers, and API managers

Posted on 2014-10-21
3
182 Views
Last Modified: 2014-10-22
I have seen documentation that states that some API managers will  successfully enforce rate limiting on HTTP transports, but not Jetty transports, due to a limitation of the jetty transport.  

This does not make sense to me as I thought Jetty was simply a HTTP server written in Java

What is the limitation in the Jetty transport that will not allow API managers to perform rate limiting?
0
Comment
Question by:Anthony Lucia
  • 2
3 Comments
 
LVL 26

Expert Comment

by:dpearson
ID: 40395411
Can you point to the documentation saying this?
0
 

Author Comment

by:Anthony Lucia
ID: 40395593
This site:

http://www.mulesoft.org/documentation/display/current/Applying+Runtime+Policies

states:

Note that all the policy templates below are intended only for HTTP/HTTPS endpoints. If your API uses a Jetty inbound endpoint, all policies below will function as expected except for the rate-limiting and throttling policies. These policies will not work due to a limitation of the Jetty transport. If your API requires rate-limiting or throttling, please ensure that its inbound endpoint uses the HTTP transport protocol.

Open in new window

0
 
LVL 26

Accepted Solution

by:
dpearson earned 500 total points
ID: 40395888
You're right that Jetty is generally just a normal HTTP server.

But it looks like the issue is that mule is using an alternative protocol when you use this "Jetty transport":
http://www.mulesoft.org/documentation-3.2/display/MULE2USER/Jetty+Transport

See how the protocol in the request is set to "jetty://" instead of "http:'//"

So I think it's using their own, custom protocol to send the requests to the jetty server - not using regular http.
And presumably because of that, the rate limiting fails to work.

Seems like a pretty weird design choice - I suppose they must get a substantial performance benefit out of doing this.

Doug
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction and Prerequisites This article describes methods for detecting whether a client browser accepts and returns HTTP cookies and whether the client browser runs JavaScript.  Most client browsers will, by default, be configured to use cooki…
Password hashing is better than message digests or encryption, and you should be using it instead of message digests or encryption.  Find out why and how in this article, which supplements the original article on PHP Client Registration, Login, Logo…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…

778 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question