2

Basically, what I'm interested in doing is setting up a WSO2 API Manager in multiple regions; such as Asia, US, and Europe. Some APIs will be deployed within datacenters in each region while other APIs will only be deployed within a particular region.

Ideally what I'd like to have is a single WSO2 API Store where I can see the APIs that are deployed across all regions (including those that are only available on servers in specific regions).

I don't want the API users to have to know about each of the API Managers or their stores in order to discover the available APIs. I'd rather they just knew about one of the API Manager stores (ideally the one in their region) and they could then find the available APIs and decide if they want to deal with the latency of using an API from a different region.

Thus, when an API is published using the API Manager Publisher in one region I'd like that API information to be federated to each of the API Manager Stores.

Is this possible? If so does any documentation exist on how to configure the API Managers to use API metadata federation?

JasonMArcher
  • 14,195
  • 22
  • 56
  • 52
Bill Rawlinson
  • 600
  • 1
  • 4
  • 22

1 Answers1

3

If I understood your query correctly,this is possible via distributed clustered setup of WSO2 API Manager.

This blogpost will be help you to get initial understanding on how WSO2 API Manager[AM] designed for scalability.

For the moment,we are in the process of updating WSO2 AM documentation with API Manager deployment details in a distributed setup and those will be available in near future. Additionally this slideset would help to you as it is containing some deployment patterns which can be used for API Manager.

Thanks;

  • thanks, that helps. I have figured out based on the basic stuff suggested that by deleting the publisher jaggery app from one API Manager install that I basically have separated the store into a single install node and then doing another install, deleting the store jaggery app, that I then have a publisher. Is that basically the right approach to having a store node and a publisher node? I'm attempting to get them to both talk to the same mysql database now http://stackoverflow.com/questions/11924560/wso2-api-mgr-mysql-db/11929403#comment18405536_11929403 – Bill Rawlinson Nov 19 '12 at 19:32
  • Using the initial guidance for Ialaji's post as well as some clarification from some other questions and a bunch of experimentation here is how I managed to get multiple stores, publishers, and api managers talking to the same datasource. http://code.rawlinson.us/2012/11/configure-wso2-api-manager-to-run-on.html I still have to figure out how to cluster nodes - particularly the api gateway. – Bill Rawlinson Nov 21 '12 at 12:47
  • 1
    Hi Bill, Answering to your first question,yes that's the approach to continue on seperating store and publisher into two seperate nodes.Hope you have already able to shared the same database to be point by both instances.And additionally you need to do registry mounting also.As we are storing some meta-data to embedded registry while directly storing some data to database.Hope the blogpost http://ajithvblogs.blogspot.com/2012/09/create-jdbc-mount-to-wso2-governance.html will help you to get better understanding on it. – lalaji Sureshika Nov 21 '12 at 13:29
  • Hi, Answering to your second post.Yes,we are lacking of documentation on this area.We are working on this.And thanks a lot for your great effort on blogging about the things you experimented.One more thing,at first phase if you are interest on creating a distributed setup of APIManager with one node for each store,publisher,keymgt and gateway,then it can be achieve only by registry mounting and database sharing.For such a setup you don't need to enable clustering. – lalaji Sureshika Nov 21 '12 at 13:40
  • Additionally i think the blog http://sumedha.blogspot.fr/2012/06/guide-to-advance-configuration-options.html will help you to understand seperation of key components in APIManager. And if you are planning to enable clustering and keep node groups for each key component of API Manager,you can use axis2-clustering. – lalaji Sureshika Nov 21 '12 at 13:48
  • the shared database was my initial step so I'm glad that worked. However, due to the geographical regions I'll possibly be supporting, as well as the potentially large userbase - I will end up needing distributed clustering of the data store - or at least data replication across regions. – Bill Rawlinson Nov 21 '12 at 14:12
  • Ialaji - I've blogged again fixing some minor problems in the blog posting you shared ajithvblogs.blogspot.com. I've posted mine at http://code.rawlinson.us/2012/11/configure-wso2-api-manager-to-run-on.html Basically there were some case-sensitivity errors in Ajith's blog as well as some unclear paths specified when talking about the ESB. Mine deals with the API manager but is obviously applicable to any usage of the ESB. – Bill Rawlinson Nov 21 '12 at 16:18
  • let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/19899/discussion-between-bill-rawlinson-and-lalaji-sureshika) – Bill Rawlinson Nov 21 '12 at 16:20
  • I'm guessing the chat is going to get ignored so I'll just start a new question. – Bill Rawlinson Nov 23 '12 at 13:45