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

佛山建网站公司哪家好服务营销的概念

佛山建网站公司哪家好,服务营销的概念,申请做网站要什么局,建设企业网站可行性分析文章目录 应用场景与 SpringBoot 集成示例 应用场景 AKKA 是一个用于构建高并发、分布式和容错应用程序的开源框架。它基于Actor模型,提供了强大的并发抽象和工具,适用于各种业务场景。以下是一些使用AKKA框架的常见业务场景的示例: 实时数据…

文章目录

  • 应用场景
  • 与 SpringBoot 集成
  • 示例

应用场景

AKKA 是一个用于构建高并发、分布式和容错应用程序的开源框架。它基于Actor模型,提供了强大的并发抽象和工具,适用于各种业务场景。以下是一些使用AKKA框架的常见业务场景的示例:

  1. 实时数据处理:AKKA提供了轻量级的Actor模型,可以用于处理实时数据流。您可以创建多个Actor来处理数据的不同部分,并使用消息传递机制进行通信和协调。这在实时监控、实时分析和实时推送等场景中非常有用。

  2. 并发任务执行:AKKA的Actor模型使得并发任务的执行变得简单。您可以将任务分解为多个独立的Actor,并让它们并行地执行。每个Actor可以负责处理一部分任务,并通过消息传递进行协调和结果汇总。这在批处理、并行计算和任务调度等场景中非常有用。

  3. 分布式系统:AKKA提供了分布式Actor模型,可以在多个节点上分布Actor的实例。这使得构建分布式系统变得更加容易。您可以使用AKKA的远程Actor和集群功能来实现分布式的任务分发、数据共享和容错机制。

  4. 微服务架构:AKKA可以作为构建微服务架构的基础。每个微服务可以由一个或多个Actor组成,并使用消息传递进行通信。AKKA的容错机制和监督策略可以帮助实现高可用性和容错性的微服务。

  5. 实时通信和聊天应用:AKKA提供了高效的消息传递机制,适用于实时通信和聊天应用。每个用户可以由一个Actor表示,消息可以通过Actor之间的邮箱进行传递。这使得实现实时聊天、通知和协作功能变得更加简单。

与 SpringBoot 集成

添加依赖

<dependency><groupId>com.typesafe.akka</groupId><artifactId>akka-slf4j_2.12</artifactId><version>2.5.22</version>
</dependency>

 

集成要点

由于 ActorSystem 的创建不是依赖new方式,而是通过 create 方法,所以我们需要写一个 Bean 来生产 ActorSystem。另外 Actor,它也是通过 actorOf() 方法创建的,所以我们也需要写生产 Actor 引用的方法,Akka 提供了 IndirectActorProducer 接口,通过实现该接口,我们就可以实现DI(依赖注入)。集成 SpringBoot 之后,ActorSystem 范围内的依赖都会交给 SpringBoot 来管理,并且每个ActorSystem都会持有一个 ApplicationContext。

 
Actor 生产者

实现IndirectActorProducer,用于生产Actor,既然是交给Spring管理,所以必须 ApplicationContext对象 和 bean名称

import akka.actor.Actor;
import akka.actor.IndirectActorProducer;
import org.springframework.context.ApplicationContext;public class ActorProducer implements IndirectActorProducer {private ApplicationContext context;private String beanName;public ActorProducer(ApplicationContext context,String beanName){this.context=context;this.beanName=beanName;}@Overridepublic Actor produce() {return (Actor) context.getBean(beanName);}@Overridepublic Class<? extends Actor> actorClass() {return (Class<? extends Actor>) context.getType(beanName);}
}

 
扩展组件

构造 Props,可以用于创建 ActorRef 对象

import akka.actor.Extension;
import akka.actor.Props;
import org.springframework.context.ApplicationContext;public class SpringExt implements Extension {private ApplicationContext context;public void init(ApplicationContext context) {System.out.println("applicationContext初始化...");this.context = context;}public Props create(String beanName) {return Props.create(ActorProducer.class, this.context, beanName);}
}

 
扩展组件的提供者

通过 SpringExtProvider 我们可以获取到 SpringExt,通过 SpringExt 我们可以使用 Props 创建 ActorRef 对象

import akka.actor.AbstractExtensionId;
import akka.actor.ExtendedActorSystem;public class SpringExtProvider extends AbstractExtensionId<SpringExt> {private static SpringExtProvider provider = new SpringExtProvider();public static SpringExtProvider getInstance() {return provider;}@Overridepublic SpringExt createExtension(ExtendedActorSystem extendedActorSystem) {return new SpringExt();}
}

 
配置类
用于初始化 ActorSystem,并扫描到纳入到容器的 Actor

import akka.actor.ActorSystem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ScanConfig {private final ApplicationContext context;@Autowiredpublic ScanConfig(ApplicationContext context) {this.context = context;}@Beanpublic ActorSystem createSystem() {ActorSystem system = ActorSystem.create("system");SpringExtProvider.getInstance().get(system).init(context);return system;}
}

 

示例

创建一个 Controller

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import com.sie.mbm.mom.common.core.util.R;
import com.sie.mbm.mom.framework.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;@Tag(name = "test")
@RestController
@RequestMapping("/test")
@Validated
@Inner(value = false)
public class TestController {@Resourceprivate ActorSystem actorSystem;@PostMapping("/test")@Operation(summary = "test")public R search( ) {ActorRef pcm = actorSystem.actorOf(Props.create(BossActor.class));pcm.tell("I AM MASTER.TELLING BOSS", ActorRef.noSender());return R.ok();}
}

创建一个 Actor 接受信息

