GATEWAY网关、配置方式(二)
1、引入依赖123456789101112131415161718192021222324252627282930<dependencies> <dependency> <groupId>com.jzd</groupId> <artifactId>common_utils</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>0.2.2.RELEASE</versio ...
GATEWAY网关、介绍(一)
一、网关基本概念1、API网关介绍API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:(1)客户端会多次请求不同的微服务,增加了客户端的复杂性。(2)存在跨域请求,在一定场景下处理相对复杂。(3)认证复杂,每个服务都需要独立认证。(4)难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施。(5)某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难。以上这些问题可以借助 API 网关解决。API 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 API 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 API 网关来做,这样既提高业务灵活性又不缺安全性2、Spring Cloud GatewaySpring cloud gateway是spring官方基于Spring 5.0、S ...
java登录注册功能实现、用户登录注册接口(四)
一、基本配置application.properties123456789101112131415161718192021222324252627282930# 服务端口server.port=8080# 服务名spring.application.name=service# mysql数据库连接spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/DB?serverTimezone=GMT%2B8spring.datasource.username=rootspring.datasource.password=rootspring.redis.host=127.0.0.1spring.redis.port=6379spring.redis.database= 0spring.redis.timeout=1800000spring.redis.lettuce.pool.max-active=20spring.redis.l ...
四种数据库主键生成策略
一、 自增长序列或字段优点:1)简单,代码方便,性能可以接受。2)数字ID天然排序,对分页或者需要排序的结果很有帮助。
缺点:1)不同数据库语法和实现不同,数据库迁移的时候或多数据库版本支持的时候需要处理。2)在单个数据库或读写分离或一主多从的情况下,只有一个主库可以生成。有单点故障的风险。3)在性能达不到要求的情况下,比较难于扩展。4)如果遇见多个系统需要合并或者涉及到数据迁移会相当痛苦。5)分表分库的时候会有麻烦。
优化方案:1)针对主库单点,如果有多个Master库,则每个Master库设置的起始数字不一样,步长一样,可以是Master的个数。比如:Master1 生成的是 1,4,7,10,Master2生成的是2,5,8,11 Master3生成的是 3,6,9,12。这样就可以有效生成集群中的唯一ID,也可以大大降低ID生成数据库操作的负载。
二. UUID
优点:1)简单,代码方便。2)生成ID性能非常好,基本不会有性能问题。3)全球唯一,在遇见数据迁移,系统数据合并,或者数据库变更等情况下,可以从容应对。
缺点:1)没有排序,无法保证趋势递增。2)UUID往往是使用字符 ...
java登录注册功能实现、阿里云短信服务 (三)
一、在模块的pom中引入依赖12345678910<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> </dependency></dependencies>
二、编写controller,根据手机号发送短信123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354pac ...
Redis介绍及其简单使用方法
一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。Redis的特点:1,Redis读取的速度是110000次/s,写的速度是81000次/s;2,原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。3,支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)4,持久化,集群部署5,支持过期时间,支持事务,消息订阅
二、项目集成Redis1、在common模块添加依赖由于r ...
java登录注册功能实现、jwt介绍及其整合(二)
一、JWT的组成该对象为一个很长的字符串,字符之间通过”.”分隔符分为三个子串。每一个子串表示了一个功能块,总共有以下三个部分:JWT头、有效载荷和签名
1. JWT头JWT头部分是一个描述JWT元数据的JSON对象,通常如下所示。
1234{ "alg": "HS256", "typ": "JWT"}
在上面的代码中,alg属性表示签名使用的算法,默认为HMAC SHA256(写为HS256);typ属性表示令牌的类型,JWT令牌统一写为JWT。最后,使用Base64 URL算法将上述JSON对象转换为字符串保存。
2.有效载荷1234567iss:发行人exp:到期时间sub:主题aud:用户nbf:在此之前不可用iat:发布时间jti:JWT ID用于标识该JWT
除以上默认字段外,我们还可以自定义私有字段,如下例:
12345{ "sub": "1234567890", "name": "He ...
nginx简单介绍及其配置方式
一、nginx简单配置1、介绍2、配置
Logback日志配置方式
一、日志 1、什么是日志通过日志查看程序的运行过程,运行信息,异常信息等 2、配置日志级别日志记录器(Logger)的行为是分等级的。 如下表所示:分为:FATAL、ERROR、WARN、INFO、DEBUG默认情况下,spring boot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别
1234# 设置日志级别logging: level: root: INFO
二、Logback日志spring boot内部使用Logback作为日志实现的框架。Logback和log4j非常相似,logback相对于log4j的一些优点:https://blog.csdn.net/caisini_vc/article/details/48551287
1、配置logback日志删除application.yml中的日志配置安装idea彩色日志插件:grep consoleresources 中创建 logback-spring.xml (默认日志的名字,必须是这个名字)
2、节点说明1234<property>:定义变量<appender>:定义 ...
Mybatis-Plus配置介绍及其代码生成器配置方式
一、简介官网:http://mp.baomidou.com
参考教程:http://mp.baomidou.com/guide/
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
二、引入依赖123456789101112131415<!--mybatis-plus--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId></dependency><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId></dependency><!--mysql ...