Centos7 生产环境安装 RabbitMQ (单机)
相关站点
系统环境
1 | CentOS Linux release 7.6.1810 (Core) |
更改系统的最大打开文件描述符数
相关站点
系统环境
1 | CentOS Linux release 7.6.1810 (Core) |
更改系统的最大打开文件描述符数
微服务理论的提出者马丁。福勒(Martin Fowler) 在其博客中详细描述了什么是微服务。微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题 / 提供落地对应服务的一个服务应用;狭意的看,可以看作 Eclipse 里面的一个个微服务工程 / 或者 Module。
微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分为一组小服务,每个服务运行在自己的独立进程中,服务间通信采用轻量级通信机制 (通常是基于 HTTP 的 RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应该尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储技术。
问题描述:使用
@RequestBody
注解时,抛出异常信息 “Required request body is missing”
采用 SSM 框架,前端将参数传递给后端,SpringMVC 可以通过注解 @RequestBody
将传递参数绑定在 Controller 的方法参数中。此时必须注意,当请求方法声明为 GET 和 DELETE 的时候,HTTP 请求规范里规定是不会有 RequestBody 的,只有请求方法声明为 POST 和 PUT 的时候才有,因此 @RequestBody
不适用于 GET 与 DELETE 方法。还有如果请求方法声明为 GET、DELETE,那么 SpringMVC 可以直接将传递参数绑定在方法的参数中,如果请求方法声明为 POST、PUT,则必须使用注解 @RequestBody
修饰 Controller 中的方法参数,否则无法获取前端传递过来的参数值。正确的使用方法如下:
Docker-Compose 单机安装 RabbitMQ
RabbitMQ 的数据库名称规则是 NODENAME@hostname
,由于 Docker 每次从 Docker Image 启动容器的时候会自动生成 hostname,这样一来之前保存在主机上的数据库就会没用了,包括之前创建的用户也会没有了。所以在创建容器的时候必须指定 --hostname=rabbitmq
,这样 Docker 环境启动后 RabbitMQ 就会一直读取固定目录中的数据了。docker-compose.yml 的文件内容如下,其中 RABBITMQ_DEFAULT_USER
为用户名,RABBITMQ_DEFAULT_PASS
为用户密码,5672 为 RabbitMQ 的服务端口,15672 为 RabbitMQ 的 Web 控制台的端口。RabbitMQ 的 Web 控制台默认是未启用的,若需启用 Web 控制台的功能,可以挂载对应的配置文件到容器内的 /etc/rabbitmq/enabled_plugins
,而配置文件的内容为 RabbitMQ 启用的插件列表。
1 | rabbitmq: |
调用不带参数的 openSession()
方法时,创建的 SqlSession
对象具有如下特性:
值得一提的是,openSession()
方法的 ExecutorType
类型的参数是枚举类型,取值如下:
SIMPLE
:这个执行器类型不做特殊的事情(默认执行器),它会为每个 SQL 语句的执行创建一个新的预处理语句。REUSE
:这个执行器类型会复用预处理语句。BATCH
:这个执行器会批量执行所有更新语句。SpringBoot-2.1.0+ 整合 Apache Dubbo-2.7.0,启动应用后提示需要添加 SpringBoot 配置 “spring.main.allow-bean-definition-overriding=true”
异常日志:
1 | *************************** |
异常日志:
1 | Caused by: org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /dubbo/xxx.xxx.service.UserService/providers/dubbo .... |
异常分析:ZooKeeper 的版本与 Curator 的版本不兼容所导致,Curator 官网说明如下:
1 | 第一种情况: |