世界最资讯丨一万字图解分布式系统限流平台Sentinel
大家好,我是哪吒。Sentinel是阿里巴巴开源的一款轻量级流量控制、熔断降级工具,它提供了实时的流量控...
2023-04-06大家好,我是哪吒。
Sentinel是阿里巴巴开源的一款轻量级流量控制、熔断降级工具,它提供了实时的流量控制,熔断降级等功能,能够帮助我们实现服务的高可用性和稳定性。
本文将会介绍Sentinel的作用和优势、快速开始、进阶使用、Spring Cloud Alibaba Sentinel整合以及实践案例,并对Sentinel的局限和不足进行分析。
(资料图)
一、前言1、关于 SentinelSentinel 是阿里巴巴开源的一款针对分布式系统的流量控制、熔断降级的框架。在微服务架构的系统中,请求流量复杂多样,可能会因为某一个服务异常而导致整体服务不可用,这时候需要熔断降级,而 Sentinel 就提供了这样的解决方案。
2、Sentinel 的作用和优势Sentinel 可以针对服务方法调用、HTTP 请求、Dubbo 服务等,进行实时的流量控制、熔断降级,确保服务高可用,同时还可以提供实时的监控和报警功能。
Sentinel 有以下一些优势:
丰富的应用场景和细粒度的控制: Sentinel 支持多种应用场景,包括熔断降级、流量控制、系统保护、热点参数限流等,而且可以实现细粒度的控制;强大的实时监测机制: Sentinel 提供了实时的监测、报警机制,能够对系统运行情况进行实时检测和通知,发现问题更加及时;易于扩展: Sentinel 为开发者提供了简单易用的扩展接口,开发者可以方便的实现自定义的控制和监测逻辑;易于集成: Sentinel 支持多种开发框架,包括 Spring Cloud、Dubbo、Feign 等,开发者可以很方便的将 Sentinel 集成到自己的应用中;3、本文目的和内容概述本文将为读者介绍 Sentinel 的基础和进阶使用方法,包括
如何配置 Sentinel 控制台;如何编写并测试 Sentinel 规则、如何使用自定义 Sentinel 规则扩展开发;介绍 Sentinel 和 Spring Cloud Alibaba 的整合方法,并且给出了一些 Sentinel 实践案例供读者参考。本文的目的是帮助读者快速上手使用 Sentinel,并且深入理解其基本原理和使用方法。同时,也希望能够对读者们的日常工作有所帮助。
二、快速开始1、环境准备在开始使用 Sentinel 之前,我们需要准备好以下环境:
JDK 1.8 或更高版本Maven 3.0 或更高版本Sentinel-dashboard2、引入 Sentinel 依赖3、配置 Sentinel 控制台com.alibaba.cloud spring-cloud-starter-alibaba-sentinel
在Sentinel的官网下载最新的控制台jar包,然后在控制台目录下执行以下命令启动控制台:
java -jar sentinel-dashboard-1.8.2.jar
启动成功后,可以通过浏览器访问http://localhost:8080/#/dashboard/home查看控制台页面。
4、注册应用到 Sentinel 控制台在应用启动类上添加注解@EnableSentinel注解,然后在配置文件中配置应用名称和Sentinel控制台的地址:
spring: cloud: sentinel: transport: dashboard: localhost:8080 datasource: ds1: nacos: server-addr: localhost:8848 dataId: sentinel groupId: DEFAULT_GROUP data-type: json5、编写并测试 Sentinel 规则
Sentinel提供了多种限流降级策略,本文以流控规则为例进行演示。
在需要限流的方法上添加@SentinelResource注解,然后配置流控规则:
@GetMapping("/hello")@SentinelResource(value = "hello", blockHandler = "blockHandler")public String hello() { return "Hello, World!";}public String blockHandler(BlockException e) { return "请求过于频繁,请稍后重试!";}
在控制台的流控规则页面添加对应的规则,设置好阈值和统计窗口等参数,然后测试该接口。
三、进阶使用1、Sentinel Dashboard 使用详解Sentinel Dashboard是Sentinel的可视化监控平台,可以用于实时监控应用的流量、延迟、异常等指标,并对应用进行限流降级等操作。
Sentinel客户端首先向Sentinel Dashboard注册。Sentinel Dashboard返回一个token给客户端,客户端将使用该token连接Sentinel。
应用程序将使用token连接Sentinel,Sentinel客户端将返回连接成功信息。Sentinel客户端将实时推送metrics数据到Sentinel Dashboard,Sentinel Dashboard将监控和管理应用程序。
2、入门级规则配置详解(流控规则、降级规则、热点参数限流)Sentinel是一款开源的流量控制和降级框架,提供多种限流降级策略,包括流控规则、降级规则、热点参数限流等。
下面将逐一介绍这些规则。
(1)流控规则流控规则用于限制系统的流量,可以通过设置QPS流量控制和线程数流量控制等方式来控制系统的访问速度。
在Sentinel Dashboard中,可以通过以下步骤来配置和管理流控规则:
设置流控模式:可以选择直接拒绝、Warm Up、匀速排队等模式。设置阈值:可以设置QPS、线程数等阈值来限制流量。设置流控策略:可以选择按照调用关系、链路入口等策略来限制流量。查看已有规则:可以查看已经存在的流控规则,并进行管理和修改。(2)降级规则降级规则用于应对系统的异常情况,可以通过设置异常比例降级、异常数降级和慢调用降级等方式来降低系统的负载。
在Sentinel Dashboard中,可以通过以下步骤来配置和管理降级规则:
设置降级模式:可以选择异常比例、异常数和慢调用三种模式。设置阈值:可以设置异常比例、异常数和慢调用时间等阈值来触发降级。设置降级策略:可以选择返回特定的错误信息、调用备用服务等策略来处理降级情况。查看已有规则:可以查看已经存在的降级规则,并进行管理和修改。(3)热点参数限流热点参数限流用于对热点参数进行限流,可以有效避免某些参数被过多地请求。在Sentinel Dashboard中,可以通过以下步骤来配置和管理热点参数限流规则:
设置参数:可以选择需要进行限流的参数。设置阈值:可以设置QPS、线程数等阈值来限制热点参数的访问速度。设置限流策略:可以选择直接拒绝、匀速排队等策略来处理热点参数限流。查看已有规则:可以查看已经存在的热点参数限流规则,并进行管理和修改。在使用这些规则时,需要注意参数设置和阈值设置等细节,以避免规则的误判或限流不准确等问题。
通过Sentinel Dashboard的可视化界面,可以方便地进行规则的配置和管理,提高系统的稳定性和可靠性。
3、资源名与 URL 匹配规则Sentinel的资源名和URL匹配规则是限流降级策略的重要组成部分,可以根据业务需求定义合适的匹配规则。
资源名:可以是一个具体的业务方法、一个接口URL或者一个Dubbo服务等。URL 匹配规则:支持Ant匹配和正则匹配两种方式,可以根据具体需求进行选择。Dubbo服务:Sentinel支持对Dubbo服务进行限流降级操作,需要在Dubbo配置文件中添加Sentinel的拦截器配置。在定义资源名和URL匹配规则时,需要注意合理性和精确性,以避免出现误判或限流不准确等问题。上图展示了应用程序代码中定义资源名和 URL 匹配规则时的交互过程。
应用程序通过 Sentinel 客户端向 Sentinel 发送配置请求,Sentinel 返回配置结果。应用程序根据配置结果使用 Sentinel 进行限流降级。
在这个过程中,应用程序需要注意合理性和精确性,以避免出现误判或限流不准确等问题。
4、自定义 Sentinel 规则扩展开发上图是自定义规则扩展的关系图示。
自定义规则扩展包括数据源扩展、限流降级规则扩展、规则统计扩展等,可以使用多种语言进行开发。
在进行规则扩展时,需要注意代码质量和性能,以保证扩展的准确性和有效性。
以下是一个自定义规则类型的示例:
public class CustomFlowRule implements FlowRule { private String resourceName; private int count; private int interval; public CustomFlowRule(String resourceName, int count, int interval) { this.resourceName = resourceName; this.count = count; this.interval = interval; } @Override public String getResource() { return resourceName; } @Override public int getCount() { return count; } @Override public void setCount(int count) { this.count = count; } @Override public int getInterval() { return interval; } @Override public void setInterval(int interval) { this.interval = interval; }}
在这个示例中,我们自定义了一个 CustomFlowRule 类型,它包含了resourceName、count 和 interval三个属性。同时,我们实现了 FlowRule 接口,并实现了其中的各个方法,以满足 Sentinel 对规则类型的要求。
使用这个自定义规则类型时,我们需要在代码中添加相关的配置,例如:
Listrules = new ArrayList<>();CustomFlowRule rule = new CustomFlowRule("custom_resource", 10, 1);rules.add(rule);FlowRuleManager.loadRules(rules);
在这个示例中,我们通过 CustomFlowRule 类型创建了一个规则,它的资源名称为 custom_resource,限流阈值为 10,时间间隔为 1 秒。然后我们将这个规则添加到 Sentinel 的规则管理器中,从而让 Sentinel 能够自动识别和使用这个规则。
四、Spring Cloud Alibaba Sentinel 整合1、Sentinel Starter 简介Sentinel Starter是Spring Cloud Alibaba Sentinel的快速入门依赖,提供了自动化配置和默认规则等能力,可以简化Sentinel在Spring Cloud中的使用。
在使用Sentinel Starter时,只需要添加依赖并在配置文件中配置相应的参数,即可快速实现Sentinel的限流降级功能。
2、使用 Sentinel Starter 整合 Spring Cloud 微服务(1)在Spring Boot项目中添加以下依赖:(2)在application.yml配置文件中添加以下配置:com.alibaba.cloud spring-cloud-starter-alibaba-sentinel
spring: cloud: sentinel: transport: dashboard: localhost:8080 # Sentinel控制台地址 port: 8719 datasource: ds1: nacos: server-addr: localhost:8848 # Nacos配置中心地址 dataId: ${spring.application.name}-sentinel # Sentinel配置数据ID groupId: DEFAULT_GROUP data-type: json rule-type: flow,degrade # Sentinel规则类型(3)在代码中添加注解 @EnableSentinel ,开启 Sentinel 功能。
@SpringBootApplication@EnableDiscoveryClient@EnableFeignClients@EnableCircuitBreaker@EnableSentinel // 开启 Sentinel 功能public class ProductServiceApplication { public static void main(String[] args) { SpringApplication.run(ProductServiceApplication.class, args); }}(4)使用注解 @SentinelResource 对需要进行限流和降级的接口进行配置。
@RestControllerpublic class ProductController { @Autowired private ProductService productService; @GetMapping("/products/{id}") @SentinelResource(value = "products/{id}", blockHandlerClass = ProductControllerBlockHandler.class, blockHandler = "handleBlock") public Product getProduct(@PathVariable Long id) { return productService.getProduct(id); }}
其中,@SentinelResource 注解中的 value 参数为资源名称,blockHandlerClass 和 blockHandler 分别指定了限流或降级时的处理类和方法。
3、限流和降级策略在微服务中的应用场景在上图中,我们可以看到当服务请求量过大时,API Gateway 可以对服务进行限流,避免服务过载。同时,当某个服务出现故障或负载过高时,可以对该服务进行降级,避免影响其他服务的正常运行。
4、示例代码(1)添加 @SentinelResource 注解@RestControllerpublic class OrderController { @PostMapping("/createOrder") @SentinelResource(value = "createOrder", blockHandlerClass = OrderBlockHandler.class, blockHandler = "handleBlock") public Result createOrder(@RequestBody OrderRequest orderRequest) { // ... }}(2)添加 @Idempotent 注解
@RestControllerpublic class OrderController { @PostMapping("/createOrder") @SentinelResource(value = "createOrder", blockHandlerClass = OrderBlockHandler.class, blockHandler = "handleBlock") @Idempotent(key = "#orderRequest.userId + ":" + #orderRequest.productId") public Result createOrder(@RequestBody OrderRequest orderRequest) { // ... }}(3)实现幂等性校验逻辑
@Componentpublic class OrderService { @Autowired private RedisTemplate五、基于 Sentinel 的分布式锁实现1、场景描述redisTemplate; public boolean checkIdempotency(String key) { Boolean result = redisTemplate.opsForValue().setIfAbsent(key, "1"); if (result != null && result) { redisTemplate.expire(key, 60, TimeUnit.SECONDS); return true; } return false; }}
假设我们有一个高并发的秒杀系统,我们需要实现分布式锁来控制同一时间只能有一个用户参与秒杀活动。为了防止死锁和死节点,我们使用 Sentinel 的分布式锁实现来保证系统的可用性和稳定性。
2、实现步骤(1)添加 Sentinel 的依赖到项目中:(2)在配置文件中添加 Sentinel 的配置:com.alibaba.cloud spring-cloud-starter-alibaba-sentinel
spring: cloud: sentinel: transport: dashboard: localhost:8080 port: 8719(3)在代码中使用 Sentinel 的分布式锁实现:
@RestControllerpublic class SeckillController { @Autowired private DistributedLock distributedLock; @GetMapping("/seckill") public String seckill(@RequestParam("userId") Long userId, @RequestParam("itemId") Long itemId) { // 获取锁 String lockKey = "seckill:" + itemId; boolean locked = distributedLock.tryLock(lockKey); if (!locked) { return "Failed to get lock"; } try { // 执行秒杀逻辑 return "Success"; } finally { // 释放锁 distributedLock.unlock(lockKey); } }}
在 Sentinel 控制台中创建流控规则,限制流量:
在 Dashboard 中创建应用。在 Flow 中创建规则,设置限制流量的策略,例如:QPS 为 1000。示例代码:
@Componentpublic class DistributedLock { private static final String LOCK_PREFIX = "distributed-lock:"; @Autowired private CuratorFramework curatorFramework; public boolean tryLock(String key) { String lockPath = LOCK_PREFIX + key; InterProcessMutex lock = new InterProcessMutex(curatorFramework, lockPath); try { return lock.acquire(1, TimeUnit.SECONDS); } catch (Exception ex) { throw new RuntimeException("Failed to acquire lock", ex); } } public void unlock(String key) { String lockPath = LOCK_PREFIX + key; InterProcessMutex lock = new InterProcessMutex(curatorFramework, lockPath); try { lock.release(); } catch (Exception ex) { throw new RuntimeException("Failed to release lock", ex); } }}六、基于 Sentinel 的 A/B 测试实现1、场景描述
假设我们有一个电商网站,想要测试一个新的促销活动页面对用户购买行为的影响。我们希望将用户随机分为两个组,其中一个组将看到新的促销页面,另一个组将看到旧的促销页面。我们希望通过分析两组用户的购买转化率来确定新页面是否对提高购买转化率有帮助。
2、实现步骤根据用户的请求特征将请求分组,例如使用 @SentinelResource 的 blockHandlerClass 和 blockHandler 指定请求被限流或降级时的处理类和方法,处理类中可以根据请求的特征将请求分组。在新的促销页面和旧的促销页面中分别添加上报代码,将用户的购买行为和分组信息上报到 Sentinel。在 Sentinel 控制台中创建一个流控规则,将两个组的流量分别限制在一定的范围内,确保两组之间的请求量基本相等。分析两组用户的购买转化率,确定新页面是否对提高购买转化率有帮助。3、示例代码(1)根据请求特征将请求分组@RestControllerpublic class PromotionController { @GetMapping("/promotion") @SentinelResource(value = "promotion", blockHandlerClass = PromotionBlockHandler.class, blockHandler = "handle") public String promotion(@RequestParam("userId") Long userId) { // 根据用户 id 判断用户应该分到哪个组 int groupId = userId % 2; return "Group " + groupId; }}@Componentpublic class PromotionBlockHandler { public String handle(Long userId, BlockException ex) { // 处理限流或降级情况下的逻辑 int groupId = userId % 2; return "Blocked Group " + groupId; }}(2)将用户的购买行为和分组信息上报到 Sentinel
@RestControllerpublic class PromotionController { @GetMapping("/promotion") @SentinelResource(value = "promotion", blockHandlerClass = PromotionBlockHandler.class, blockHandler = "handle") public String promotion(@RequestParam("userId") Long userId, @RequestParam("itemId") Long itemId) { // 根据用户 id 判断用户应该分到哪个组 int groupId = userId % 2; // 上报用户购买行为和分组信息 String resourceName = "promotion_" + itemId; Entry entry = null; try { entry = SphU.entry(resourceName); Tracer.traceEntry("group_id=" + groupId); // 执行业务逻辑 return "Success"; } catch (BlockException ex) { // 处理限流或降级情况下的逻辑 return "Blocked Group " + groupId; } finally { if (entry != null) { entry.exit(); } } }}(3)在 Sentinel 控制台中创建流控规则
在 Sentinel 控制台中创建两个流控规则,将两个组的流量分别限制在一定的范围内,可以通过配置在限流规则中添加特定的参数,如 group_id=0 和 group_id=1,来将不同组的请求进行区分。
示例代码:
在 Sentinel 控制台中创建流控规则。打开 Sentinel 控制台,进入流控规则页面。点击 “新建” 按钮,填写如下信息:规则名称:promotion_flow_control;资源名:promotion_*;限流阈值:100;流控模式:QPS;应用名称:default;参数:group_id=0;点击 "提交" 按钮,创建一个限制组 0 的流控规则;点击 "新建" 按钮,填写如下信息:规则名称:promotion_flow_control;资源名:promotion_*;限流阈值:100;流控模式:QPS;应用名称:default;参数:group_id=1;
点击 “提交” 按钮,创建一个限制组 1 的流控规则;
注意事项:
在使用 Sentinel 进行 A/B 测试时,需要注意以下几个方面:
将请求进行随机分组,确保两个组之间的请求量基本相等。在 Sentinel 控制台中创建流控规则,限制每个组的流量,确保流量控制的精度和正确性。在上报数据时,需要将用户的分组信息和购买行为一并上报,以便后续的数据分析。在分析数据时,需要根据不同组的数据进行对比,确保分析结果的准确性。七、总结1、Sentinel 的局限和不足Sentinel虽然具有很多优点和优势,但也存在一些局限和不足。
例如,Sentinel对业务代码的侵入性较大,需要在代码中添加相关的注解或者拦截器等;同时,Sentinel的配置较为复杂,需要进行多种规则的配置和参数的调整等。
此外,Sentinel还存在一些性能问题和安全问题,需要注意规避和解决。
2、Sentinel 的发展前景尽管Sentinel存在一些不足和局限,但随着微服务和云原生技术的普及和发展,Sentinel在限流降级等方面的需求和重要性将会越来越大。
同时,Sentinel也在不断地进行优化和改进,例如在性能和安全方面进行了多项优化和加强,同时还提供了更加方便和高效的规则扩展开发能力,可以满足不同业务场景的需求。
因此,Sentinel在未来的发展中将会发挥越来越重要的作用,成为云原生技术生态圈中的一颗明珠。
本文转载自微信公众号「哪吒编程」,可以通过以下二维码关注。转载本文请联系哪吒编程公众号。
标签:
大家好,我是哪吒。Sentinel是阿里巴巴开源的一款轻量级流量控制、熔断降级工具,它提供了实时的流量控...
2023-04-06以下是卫宁健康在北京时间4月6日10:40分盘口异动快照:4月6日,卫宁健康盘中快速上涨,5分钟内涨幅超过2...
2023-04-06春回大地,奋进其时。一个个重点企业落地达茂热土,一项项重点项目赋能绿色发展……迎着春光,达茂旗零...
2023-04-064月5日,记者从湛江海事局获悉,清明前后,琼州海峡水上出行旅客增多,预计今年清明节当天,琼州海峡水...
2023-04-061、有!按照2000年11月发表的《中国的航天》白皮书,中国将在未来的十年中“开展以月球探测为主的深空探...
2023-04-06绿色经济。嘉鼎国际集团。分红派息
2023-04-06中新社武汉6月20日电(记者张芹)京广高铁京武段20日完成常态化按时速350公里高标运营,北京至武汉最短运...
2023-04-06一、前言:75W功耗的划时代游戏处理器2022年10月,酷睿i9-13900K震撼面世,虽然功耗高达300W之巨,但在...
2023-04-05据媒体报道,近日,日本北海道网走市发生了一起扇贝大面积死亡事件,目前已确认约1 8亿粒死亡。由于影...
2023-04-05北京市市场监管局部署开展能源计量审查工作
2023-04-051、剧情简介:《Lovescenenumber(暂译)》是由OTT平台和MBC推出的8集电视剧,讲述了20代、30代
2023-04-05开车稳不稳和驾龄没关系?这4个驾驶习惯,老司机一眼就能看出来,开车稳不稳和驾龄没关系?这4个驾驶习惯...
2023-04-05iPhone14系列已经成为头条新闻。自该系列推出以来,它们一直被誉为市场上最好的手机之一,但它们也面临...
2023-04-05霍福德妹妹:布朗不在&恩比德玩儿命打让那些小家伙享受吧,霍福德,76人队,美国篮球,杰伦·布朗,乔尔·恩...
2023-04-05忆亲人、祭先烈、踏青游——全国多地清朗过清明
2023-04-05湖南省侨联召开2023年党建暨党风廉政建设工作会议。红网时刻新闻4月4日讯(记者聂伊岑)今天下午,湖南...
2023-04-05一些沥青填料需要用火炬来加热材料。沥青是一种廉价且耐用的材料,通常用于住宅车道。沥青以石油为基础...
2023-04-051、在中国医学界,提起“黎氏三兄弟”,恐怕无人不知,无人不晓。2、他们就是大名鼎鼎的三个中国工程院...
2023-04-054月4日,三六零公告,公司实际控制人周鸿祎与胡欢经友好协商,已办理解除婚姻关系手续,并就股份分割等...
2023-04-04“就是因为小时候看美国大师赛,我真的爱上了这项运动,”在周日的新闻发布会上,29岁的斯皮思回忆道,...
2023-04-04西南旅游小城想做大“竹经济”,“以竹代塑”带动产业链
2023-04-04自租赁补贴政策实施以来,黔东南州抢抓政策机遇,以解决城镇中低收入住房困难群体住房问题为出发点,全...
2023-04-04据权威信源:中国女留学生在泰国遭绑架弃尸,3名嫌犯于4月3日在湖北境内某高速公路上被抓获。据泰媒消息...
2023-04-04名记吐槽评奖新规太蠢:65场设置有漏洞饼皇替詹皇进最佳阵容?,库里,詹皇进,霍乐迪,利拉德,评奖新规,凯...
2023-04-04清明节将至厦金航线迎台胞返乡祭祖高峰
2023-04-04“术后我立马就能下地走路啦,医生技术真是强!”今年64岁的周大伯(化名)术后自己走出手术室,直言道...
2023-04-04AcleanenergyprojecttakesshapeattheWuzhengdaoEconomicZoneinZunyi LUO
2023-04-04南方财经4月4日电,苏泊尔近期接受机构调研时表示,目前公司内销线上渠道仍然保持增长态势,尤其是在抖...
2023-04-042023国网信息通信产业集团有限公司毕业生招聘公告一、集团简介国网信息通信产业集团有限公司(简称“国网...
2023-04-04明天就是清明节祭扫、踏青、赏花、登高你是不是已经买好车票准备乘坐高铁短途旅行了出发前一定要筛查行...
2023-04-04证券时报记者吴志上映近2个月的电影《隐入尘烟》,最近的票房走势堪称影史奇迹。作为一部乡村主题的小众...
2023-04-043月15日至3月25日,内蒙古牛肉、羊肉、鸡肉、鸡蛋、豆腐、水产品价格上升,猪肉、蔬菜类价格下降,成品粮...
2023-04-04【本文来自《海南莫斯科动力大学最新消息:锚定2025年9月开学招生》评论区,标题为小编添加】最可惜的就...
2023-04-04南昌大力培育未来产业---经济日报南昌4月3日讯(记者赖永峰、刘兴)江西省科技厅日前出台《科技兴赣六大...
2023-04-04协鑫科技(03800)发布公告,兹提述该公司日期为2021年11月18日的公告,内
2023-04-04▶2023年北京城乡居民养老保险缴费补贴标准参保人在参保缴费时,可按不同缴费标准享受相应的缴费补贴。...
2023-04-044月3日北向资金增持6 3万股建滔积层板(01888 HK)。近5个交易日中,获南向资金增持的有3天,累计净增...
2023-04-04前言:S13赛季的比赛已经正式开始了,相信绝大多数的玩家都关注了最近一段时间的春季赛,lpl赛区的对抗...
2023-04-03春意渐浓乘着全国两会的浩荡东风全国各地实现高水平科技自立自强的脚步更加轻快时不我待新项目新产品新...
2023-04-03CDPR近期在社交媒体上宣布,公司将为员工提供月经假。
2023-04-034月3日复星国际发布公告称,公司于2023年4月3日在香港交易所回购110 00万股,耗资627 96万港币,根据...
2023-04-03『森林草原防灭火』孙吴县卧牛河乡:“三个到位”打好清明节森防战役
2023-04-03为深入学习贯彻党的二十大精神,提高辖区居民健康安全知识能力,提高居民紧急自救能力,4月3日下午,客...
2023-04-03中国教育报-中国教育新闻网讯(记者史望颖通讯员马亭亭)近日,宁波市中小学生成长指导中心市直属工作站...
2023-04-03虽然在Steam获得了特别好评,但重制版的《生化危机4》(ResidentEvil4;RE:4)还是传来了令人遗憾的场...
2023-04-03交通银行卡通常是指交通银行的储蓄卡,而不是说信用卡,储蓄卡在使用的过程中,最常见的就是取款或者是...
2023-04-03全校师生温暖关爱残疾少年他的班级教室始终都在一楼“每个人都有自己的痛苦和难过,我只是比较特殊。”...
2023-04-03近日,对于体育明星张继科涉赌债纠纷等传闻,引发网友关注。对于此事,张继科工作室回应称,张继科无任...
2023-04-03(记者张朔)游戏改编电影《龙与地下城:侠盗荣耀》(Dungeons&Dragons:HonorAmongThieves)首映开门红,登...
2023-04-031、红烧骆驼蹄2、主料:水骆驼蹄700g主料:南瓜、鱼糜、大白菜调料:鲜味酱油、醋汁、味精、高汤、鸡汤...
2023-04-03豪森股份(688529)04月03日在投资者关系平台上答复了投资者关心的问题。
2023-04-03近期,随着国家数据局的组建,数据安全也成为资本市场关注的热点。此前,工业和信息化部等十六部门发布...
2023-04-032023年清明节临近,北京迎来清明祭扫服务集中接待高峰。
2023-04-03今日天气实况
2023-04-03预计,4月3日08时至4日08时,湖北东部和南部、湖南北部、江西北部、安徽、河南东部、山东南部及陕西中部...
2023-04-031、成语含义:做本行的事,成绩十分显著。2、“本色”、“当行”,都是内行的意思。3、“当”,是“在”...
2023-04-03据白俄罗斯通讯社报道,白俄罗斯总统卢卡申科3月31日在向白俄罗斯人民和国民会议发表年度讲话时表示,白...
2023-04-031、《校考突击:创意速写通关》注重理论与技巧两大部分的训练与培养。2、理论的重点落在对设计基础的理...
2023-04-01旅客在铁路上海虹桥站等待验票上车(资料照片)。 殷立勤 摄中新网上海4月1日电(记者殷立勤)3月31日从...
2023-04-011、get的过去式和过去分词got是get的过去式和过去分词。一般现在时用get,过去时用got。1、getit:了解...
2023-04-011、公交线路:k1路→103路。2、全程约6 4公里从呼和浩特东站步行约240米,到达火车东客站2、乘坐k1路,经过
2023-04-011、在山东科学技术出版社出版的高一化学必修一中,讲到铝和其金属材料一课中,说Al和NaOH和水反应生成Na[Al(O
2023-04-011、《我的青春我做主》是2009年7月1日希望出版社出版的图书。2、作者是陈励子。本文到此结束,希望对大...
2023-04-011、减肥正确的饮食方法就是少吃多餐,或者是规律三餐,每一餐的饮食结构以及用餐时间都要有规律。2、2、...
2023-03-31一、铜川最新疫情消息-数据概览:1、新增本土:0;2、新增无症状:0;3、现有确诊:41;4、累计确诊:68...
2023-03-31收到礼物计入的科目,收入,不是礼物的价值多少。收到,就收到你的礼物收回,那个人收到了。就不收,收...
2023-03-31◆岗位详情1、科技领域的深度研究、数据分析等2、潜在用户及行业专家访谈3、辅助进行dealsourcing;◆任...
2023-03-31同时,奥园已与绿城置业发展集团、中经城投建设集团签署品牌代建协议,以全力盘活重庆、成都、西安、厦...
2023-03-31格隆汇3月31日丨康辰药业(603590 SH)公布,KC1036片(简称“KC1036”)是公司自主研发的化学药品1类
2023-03-31年报难产后,祥生的自救之路也被堵上。近日,华润万象生活公告称,终止此前宣布的收购浙江祥生物业服务...
2023-03-31据央视新闻,当地时间3月31日,白俄罗斯总统卢卡申科在发表国情咨文时表示,维护国家主权与独立是咨文的...
2023-03-31海量精选内容,公众『参一江湖』阅读原文或点击菜单获取报告下载查看。2023年被许多不确定因素所裹挟。...
2023-03-31不同地区对于住房公积金缴存基数的规定是有所差别的,一般情况下职工的住房公积金缴存基数为职工上一年...
2023-03-313月27日至28日,罗甸县党政代表团赴广东省广州市开展招商引资工作,并在广州市白云区举行贵州省罗甸县招...
2023-03-31近日,江苏南通。一男子结婚三年内,与妻子孕育一儿一女,后来男子发现儿女竟都非亲生。原来,婚后男子...
2023-03-31(聚焦博鳌)博鳌热议发展与安全:携手做维护世界安全的行动派中新社博鳌3月31日电题:博鳌热议发展与安全...
2023-03-31来自《米兰体育报》的最新消息,阿根廷老将迪玛利亚与尤文图斯的续约事宜进行非常顺利,双方均有意续约...
2023-03-313月30日,辉隆股份(002556)融资买入459 36万元,融资偿还325 54万元,融资净买入133 82万元,融资...
2023-03-313月28日,由省文化和旅游厅主办、省文联协办、甘肃天庆博物馆承办的“寸笺之道”名人信札书法艺术展,在...
2023-03-31江苏宿迁:花海醉游人,赏花,三台山,宿迁市,江苏省,大运河,森林公园,中国文物,森林覆盖率,中国世界遗产
2023-03-31你能认出他们吗?阿森纳不败赛季成员聚餐,亨利维埃拉皮雷均出镜,英超,阿森纳,帕洛尔,足球竞赛,英国足球...
2023-03-313月30日北向资金减持18 0万股长远锂科。近5个交易日中,获北向资金减持的有5天,累计净减持133 18万股...
2023-03-311、病情分析:孕妇终止妊娠和流产的方法有药物流产、人工流产和引产。2、根据胎儿的孕周,确定终止妊娠...
2023-03-311、树林巨魔是单机游戏《魔兽争霸3》中野外生物之一。2、该生物是巨魔一族的一个分支,体表是树叶一样的...
2023-03-31在日常生活中,家中很多设施长时间使用就可能出现故障,比如坐便器下水慢,那么坐便器下水慢没有吸力怎...
2023-03-3036氪获悉,汽车电子芯片整体解决方案提供商芯擎科技举办“龍鷹一号”量产发布会,正式宣布中国首款7纳米...
2023-03-30据环球网报道,美国东部时间7日晚8时,拜登和哈里斯在特拉华州威尔明顿向全国发表讲话。哈里斯以当选副...
2023-03-302001年,大宇推出《仙剑奇侠传》的IP衍生游戏《仙剑客栈》,在当时获得了不少系列粉丝的支持。今天,《...
2023-03-30出行好消息!日前,现代快报记者从苏州市交通执法支队了解到,“苏锡公交1号”已于3月27日提速,单趟次...
2023-03-30安庆市大观区:瞄准现代服务业新高地全力以赴打造“菱湖经济圈”
2023-03-30截至2023年3月30日收盘,金溢科技(002869)报收于25 47元,下跌0 2%,换手率1 79%,成交量2 71万手,成交额6956 16万元。
2023-03-30在面对电气化时代的到来,以及年轻消费者对于颜值与科技配置的不断需求,轩逸会做出那些改变呢?还能稳...
2023-03-301、我相信歌手:杨培安专辑:午夜两点半的我欢迎您杨培安-我相信(2006啤酒广告曲)词:刘虞瑞曲:陈国华唱:...
2023-03-30一、黑龙江省哈尔滨市天气预报1、依兰县气象台3月30日10时26分继续发布大风蓝色预警信号。2、预计未来24...
2023-03-30秋风扫落叶什么意思,秋风扫落叶这个很多人还不知道,现在让我们一起来看看吧!1、秋风扫落叶,是给人一...
2023-03-30黄河新闻网讯(记者周昱丽)为进一步整顿和规范旅游市场价格秩序,打击旅游及相关行业价格违法行为,山...
2023-03-303月29日,第八批国家组织药品集中采购在海南省陵水县产生拟中选结果,公示结束后将发布正式中选结果。此...
2023-03-30人民网杭州3月29日电(记者郭扬)今天上午,记者从2023中国足协超级杯赛事新闻发布会上获悉,2023中国足...
2023-03-301、夏季连衣裙,选择注意不要再选择运动风格与乡村风格的连衣裙了,如果你喜欢它们,你应该在初夏就购置...
2023-03-30期待大家在没有准备的状态下也能选购一个最特别的礼物。大家是否都在为送女朋友什么过生日礼物无从下手...
2023-03-30Copyright © 2015-2022 欧洲水产网版权所有 备案号:沪ICP备2022005074号-23 联系邮箱: 58 55 97 3@qq.com