2015-07-01 27 views
0


我开始WSO2 ELB服务器,它是不会自动缩放,并显示以下错误,WSO2 ELB 2.1.1不自动缩放

[2015-07-01 18:55:35,653] INFO - CarbonUIServiceComponent Mgt Console URL : ht 
 
tps://10.167.46.154:9443/carbon/ 
 
[2015-07-01 18:57:35,259] DEBUG - ServiceRequestsInFlightAutoscaler This is the 
 
primary load balancer, starting to perform sanity checks. 
 
[2015-07-01 18:57:35,260] DEBUG - ServiceRequestsInFlightAutoscaler Values in Ap 
 
p domain context: 0 - 0 - Ctxt: 996465500 
 
[2015-07-01 18:57:35,262] DEBUG - ServiceRequestsInFlightAutoscaler Values in Ap 
 
p domain context: 0 - 0 - Ctxt: 3907204 
 
[2015-07-01 18:57:35,268] DEBUG - ServiceRequestsInFlightAutoscaler Load Balance 
 
r members of domain: wso2.carbon.lb.domain and sub domain: null running instance 
 
s (including this): 2 - pending instances: 0 
 
[2015-07-01 18:57:35,268] DEBUG - ServiceRequestsInFlightAutoscaler Load balance 
 
r sanity check has started. 
 
[2015-07-01 18:57:35,269] DEBUG - ServiceRequestsInFlightAutoscaler Sanity check 
 
has started for: Domain: wso2.esb.domain - Sub Domain: worker 
 
[2015-07-01 18:57:35,270] DEBUG - ServiceRequestsInFlightAutoscaler Sanity check 
 
has started for: Domain: wso2.esb.domain - Sub Domain: mgt 
 
[2015-07-01 18:57:35,287] ERROR - ClientUtils Address information does not exist 
 
in the Endpoint Reference (EPR).The system cannot infer the transport mechanism 
 
. 
 
[2015-07-01 18:57:35,287] ERROR - ClientUtils Address information does not exist 
 
in the Endpoint Reference (EPR).The system cannot infer the transport mechanism 
 
. 
 
[2015-07-01 18:57:35,289] ERROR - AutoscaleUtil Failed to start an instance of D 
 
omain: wso2.esb.domain - Sub Domain: mgt. 
 
org.apache.axis2.AxisFault: Address information does not exist in the Endpoint R 
 
eference (EPR).The system cannot infer the transport mechanism. 
 
     at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtil 
 
s.java:73) 
 
     at org.apache.axis2.client.OperationClient.prepareMessageContext(Operati 
 
onClient.java:288) 
 
     at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(Out 
 
InAxisOperation.java:176) 
 
     at org.apache.axis2.client.OperationClient.execute(OperationClient.java: 
 
149) 
 
     at org.wso2.carbon.stratos.cloud.controller.stub.CloudControllerServiceS 
 
tub.startInstance(CloudControllerServiceStub.java:572) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.clients.CloudControlle 
 
rStubClient.startInstance(CloudControllerStubClient.java:58) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.util.AutoscaleUtil.run 
 
Instances(AutoscaleUtil.java:319) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.callables.AppNodeSanit 
 
yCheckCallable.call(AppNodeSanityCheckCallable.java:81) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.callables.AppNodeSanit 
 
yCheckCallable.call(AppNodeSanityCheckCallable.java:31) 
 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. 
 
java:1110) 
 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor 
 
.java:603) 
 
     at java.lang.Thread.run(Thread.java:722) 
 
[2015-07-01 18:57:35,289] ERROR - AutoscaleUtil Failed to start an instance of D 
 
omain: wso2.esb.domain - Sub Domain: worker. 
 
org.apache.axis2.AxisFault: Address information does not exist in the Endpoint R 
 
eference (EPR).The system cannot infer the transport mechanism. 
 
     at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtil 
 
s.java:73) 
 
     at org.apache.axis2.client.OperationClient.prepareMessageContext(Operati 
 
onClient.java:288) 
 
     at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(Out 
 
InAxisOperation.java:176) 
 
     at org.apache.axis2.client.OperationClient.execute(OperationClient.java: 
 
149) 
 
     at org.wso2.carbon.stratos.cloud.controller.stub.CloudControllerServiceS 
 
tub.startInstance(CloudControllerServiceStub.java:572) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.clients.CloudControlle 
 
rStubClient.startInstance(CloudControllerStubClient.java:58) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.util.AutoscaleUtil.run 
 
Instances(AutoscaleUtil.java:319) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.callables.AppNodeSanit 
 
yCheckCallable.call(AppNodeSanityCheckCallable.java:81) 
 
     at org.wso2.carbon.mediator.autoscale.lbautoscale.callables.AppNodeSanit 
 
yCheckCallable.call(AppNodeSanityCheckCallable.java:31) 
 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. 
 
java:1110) 
 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor 
 
.java:603) 
 
     at java.lang.Thread.run(Thread.java:722) 
 
