消息中间件及SpringBoot部署阿里大于短信微服务

消息中间件可以实现web层和service层之间的松耦合,因为web层通过dubbo协议调用service层服务需要在项目一启动的时候就能从注册中心找到service层的服务,如果service没启动,注册中心也就没有注册此服务,那么web层就会报错.但是使用消息中间件后,service没有启动web层也不会报错,因为消息中间件起到了一个缓存的作用,将web层的消息先存储了起来,等service层启动后会从中间件中获取消息然后执行

MQ message queue 消息队列

JMS java message service消息的两种模式 点对点(PTP point to point )模式和发布订阅模式(pub/sub) publish /subscribe

web层调用service层服务时,有些服务必须是同步来完成的,用户时不能等的否则会影响到用户体验,而有些是可以稍微等一下的,那就可以采取异步的方式存储到消息队列中

MOM message oriented middleware 面向消息中间件,它的总体思想就是作为消息发送器和消息接收器之间的一个消息中介,这种中介提供了一个全新水平的松耦合

activeMQ 是一个实现了JMS规范的系统间远程通信的消息代理,是一个软件,下载并开启这个软件就可以使用,我们安装的是它的服务器端,在使用java程序连接它时需要导入activeMQ的客户端驱动

enqueued 入队的 dequeued出对的 pending未出队的 8161是activeMQ的默认端口 里面的queue就是点对点模式 topic就是发布订阅模式

system.in.read()等待键盘输入,未接受到键盘输入之前一直在等待

在使用消息中间件生成solr索引的时候,发送的点对点的消息,因为solr如果部署的是集群的,它会自动的完成内容的分发,不用我们自己去一个一个的服务器去发送.
而生成商品详情页面的时候,发送的发布订阅形式的消息,因为详情页面后期也是一个集群,必须保证每台服务器上都有相同的资源

pageService改造成消息中间件的消费者后,原来配置的dubbo相关的内容都不需要了,因为它原来只被manageWeb通过dubbo同步调用,现在改成通过消息中间件异步调用,已经替换了原来的方式

springBoot是对spring框架的封装 SpringCloud功能类似于dubbo,组件更丰富

spring是解除系统层级之间耦合关系的容器技术,是一个框架
springboot帮助开发者更容易的创建基于spring框架的应用程序和服务的框架
让传统spring项目中大量的配置文件(约定大于配置,都按照约定帮我们配置好了,不用我们再配置)和大量的jar包(直接导一个springboot的jar包就包含了我们导入一个web项目所需的jar包,避免了大量jar包的导入及随之而来的jar包冲突问题)成为过去

springboot的特性
1.提供了更快的入门体验
2.开箱即用,无需配置文件(它有默认的配置,如果需要自定义配置信息,可以修改默认的配置)
3.提供一些大型项目常见的非功能性特性(天生集成了tomcat插件,热部署,健康检查)
4.springboot只是提供了一种快速使用spring的方式,并非对spring功能的增强

springboot的项目打出来都是jar包,直接创建一个普通的java项目就可以,它内部自带了tomcat

springboot的简单入门
1.首先创建一个项目,pom文件中 在标签内导入Springboot的起步依赖 spring-boot-start-parent
2.创建的如果是一个web项目,那么在依赖标签内导入web项目的启动器
spring-boot-start-web
3.直接创建一个controller包 里面创建一个HelloController
里面就是普通的写法
@RestController
public class HelloController {
@RequestMapping(“hello”)
public String sayHello() {
return “hello”;
}
4.创建一个项目引导类,并在类上进行注解,书写main方法,并执行main方法
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
5.内置的tomcat服务器默认端口是8080 直接访问对应的路径就可以

如果想要更改Springboot的一些默认配置信息,我们可以进行自定义,在resource包下创建一个application.properties的配置文件(名字不能乱改,就得叫这个)
然后修改端口的话,可以加上 server.port=8888 再次启动端口就改成8888了
如果想加一个自定义的属性如name=zhangsan,在controller中可以使用
@Value(${name}) private String name; 来进行注入 也可以使用spring内置的Environment 对象来获取属性@Autowired private Environment environment; System.out.print(environment.getProperties(“name”)).

springboot的热部署,因为项目的频繁修改都需要再次启动项目浪费大量的时间,配置了热部署之后项目的代码或配置文件发生变化之后,项目会自动重启,非常方便
idea的配置步骤:
1.在依赖中导入 spring-boot-devtools
2.开启maven插件 ,在build 里配置插件 spring-boot-maven-plugin
标签内设置TRUE
3.在settings-compile-设置自动编译打对勾
4.上面的操作栏 help-findAction-输入registry-将项目运行时自动编译这一个选项打对勾
5.重启项目就可以了

springboot里面有一个内嵌的activeMQ,默认情况它是使用这个内嵌的,但是我们一般不使用这个,我们使用自己activeMQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值