插件
插件名称 | 作用 | 快捷键 |
---|---|---|
GenerateAllSetter | 生成带默认值的所有set方法的对象 | alt+enter |
p3c | 代码风格检查插件 | - |
Lombok | 生成get和set方法以及构造参数 | @Data |
常用快捷键
去掉多余引用 Ctrl + Alt + O
尝试修复问题 Alt+Enter
fsh的博客
Nacos 是一个微服务管理平台,支持几乎所有主流类型的“服务”的发现、配置和管理。
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
1 | <!-- Apache Dubbo Begin --> |
1 | dubbo: |
1 | public interface DemoService { |
实现:
1 | @Service(version = "${demo.service.version}") |
消费
1 | @Reference(version = "1.0.0") |
接口和实现可以拆分成不同的模块,实现解耦
Spring Security 是一个spring的安全框架
是一种授权协议,他的主要作用是为了提供认证和授权的标准
客户端访问资源服务器的令牌,代表用户的授权
刷新令牌,是用来实现安全令牌的时效机制,使通过安全令牌访问的资源更加安全
在云服务中一般有认证服务器和资源服务器,通常认证服务器用来获取用户的登录和授权信息,而资源服务器则用来校验具体的权限信息
@Configuration
@EnableAuthorizationServer
认证服务器继承AuthorizationServerConfigurerAdapter
认证服务器通过客户端的id,密钥,客户端授权类型取得客户端授权范围
1 | import org.springframework.beans.factory.annotation.Autowired; |
创建一个类继承 WebSecurityConfigurerAdapter 并添加相关注解(@Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true)
)
1 | /** |
资源服务器则用来校验具体的权限信息
@Configuration
@EnableResourceServer
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true)
资源服务器继承ResourceServerConfigurerAdapter
资源服务器通声明自身资源ID和需要的角色权限
1 | @Configuration |
1 | security: |
Druid是一个JDBC组件库,包括数据库连接池、SQL Parser等组件。DruidDataSource是最好的数据库连接池。
1 | <dependency> |
数据库连接池
进行数据库操作时数据库连接会不断的创建和销毁,会消耗大量资源还有销毁失败导致内存泄漏的风险,而数据库链接池则是能管理这些链接,需要时可以调用,不用时可以放回去从而避免了一次建立数据库连接和断开的操作时间消耗。
1 | server: |
1 | <!--项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app--> |
1 | <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径--> |
1 | <parent> |
1 | <!-- 管理子项目的版本号除非子项目版本有特别声明--> |
1 | <!--该元素描述了项目相关的所有依赖,若在父项目中则会直接被子项目继承--> |
REST即表述性状态传递(英文:Representational State Transfer,简称REST)一种软件架构风格。
表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。
QPS,Query Per Second,也就就是每秒有多少请求
Single Sign On,单点登录
ECS 云服务器(Elastic Compute Service, ECS)
处理能力可弹性伸缩的计算服务器
云数据库(Relational Database Service,简称RDS)
稳定可靠、可弹性伸缩的在线数据库服务
HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。
请求报文格格式:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
应答报文格式如下:状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
为了利用多核心的计算机,我们需要并发执行,但是多线程的方式会引入很多问题和增加调试难度。
actor按次序处理消息,比如你发送三个消息给一个actor,它们不会被并发处理。如果你想让这三个消息得到并发处理,你需要创建3个actor,然后分别发送给它们。
接受到的异步消息存在于actor内部的一个队列中,我们可以把它形象化的叫做邮箱(mailbox)。
redis 是一个持久化的键值对存储器,其中主键是用来表示数据块所在位置,而值在java则是通过序列化存储一切对象。redis和数据库类似可通过select命令切换数据库,并且通过快照来持久数据库。通常作用在数据缓存,消息队列,分布式集群Session分离处理等。
redis有5种数据类型结构分别是字符型,散列型,列表,集合,有序集合。
通常意义上的键值对,也是redis主要缓存数据的格式,可以通过命令对值进行长度获取,截断等操作
比字符串结构多了个中间层:字段,字段类比hash的Key可以有多个字段
可以存储数组形式的值
用于存储唯一值,可以用作交集运算
和集合一样,但是多了权重
redis是支持管道的,所以你可以发送一堆请求却不用等待它们的响应
Redis 允许你指定 key 的存活时间,你可以使用expore key seconds 设置过时时间(秒),也可以expireat key timestamp 设置具体那一刻过时(从1970年01月01日开始的秒数)
redis通过发布订阅(Publication and Subscriptions)实现消息直接的传递
Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。
它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Compose 中有两个重要的概念:
服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。
下载
1 | sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" |
授权
1 | sudo chmod +x /usr/local/bin/docker-compose |
检查
1 | docker-compose --version |
该docker-compose up命令聚合每个容器的输出(基本上正在运行docker-compose logs -f)。
docker-compose -f cmac-server.yml up
先从容器中拷贝一份到指定目录,修改指定目录里面的配置,下次启动时将源目录挂载至此
1 | docker cp -r c2dfee831758:/etc/mysql /cmac/mysql/conf |