[2015-07-01 18:57:35,296] DEBUG - ServiceRequestsInFlightAutoscaler Autoscaling 
 
analysis is starting to run for domain: wso2.esb.domain and sub domain: worker 
 
[2015-07-01 18:57:35,298] DEBUG - ServiceRequestsInFlightAutoscaler Autoscaling 
 
analysis is starting to run for domain: wso2.esb.domain and sub domain: mgt 
 
[2015-07-01 18:57:35,298] DEBUG - ServiceRequestsInFlightAutoscaler Task finishe 
 
d a cycle.

我loadbalancer.conf文件:

loadbalancer { 
 
    # minimum number of load balancer instances 
 
    instances   1; 
 
    # fully qualified class name of load balancer enpoint which is extended from org.apache.synapse.endpoints.LoadbalanceEndpoint 
 
    lb_endpoint_class org.wso2.carbon.lb.endpoint.endpoint.TenantAwareLoadBalanceEndpoint; 
 
    # whether autoscaling should be enabled or not. 
 
    enable_autoscaler true; 
 
    # autoscaling decision making task 
 
    autoscaler_task org.wso2.carbon.mediator.autoscale.lbautoscale.task.ServiceRequestsInFlightAutoscaler; 
 
    # whether to use embedded autoscaler or not. By default, we use embedded autoscaler. 
 
    use_embedded_autoscaler false; 
 
    #please use this whenever url-mapping is used through LB. 
 
    #size_of_cache \t \t 100; 
 
    # End point reference of the Autoscaler Service. This should be present, if you disabled embedded autoscaling. 
 
    #autoscaler_service_epr https://host_address:https_port/services/AutoscalerService/; 
 
    # interval between two task executions in milliseconds 
 
    autoscaler_task_interval 60000; 
 
    # after an instance booted up, task will wait maximum till this much of time and let the server started up 
 
    server_startup_delay 6000; #default will be 60000ms 
 
    # session time out 
 
    session_timeout 900000; 
 
    # enable fail over 
 
    fail_over true; 
 
    #mb_server_url localhost:5672; 
 
    # whether domain mapping should be enabled or not. 
 
    enable_domain_mapping false; 
 
} 
 

 
# services' details which are fronted by this WSO2 Elastic Load Balancer 
 
services { 
 
    # default parameter values to be used in all services 
 
    defaults { 
 
     # minimum number of service instances required. WSO2 ELB will make sure that this much of instances 
 
     # are maintained in the system all the time, of course only when autoscaling is enabled. 
 
     min_app_instances  1; 
 
     # maximum number of service instances that will be load balanced by this ELB. 
 
     max_app_instances  5; 
 
     # you need to calibrate autoscaling parameters before start using. Please go through following blog post 
 
     # http://nirmalfdo.blogspot.com/2013/01/scale-up-early-scale-down-slowly.html 
 
     max_requests_per_second 1; 
 
     alarming_upper_rate 0.1; 
 
     alarming_lower_rate 0.9; 
 
     scale_down_factor 0.25; 
 
     rounds_to_average  1; 
 
     message_expiry_time  60000; 
 
\t \t 
 
    } 
 

 
    
 

 
    esb { 
 
    domains{ 
 
    wso2.esb.domain { 
 
     tenant_range *; 
 
     group_mgt_port 4500; 
 
\t \t min_app_instances 1; 
 
      alarming_upper_rate 0.1;  
 
      alarming_lower_rate 0.9; 
 
\t \t \t max_requests_per_second 1; 
 
\t \t mgt { 
 
       hosts mgt.esb.wso2.com; 
 
     } 
 
     worker { 
 
       hosts esb.wso2.com; 
 
     } 
 
worker { 
 
       hosts esb1.wso2.com; 
 
     } \t \t 
 
    } 
 
    } 
 
} 
 

 
    
 
}
当我运行服务器,有时它给出了上面的错误,它不是自动缩放。 什么是错误,是否需要其他配置?

谢谢。

回答

0

只能通过更改WSO2 ELB中的配置来进行自动缩放。见Auto-Scaling in Load Balancer

您需要为首选IaaS配置盒式磁带。 ELB支持Amazon EC2和OpenStack。 Cartidge基本上是一个图像(例如EC2中的AMI),ELB可以从配置的图像中产生实例。在该映像中,您需要配置如何连接到现有的WSO2产品集群并执行其他所需的配置。

但正如我在其他Stack Overflow answer中所提到的,WSO2 ELB不再推荐使用,它已经停产。

如果您需要带有WSO2产品的自动扩展平台,我们推荐使用WSO2 Private PaaS。使用WSO2 Private PaaS,您可以将大部分经常使用的WSO2产品当作墨盒。

+0

是否喜欢使用ELB我应该使用带有WSO2 ESB的PaaS?我不能直接用elb来使用esb吗? –

+0

您可以使用ELB对ESB群集进行负载平衡。但是如果您需要自动缩放,请考虑使用WSO2 Private PaaS。即使对于负载平衡,我们也建议使用另一个像Nginx的LB,因为我们正在停止ELB产品。 –