1
0
mirror of https://gitee.com/mirrors/Spring-Cloud-Alibaba.git synced 2021-06-26 13:25:11 +08:00

sms & sentinel refactor 1.x

This commit is contained in:
fangjian0423 2019-03-04 15:23:19 +08:00
parent 15b01929ab
commit d4767da1c5
7 changed files with 64 additions and 52 deletions

View File

@ -29,7 +29,6 @@
<schedulerX.client.version>2.1.6</schedulerX.client.version>
<aliyun.java.sdk.dysmsapi>1.1.0</aliyun.java.sdk.dysmsapi>
<aliyun.sdk.mns>1.1.8</aliyun.sdk.mns>
<aliyun.java.sdk.dysmsapi>1.1.0</aliyun.java.sdk.dysmsapi>
</properties>
<dependencyManagement>

View File

@ -29,11 +29,6 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alicloud-sms</artifactId>
</dependency>
<dependency>
<groupId>alibaba.com</groupId>
<artifactId>env-extension</artifactId>
<version>0.1.2.BUILD-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
@ -47,6 +42,14 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

View File

@ -31,6 +31,7 @@ import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowRuleManager;
import com.alibaba.csp.sentinel.slots.system.SystemRuleManager;
import com.alibaba.csp.sentinel.transport.config.TransportConfig;
import com.alibaba.csp.sentinel.util.AppNameUtil;
/**
* Endpoint for Sentinel, contains ans properties and rules
@ -50,6 +51,7 @@ public class SentinelEndpoint extends AbstractEndpoint<Map<String, Object>> {
final Map<String, Object> result = new HashMap<>();
if (sentinelProperties.isEnabled()) {
result.put("appName", AppNameUtil.getAppName());
result.put("logDir", LogBase.getLogBaseDir());
result.put("logUsePid", LogBase.isLogNameUsePid());
result.put("blockPage", WebServletConfig.getBlockPage());

View File

@ -17,15 +17,20 @@ package org.springframework.cloud.alicloud.sms;
import java.text.ParseException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.alicloud.context.AliCloudProperties;
import org.springframework.cloud.alicloud.context.sms.SmsProperties;
import org.springframework.cloud.alicloud.sms.base.DefaultAlicomMessagePuller;
import org.springframework.cloud.alicloud.sms.endpoint.EndpointManager;
import org.springframework.cloud.alicloud.sms.endpoint.ReceiveMessageEntity;
import com.aliyuncs.dysmsapi.model.v20170525.*;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;
import com.aliyuncs.dysmsapi.model.v20170525.SendBatchSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendBatchSmsResponse;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
@ -34,7 +39,7 @@ import com.aliyuncs.exceptions.ServerException;
*/
public final class SmsServiceImpl extends AbstractSmsService {
private static final Log log = LogFactory.getLog(SmsServiceImpl.class);
private static final Logger log = LoggerFactory.getLogger(SmsServiceImpl.class);
/**
* will expose user to call this method send sms message
* @param sendSmsRequest

View File

@ -15,14 +15,6 @@
*/
package org.springframework.cloud.alicloud.sms.base;
import com.aliyun.mns.client.CloudQueue;
import com.aliyun.mns.common.ClientException;
import com.aliyun.mns.common.ServiceException;
import com.aliyun.mns.model.Message;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@ -33,12 +25,22 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import org.apache.commons.lang3.concurrent.BasicThreadFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aliyun.mns.client.CloudQueue;
import com.aliyun.mns.common.ClientException;
import com.aliyun.mns.common.ServiceException;
import com.aliyun.mns.model.Message;
/**
* 阿里通信官方消息默认拉取工具类
*/
public class DefaultAlicomMessagePuller {
private Log logger = LogFactory.getLog(DefaultAlicomMessagePuller.class);
private static final Logger log = LoggerFactory
.getLogger(DefaultAlicomMessagePuller.class);
private String mnsAccountEndpoint = "https://1943695596114318.mns.cn-hangzhou.aliyuncs.com/";// 阿里通信消息的endpoint,固定
private String endpointNameForPop = "cn-hangzhou";
@ -103,7 +105,7 @@ public class DefaultAlicomMessagePuller {
sPollingMap.put(queueName, false);
lockObj.notifyAll();
if (debugLogOpen) {
logger.info("PullMessageTask_WakeUp:Everyone WakeUp and Work!");
log.info("PullMessageTask_WakeUp:Everyone WakeUp and Work!");
}
}
}
@ -131,7 +133,7 @@ public class DefaultAlicomMessagePuller {
if (p != null && p) {
try {
if (debugLogOpen) {
logger.info("PullMessageTask_sleep:"
log.info("PullMessageTask_sleep:"
+ Thread.currentThread().getName()
+ " Have a nice sleep!");
}
@ -140,7 +142,7 @@ public class DefaultAlicomMessagePuller {
}
catch (InterruptedException e) {
if (debugLogOpen) {
logger.info("PullMessageTask_Interrupted!"
log.info("PullMessageTask_Interrupted!"
+ Thread.currentThread().getName()
+ " QueueName is " + queueName);
}
@ -158,7 +160,7 @@ public class DefaultAlicomMessagePuller {
if (debugLogOpen) {
SimpleDateFormat format = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
logger.info("PullMessageTask_popMessage:"
log.info("PullMessageTask_popMessage:"
+ Thread.currentThread().getName() + "-popDone at "
+ "," + format.format(new Date()) + " msgSize="
+ (popMsg == null ? 0 : popMsg.getMessageId()));
@ -171,7 +173,7 @@ public class DefaultAlicomMessagePuller {
else {
if (setPolling(queueName)) {
if (debugLogOpen) {
logger.info("PullMessageTask_setPolling:"
log.info("PullMessageTask_setPolling:"
+ Thread.currentThread().getName() + " Polling!");
}
}
@ -180,7 +182,7 @@ public class DefaultAlicomMessagePuller {
}
do {
if (debugLogOpen) {
logger.info("PullMessageTask_Keep_Polling"
log.info("PullMessageTask_Keep_Polling"
+ Thread.currentThread().getName()
+ "KEEP Polling!");
}
@ -189,7 +191,7 @@ public class DefaultAlicomMessagePuller {
}
catch (ClientException e) {
if (debugLogOpen) {
logger.info(
log.info(
"PullMessageTask_Pop_Message:ClientException Refresh accessKey"
+ e);
}
@ -200,7 +202,7 @@ public class DefaultAlicomMessagePuller {
}
catch (ServiceException e) {
if (debugLogOpen) {
logger.info(
log.info(
"PullMessageTask_Pop_Message:ServiceException Refresh accessKey"
+ e);
}
@ -211,7 +213,7 @@ public class DefaultAlicomMessagePuller {
}
catch (Exception e) {
if (debugLogOpen) {
logger.info(
log.info(
"PullMessageTask_Pop_Message:Exception Happened when polling popMessage: "
+ e);
}
@ -224,7 +226,7 @@ public class DefaultAlicomMessagePuller {
if (dealResult) {
// remember to delete message when consume message successfully.
if (debugLogOpen) {
logger.info("PullMessageTask_Deal_Message:"
log.info("PullMessageTask_Deal_Message:"
+ Thread.currentThread().getName() + "deleteMessage "
+ popMsg.getMessageId());
}
@ -232,19 +234,19 @@ public class DefaultAlicomMessagePuller {
}
}
catch (ClientException e) {
logger.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName, e);
log.error("PullMessageTask_execute_error,messageType:" + messageType
+ ",queueName:" + queueName, e);
break;
}
catch (ServiceException e) {
if (e.getErrorCode().equals("AccessDenied")) {
logger.error("PullMessageTask_execute_error,messageType:"
log.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName
+ ",please check messageType and queueName", e);
}
else {
logger.error("PullMessageTask_execute_error,messageType:"
log.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName, e);
}
break;
@ -252,30 +254,30 @@ public class DefaultAlicomMessagePuller {
}
catch (com.aliyuncs.exceptions.ClientException e) {
if (e.getErrCode().equals("InvalidAccessKeyId.NotFound")) {
logger.error("PullMessageTask_execute_error,messageType:"
log.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName
+ ",please check AccessKeyId", e);
}
if (e.getErrCode().equals("SignatureDoesNotMatch")) {
logger.error("PullMessageTask_execute_error,messageType:"
log.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName
+ ",please check AccessKeySecret", e);
}
else {
logger.error("PullMessageTask_execute_error,messageType:"
log.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName, e);
}
break;
}
catch (Exception e) {
logger.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName, e);
log.error("PullMessageTask_execute_error,messageType:" + messageType
+ ",queueName:" + queueName, e);
try {
Thread.sleep(sleepSecondWhenNoData);
}
catch (InterruptedException e1) {
logger.error("PullMessageTask_execute_error,messageType:"
log.error("PullMessageTask_execute_error,messageType:"
+ messageType + ",queueName:" + queueName, e);
}
}

View File

@ -15,6 +15,15 @@
*/
package org.springframework.cloud.alicloud.sms.base;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aliyun.mns.client.CloudAccount;
import com.aliyun.mns.client.CloudQueue;
import com.aliyun.mns.client.MNSClient;
@ -27,21 +36,13 @@ import com.aliyuncs.http.MethodType;
import com.aliyuncs.http.ProtocolType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
/**
* 获取接收云通信消息的临时token
*
*/
public class TokenGetterForAlicom {
private Log logger = LogFactory.getLog(TokenGetterForAlicom.class);
private static final Logger log = LoggerFactory.getLogger(TokenGetterForAlicom.class);
private String accessKeyId;
private String accessKeySecret;
private String endpointNameForPop;
@ -100,7 +101,7 @@ public class TokenGetterForAlicom {
return token;
}
else {
logger.error("getTokenFromRemote_error,messageType:" + messageType + ",code:"
log.error("getTokenFromRemote_error,messageType:" + messageType + ",code:"
+ response.getCode() + ",message:" + response.getMessage());
throw new ServerException(response.getCode(), response.getMessage());
}
@ -124,8 +125,8 @@ public class TokenGetterForAlicom {
CloudAccount account = new CloudAccount(token.getTempAccessKeyId(),
token.getTempAccessKeySecret(), mnsAccountEndpoint,
token.getToken());
// logger.warn("ak:"+token.getTempAccessKey());
// logger.warn("token:"+token.getToken());
// log.warn("ak:"+token.getTempAccessKey());
// log.warn("token:"+token.getToken());
MNSClient client = account.getMNSClient();
CloudQueue queue = client.getQueueRef(queueName);
token.setClient(client);

View File

@ -22,7 +22,7 @@ import java.util.Map;
public class SmsEndpoint extends AbstractEndpoint<Map<String, Object>> {
public SmsEndpoint() {
super("sms_info");
super("sms");
}
@Override