当前位置: 首页 > news >正文

企业级网站建设外贸推广方式

企业级网站建设,外贸推广方式,北京门户企业网站建设,众筹网站的分析与设计一、目的 服务发生线程锁住,需要下线服务时,保证请求中的接口不受影响,执行完后,再下线服务 二、步骤 *kill -15时执行改钩子函数 优雅停机 1.当线程锁住 2.运维那边监控到,然后进行kill -15 进程ID 3.代码这边监…

一、目的

  1. 服务发生线程锁住,需要下线服务时,保证请求中的接口不受影响,执行完后,再下线服务

二、步骤

*kill -15时执行改钩子函数 优雅停机
1.当线程锁住
2.运维那边监控到,然后进行kill -15 进程ID
3.代码这边监听到关闭信号,先把容器权重设置为0,不允许新的请求进来.
4.然后为了保住容器其他请求中的接口不受影响,进行睡眠30s再关闭容器

三、代码实现

package com.dst.XXX.XXX;import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.PropertyKeyConst;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.dst.steed.common.util.DstSpringUtil;
import com.dst.steed.rabbit.annotation.SteedAmqpScan;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.util.StopWatch;import javax.annotation.Resource;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Optional;
import java.util.Properties;import static com.dst.lcb.base.DstSteedLcbBaseService.PACKAGE_NAME;/*** 服务启动** @author LWP* @since 2024/08/20*/
@Slf4j
@SpringBootApplication(scanBasePackages = {PACKAGE_NAME})
@EnableFeignClients(basePackages = PACKAGE_NAME + ".infrastructure.acl")
@MapperScan(basePackages = {PACKAGE_NAME + ".infrastructure.biz.**.mapper", PACKAGE_NAME + ".modules.mapper","generator.mapper"})
@SteedAmqpScan(basePackage = PACKAGE_NAME + ".infrastructure.mq")
public class DstSteedXXXXService implements CommandLineRunner, ApplicationContextAware {public static final String PACKAGE_NAME = "com.dst.XXX.XXX";@Autowiredprivate ConfigurableApplicationContext applicationContext;@Resourceprivate NacosDiscoveryProperties nacosDiscoveryProperties;public static void main(String[] args) {StopWatch stopWatch = new StopWatch();stopWatch.start();SpringApplication.run(DstSteedLcbBaseService.class, args);stopWatch.stop();log.info("【服务:" + DstSpringUtil.getAppName() +";环境:" + DstSpringUtil.getActiveProfile() +"】启动成功,耗时:" +new DecimalFormat("#.##").format(stopWatch.getTotalTimeSeconds()) + " 秒。");}/*** kill -15时执行改钩子函数  优雅停机* 1.线程锁住* 2.运维那边监控到,然后进行kill  -15 进程ID* 3.代码这边监听到关闭信号,先把容器权重设置为0,不允许新的请求进来.* 4.然后为了保住容器其他请求中的接口不受影响,进行睡眠30s再关闭容器*/@Overridepublic void run(String... args) {log.info("启动成功 !");Runtime.getRuntime().addShutdownHook(new Thread(() -> {log.info("收到服务关闭信号");stop();try {log.info("睡眠30秒");Thread.sleep(30000);} catch (InterruptedException e) {throw new RuntimeException(e);}applicationContext.close();}));}private void stop() {try {Properties properties = new Properties();properties.put(PropertyKeyConst.NAMESPACE, nacosDiscoveryProperties.getNamespace());properties.put(PropertyKeyConst.SERVER_ADDR, nacosDiscoveryProperties.getServerAddr());NamingService namingService = NacosFactory.createNamingService(properties);String serviceName = nacosDiscoveryProperties.getService();List<Instance> instanceList = namingService.getAllInstances(serviceName);Optional<Instance> currentInstance = instanceList.stream().filter(instance -> instance.getIp().equals(nacosDiscoveryProperties.getIp())).findFirst();currentInstance.ifPresent(instance -> {log.info("找到当前服务实例: {}", instance);instance.setWeight(0);try {namingService.registerInstance(serviceName, instance);log.info("Nacos 服务权重已设置为 0");} catch (NacosException e) {log.error("设置 Nacos 服务权重时发生错误", e);}});} catch (NacosException e) {log.error("获取 Nacos 命名服务时发生错误", e);}}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) {if (applicationContext instanceof ConfigurableApplicationContext) {this.applicationContext = (ConfigurableApplicationContext) applicationContext;}}}

http://www.zhongyajixie.com/news/17979.html

相关文章:

  • 上海网站建设制作微信百度免费收录提交入口
  • 自贡网站制作网络销售管理条例
  • 自己网站做搜索引擎优化运营网站
  • 网站快照描述推广竞价的公司有哪些
  • wordpress wptitle班级优化大师app下载
  • 高端设计网站平台销售
  • 爱站网源码百度竞价广告
  • 上海网站优化上站长之家下载
  • 东莞网站优化关键词费用太原网站排名推广
  • qq是哪个公司开发出来的怎么制作seo搜索优化
  • 家装效果图网站谷歌商店下载官网
  • 曹县网站建设无锡网站制作无锡做网站
  • 启航做网站怎么样seo网站外链平台
  • 网站开发未来活动营销的方式有哪些
  • 想把比尔的网站封了如何做各大网站排名
  • wordpress主题语言泉州关键词优化报价
  • 如何能让企业做网站的打算长春百度快速优化
  • 网络教育做的好的网站百度 营销中心
  • 营销型网站建设计划书seo推广教学
  • 苏州网站建设设计公司厦门人才网个人登录
  • 广东装饰公司网站建设学生网页制作成品
  • 网站建设有限公网络推销平台有哪些
  • 佛山新网站建设详细内容站长统计网站
  • 顺德网站建设原创网络营销策划方案ppt
  • 东莞建网站哪家强网络广告销售
  • 做网站专业服务邢台市seo服务
  • 腾讯小程序怎么制作郑州关键词优化费用
  • 永康城乡建设局网站sem和seo区别与联系
  • 用dw做网站 的过程百度推广
  • ps网站设计与制作体验营销策划方案