Commit 9bf0eba3 by jscat

titan data;

1. eureka 服务注册支持
parent db39106e
......@@ -9,7 +9,7 @@ from datetime import datetime, timedelta
from titan_data_function import Data
from titan_table_structure import Base
import titan_data_settings as settings
import py_eureka_client.eureka_client as eureka_client
class Demo:
......@@ -64,8 +64,19 @@ class Demo:
# 启动调度器,后台监控定时任务,到点执行
scheduler.start()
def setEureka(self):
server_host = "localhost"
server_port = 8193
eureka_client.init(eureka_server="http://admin:pass@localhost:48761/eureka",
app_name="titan-data-sync",
# 当前组件的主机名,可选参数,如果不填写会自动计算一个,如果服务和 eureka 服务器部署在同一台机器,请必须填写,否则会计算出 127.0.0.1
instance_host=server_host,
instance_port=server_port,
# 调用其他服务时的高可用策略,可选,默认为随机
ha_strategy=eureka_client.HA_STRATEGY_RANDOM)
if __name__== '__main__':
print("start")
demo = Demo()
demo.setEureka()
demo.start()
......@@ -213,6 +213,13 @@
<version>3.3.3</version>
</dependency>
<!-- JavaMail-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</dependencies>
<build>
......
package cn.com.titan.eureka.api.web.common;
import com.netflix.appinfo.InstanceInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.netflix.eureka.server.event.*;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
@Component
public class EurekaStateChangeListener {
private static final Logger log = LoggerFactory.getLogger(EurekaStateChangeListener.class);
@EventListener
public void listen(EurekaInstanceCanceledEvent eurekaInstanceCanceledEvent) {
String appName = eurekaInstanceCanceledEvent.getAppName();
String serverId = eurekaInstanceCanceledEvent.getServerId();
log.info("module canceled server_id : " + serverId);
sendCanceledWarnMail(appName,serverId);
}
@EventListener
public void listen(EurekaInstanceRegisteredEvent event) {
InstanceInfo instanceInfo = event.getInstanceInfo();
log.info("module registered instanceInfo : " + instanceInfo);
}
@EventListener
public void listen(EurekaInstanceRenewedEvent event) {
String serverId = event.getServerId();
log.info("module renewed server_id : " + serverId);
}
@EventListener
public void listen(EurekaRegistryAvailableEvent event) {
String eventStr = event.toString();
log.info("module available is " + eventStr);
}
@EventListener
public void listen(EurekaServerStartedEvent event) {
String startStr = event.toString();
log.info("module start is " + startStr);
}
public void sendCanceledWarnMail(String appName, String serverId)
{
Properties props = new Properties();
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件服务器主机名
props.setProperty("mail.host", "smtp.163.com");
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
try {
// 设置环境信息
Session session = Session.getInstance(props);
// 创建邮件对象
Message msg = new MimeMessage(session);
msg.setSubject("Eureka Server status check");
// 设置邮件内容
msg.setText("服务异常关闭提醒 appName : " + appName + " , serverId : " + serverId);
// 设置发件人(账号)
msg.setFrom(new InternetAddress("titanplus2021@163.com"));
Transport transport = session.getTransport();
// 连接邮件服务器(账号,授权码)
transport.connect("titanplus2021@163.com", "DWSBWWENHZPEUZKB");
// 发送邮件
transport.sendMessage(msg, new Address[] {new InternetAddress("jesu@digjob.net")});
// 关闭连接
transport.close();
} catch (Exception e) {
log.error("send module canceled message error : ", e);
}
}
}
\ No newline at end of file
package cn.com.titan.eureka.api;
import cn.com.titan.eureka.api.web.common.EurekaStateChangeListener;
import org.junit.Test;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class mailTest {
private static final Logger log = LoggerFactory.getLogger(mailTest.class);
@Test
public void mailTest() throws Exception
{
Properties props = new Properties();
// 发送服务器需要身份验证
props.setProperty("mail.smtp.auth", "true");
// 设置邮件服务器主机名
props.setProperty("mail.host", "smtp.163.com");
// 发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
try {
// 设置环境信息
Session session = Session.getInstance(props);
// 创建邮件对象
Message msg = new MimeMessage(session);
msg.setSubject("Eureka Server status check");
// 设置邮件内容
msg.setText("服务异常关闭提醒 appName : " + " , serverId : ");
// 设置发件人(账号)
msg.setFrom(new InternetAddress("titanplus2021@163.com"));
Transport transport = session.getTransport();
// 连接邮件服务器(账号,授权码)
transport.connect("titanplus2021@163.com", "DWSBWWENHZPEUZKB");
// 发送邮件
transport.sendMessage(msg, new Address[] {new InternetAddress("jesu@digjob.net")});
// 关闭连接
transport.close();
} catch (Exception e) {
log.error("send module canceled message error : ", e);
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论