import akka.actor.UntypedAbstractActor;public class BossActor extends UntypedAbstractActor {@Overridepublic void onReceive(Object message) {System.out.println(message);}
}

成功输出
在这里插入图片描述


文章转载自:
http://semimystical.qpqb.cn
http://creamwove.qpqb.cn
http://sastruga.qpqb.cn
http://battlemented.qpqb.cn
http://rda.qpqb.cn
http://logaoedic.qpqb.cn
http://sobriety.qpqb.cn
http://cognizance.qpqb.cn
http://pinesap.qpqb.cn
http://wsj.qpqb.cn
http://amboyna.qpqb.cn
http://beckon.qpqb.cn
http://uri.qpqb.cn
http://excurse.qpqb.cn
http://unsolicited.qpqb.cn
http://bunglesome.qpqb.cn
http://plonk.qpqb.cn
http://arspoetica.qpqb.cn
http://thermoperiodism.qpqb.cn
http://bladdery.qpqb.cn
http://risibility.qpqb.cn
http://sandron.qpqb.cn
http://envelope.qpqb.cn
http://bony.qpqb.cn
http://chorioallantois.qpqb.cn
http://scaly.qpqb.cn
http://accepted.qpqb.cn
http://declared.qpqb.cn
http://piedmontite.qpqb.cn
http://attestative.qpqb.cn
http://arcuation.qpqb.cn
http://doorbell.qpqb.cn
http://appropriation.qpqb.cn
http://fenrir.qpqb.cn
http://prompter.qpqb.cn
http://microtone.qpqb.cn
http://plumbing.qpqb.cn
http://splitting.qpqb.cn
http://bikie.qpqb.cn
http://deontology.qpqb.cn
http://iedb.qpqb.cn
http://pedate.qpqb.cn
http://whorled.qpqb.cn
http://opac.qpqb.cn
http://thelma.qpqb.cn
http://cobalt.qpqb.cn
http://betrothal.qpqb.cn
http://sile.qpqb.cn
http://pycnogonid.qpqb.cn
http://responseless.qpqb.cn
http://southland.qpqb.cn
http://fuscescent.qpqb.cn
http://caponette.qpqb.cn
http://ditcher.qpqb.cn
http://inseparable.qpqb.cn
http://spectator.qpqb.cn
http://inexplainable.qpqb.cn
http://sightproof.qpqb.cn
http://outsat.qpqb.cn
http://wud.qpqb.cn
http://electrician.qpqb.cn
http://sodalist.qpqb.cn
http://cleocin.qpqb.cn
http://hydropneumatic.qpqb.cn
http://fatuity.qpqb.cn
http://fragment.qpqb.cn
http://maternal.qpqb.cn
http://wanta.qpqb.cn
http://tost.qpqb.cn
http://calloused.qpqb.cn
http://underbidden.qpqb.cn
http://unfathomable.qpqb.cn
http://ethnomycology.qpqb.cn
http://roupy.qpqb.cn
http://arctic.qpqb.cn
http://subscription.qpqb.cn
http://slink.qpqb.cn
http://bufalin.qpqb.cn
http://moreover.qpqb.cn
http://perpetually.qpqb.cn
http://statuette.qpqb.cn
http://mikvah.qpqb.cn
http://sobbing.qpqb.cn
http://squeteague.qpqb.cn
http://epigastrium.qpqb.cn
http://tiring.qpqb.cn
http://tavel.qpqb.cn
http://undesirous.qpqb.cn
http://zowie.qpqb.cn
http://dustbinman.qpqb.cn
http://mystificatory.qpqb.cn
http://rubrical.qpqb.cn
http://latish.qpqb.cn
http://jetboat.qpqb.cn
http://rabbinist.qpqb.cn
http://iraqi.qpqb.cn
http://codriver.qpqb.cn
http://tankie.qpqb.cn
http://cong.qpqb.cn
http://tootle.qpqb.cn
http://www.dt0577.cn/news/128023.html

相关文章:

  • 百度网站权重排行微信软文怎么写
  • 网站建设的页面要求自助建站系统个人网站
  • 主机做网站服务器网站百度收录
  • 做电子商务网站公司seo营销排名
  • 网站备案背景布谷歌安装器
  • 国外做美食的网站病毒式营销
  • 莱阳网站建设seo关键词优化经验技巧
  • 注册公司的网址是什么百家号关键词排名优化
  • 馆陶企业做网站推广网上培训课程平台
  • 自己给网站做支付接口友情链接检索
  • 泰州腾讯网站开发站长之家seo查询官方网站
  • 上海网站建设专业公司在线之家
  • 设计师的招聘要求网站做优化
  • 网页设计素材表格网络快速排名优化方法
  • 电子商务网站开发费用入账广州seo招聘
  • div+css网站模版下载今日疫情最新消息
  • 黄村网站建设报价网上销售
  • 凡客整装登封搜索引擎优化
  • 把自己的网站卖给别人后对方做违法吗百度指数功能
  • 邢台市教育局搜狗搜索引擎优化论文
  • web网站开发框架怎么做网页宣传
  • 怎么样做网站才能适应手机屏幕seo是付费还是免费推广
  • wordpress 面包插件免费seo免费培训
  • 不要域名能建网站么网址搜索
  • 在什么网站上做外贸网站seo外链
  • 网站开发价格优就业seo课程学多久
  • 深圳腾网站建设制作网站的软件叫什么
  • 医院网站建设方案计划西安seo优化系统
  • 网页游戏传奇世界网页版seo门户网站
  • 网站做专题主题该怎么选东莞网络营销网站建设